import java.awt.*;
import java.sql.*;

import javax.swing.*;

public class Swing02 extends JFrame
{
        
        Swing02()
        {
               
                try
               {
                        UIManager. setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
               }
                catch (Exception e )
               {
                        e.printStackTrace();
               }
               
               setTitle( "입력창");
                setDefaultCloseOperation( JFrame. EXIT_ON_CLOSE);
               
               setLayout( new FlowLayout( FlowLayout. LEFT)); // 레이아웃 설정
               
               add( new JLabel( "이름 : "));
               add( new JTextField(10));
               add( new JLabel( "학과 : "));
               add( new JTextField(10));
               add( new JLabel( "학번 : "));
               add( new JTextField(10));
               
               setSize(350, 200);
               setVisible( true);
        }
        
         public static void main(String [] args)
        {
                new Swing02(); // 생성자 호출
               
                try
               {
                        Class. forName("com.mysql.jdbc.Driver"); // jdbc 드라이버 로드
                       Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/sampledb" , "root" , "1234" ); // 연결
                        System. out.println("JDBC Connection Complete!");
                       
                       Statement stmt = conn.createStatement();
                       
                        // insert문 실행
                        // stmt.executeUpdate("insert into student values('천준영', '정보통신학', '2014074003')");
                       
                        // update문 실행
                        // stmt.executeUpdate("update student set id='2014000001' where name='최규식'");
                       
                        // delete문 실행
                        // stmt.executeUpdate("delete from student where id='2014000001'");
                       
                        // select문 실행
                       ResultSet rs = stmt.executeQuery( "select * from student"); // SQL문이 rs에 저장된다.         
                        while(rs .next())
                       {
                               System. out.print(rs .getString("name") + "\t"); // 이름 출력
                               System. out.print(rs .getString("dept") + "\t"); // 학과 출력
                               System. out.print(rs .getString("id") + "\n"); // 학번 출력
                       }
                        rs.close(); // ResultSet을 닫는다.
                        conn.close(); // Connection을 닫는다. (메모리 자원낭비 방지)
               }
                catch(Exception e )
               {      
                        System. out.println(e .getStackTrace());
               }
        }
}

 

 
create database sampledb;

use sampledb;

create table student
(
     name varchar(20) not null, -- 이름
    dept varchar(20) not null, -- 학과
    id char(10) primary key not null -- 학번, 기본키
);

insert into student values('최규식', '스마트컨텐츠개발', '2014071023');
insert into student values('박태수', '스마트컨텐츠기획', '2014072008');
insert into student values('정상혁', '스마트컨텐츠마케팅', '2014071020');

select * from student order by name asc;

 

6일차 Swing02 클래스 (JDBC 연동)


2014학년도 겨울 심화학기/JAVA

Written by 긍지높은취객 on 2014. 12. 15. 16:03

 
import java.sql.*;

public class Swing02
{
         public static void main(String [] args)
        {
                try
               {
                        Class. forName("com.mysql.jdbc.Driver"); // jdbc 드라이버 로드
                       Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306", "root", "1234" ); // 연결
                        System. out.println("JDBC Connection Complete!");
               }
                catch(Exception e )
               {
                        System. out.println(e .getStackTrace ());
               }
        }
}
 
create database mall;

use mall;

create table member
(    
     id varchar(20) primary key, -- 회원 id
     name varchar(20), -- 회원명
     gender varchar(20), -- 회원성별
     joindate varchar(20) -- 가입일자
);

insert into member values('hkd', '홍길동', 'm', '2001-01-01');
insert into member values('lss', '이순신', 'm', '2003-02-01');
insert into member values('hj', '황진이', 'f', '2002-11-13');
insert into member values('wg', '왕건', 'm', '2005-12-21');
insert into member values('pms ','박문수', 'm', '2006-11-09');

create table goods
(     goodsNo int primary key, -- 상품의 인덱스번호
     goodName varchar(20), -- 상품명
     price int -- 상품가격
);

insert into goods values(1, 'mp3', 10000);
insert into goods values(2, 'camera', 50000);
insert into goods values(3, 'pc', 700000);


create table orders
(     no int primary key, -- 주문 인덱스번호
     id varchar(20), -- 회원 id
     orderDate varchar(20) -- 주문일자
);


insert into orders values(1, 'hkd', '2001-03-27');
insert into orders values(2, 'wg', '2005-04-17');
insert into orders values(3, 'hkd', '2006-02-07');


create table ordersDetail -- 주문내역
(    
     num int,
     orderNo int,  -- 주문번호
     goodsNo int, -- 상품번호
     qty int -- 상품수량
);


insert into ordersDetail values(1,1,1,1); -- mp3 1대
insert into ordersDetail values(2,1,3,1); -- pc 1대
insert into ordersDetail values(3,2,2,2); -- camera 2대
insert into ordersDetail values(4,3,2,1); -- camera 1대

-- -----------------------------------------------------------------------

-- 1.전체 회원수를 구하시오.
select count(m.id)
as 전체회원수
from member m;

-- 2.성별 회원수를 구하시오. (남, 여)
select count(m.gender)
as 남성회원
from member m
where m.gender='m';

select count(m.gender)
as 여성회원
from member m
where m.gender='f';

select m.gender, count(m.id)
as 회원수
from member m
group by m.gender
order by m.gender desc;

-- 3.가장 많이(개수기준) 판매된 상품부터 출력하시오.
select * from orders;
select * from ordersDetail;

-- 서브쿼리와 조인을 사용
select goods.goodName, temp.sumQty
from (select od.goodsNo, sum(od.qty)
          as sumQty
          from ordersdetail od
          group by od.goodsNo) as temp, goods
where temp.goodsNo = goods.goodsNo
order by temp.sumQty desc;

select g.goodName, d.qty
as 판매량_내림차순
from goods g, ordersDetail d
where g.goodsNo=d.goodsNo order by d.qty desc;

-- 4.주문내역을 출력하시오. 회원명, 상품명, 주문갯수
select m.name, g.goodName, od.qty
from goods g, member m, orders o, ordersDetail od
where g.goodsNo=od.goodsNo
and m.id=o.id
and o.no=od.orderNo;

-- 5.성이 '홍'인 회원을 검색하시오.
select * from member where name like '홍%';

-- 6.년도, 상품별 판매수량을 구하시오. 년도, 상품명, 판매갯수
select temp.years, goods.goodName, temp.sumQty
from(select year(o.orderDate) as years, od.goodsNo, sum(od.qty) as sumQty
          from orders o, ordersdetail od
          where o.no=od.orderNo
          group by year(o.orderDate), od.goodsNo) as temp, goods
where temp.goodsNo=goods.goodsNo
order by temp.years asc;

-- 7.년도별 판매 총액(금액)을 구하시오. 년도, 판매총액
-- 판매금액 = 가격 * 판매개수
select temp.년도 as 연도, sum(temp.판매총액) as 판매총금액
from(select year(o.orderDate) as 년도, g.price * od.qty as 판매총액
          from goods g, orders o, ordersdetail od
          where g.goodsNo=od.goodsNo
          and o.no=od.orderNo) as temp
group by temp.년도;

 

 

create database mall;

use mall;

create table member
(    
     id varchar(20) primary key, -- 회원 id
     name varchar(20), -- 회원명
     gender varchar(20), -- 회원성별
     joindate varchar(20) -- 가입일자
);

insert into member values('hkd', '홍길동', 'm', '2001-01-01');
insert into member values('lss', '이순신', 'm', '2003-02-01');
insert into member values('hj', '황진이', 'f', '2002-11-13');
insert into member values('wg', '왕건', 'm', '2005-12-21');
insert into member values('pms ','박문수', 'm', '2006-11-09');

create table goods
(     goodsNo int primary key, -- 상품의 인덱스번호
     goodName varchar(20), -- 상품명
     price int -- 상품가격
);

insert into goods values(1, 'mp3', 10000);
insert into goods values(2, 'camera', 50000);
insert into goods values(3, 'pc', 700000);


create table orders
(     no int primary key, -- 주문 인덱스번호
     id varchar(20), -- 회원 id
     orderDate varchar(20) -- 주문일자
);


insert into orders values(1, 'hkd', '2001-03-27');
insert into orders values(2, 'wg', '2005-04-17');
insert into orders values(3, 'hkd', '2006-02-07');


create table ordersDetail -- 주문내역
(    
     num int,
     orderNo int,  -- 주문번호
     goodsNo int, -- 상품번호
     qty int -- 상품수량
);


insert into ordersDetail values(1,1,1,1); -- mp3 1대
insert into ordersDetail values(2,1,3,1); -- pc 1대
insert into ordersDetail values(3,2,2,2); -- camera 2대
insert into ordersDetail values(4,3,2,1); -- camera 1대

-- -----------------------------------------------------------------------

-- 전체 회원수를 구하시오.
select count(m.id) as 전체회원수 from member m;

-- 성별 회원수를 구하시오. (남, 여)
select count(m.gender)
as 남성회원
from member m
where m.gender='m';

select count(m.gender)
as 여성회원
from member m
where m.gender='f';

-- 가장 많이(개수기준) 판매된 상품부터 출력하시오.
select g.goodName, d.qty
as 판매량_내림차순
from goods g, ordersDetail d
where g.goodsNo=d.goodsNo order by d.qty desc;

 

-- db 생성
create database shop;

-- db 선택
use shop;

-- 테이블 생성
create table student
(
     id char(10) primary key not null, -- 학번 (8자리 고정문자, 기본키)
    name varchar(10) not null, -- 이름 (10자리 가변문자)
    dept varchar(20) not null -- 학과 (2자리 가변문자)
);

-- 테이블 삭제
drop table student;

-- 데이터 입력
insert into student(id, name, dept) values('2014071023', '최규식', '스마트산업');
insert into student(id, name, dept) values('2014072008', '박태수', '스마트산업');
insert into student(id, name, dept) values('2014071020', '정상혁', '스마트산업');

-- 데이터 검색
select * from student;

-- 데이터 삭제
delete from student where id='2014071023'; -- 기본키인 id로만 삭제가 가능하며 다른 키로 삭제하려면 별도 설정해줘야 한다.

-- 데이터 수정
update student set dept='임베디드공학' where id='2014071023';
update student set dept='스마트산업' where id='2014071023';


-- ----------------------------------------------------------------------------------------

-- 상품 테이블 생성
create table goods
(
     g_id char(8) not null primary key, -- 상품코드
    g_name varchar(20) not null, -- 상품명
    maker varchar(20) not null, -- 가격
    price int not null, -- 가격
    color varchar(10) null -- 상품색상
);

-- 상품 입력
insert into goods values('00000001', '갤럭시노트4', '삼성전자', 957000, 'Black');
insert into goods values('00000002', '아이폰6+', '애플', 790000, null);
insert into goods(g_id, g_name, maker, price) values('00000003', 'G3 cat.6', 'LG전자', 924000);
-- 테이블명(칼럼명) 을 써주면 작성된 칼럼에 해당되는 값만 작성해주면 된다. (디폴트값은 모든 값 작성)

-- 상품 검색
select * from goods;

-- 주문 테이블 생성
create table orders
(
     id char(10), -- 학생 학번
    g_id varchar(8) not null, -- 상품코드
    ea int not null, -- 상품개수 (정수)
    totalPrice int not null, -- 총금액 (정수)
    foreign key(id) references student(id), -- 참조키
    foreign key(g_id) references goods(g_id) -- 참조키
);

-- 주문 테이블 삭제
drop table orders;

-- 데이터 입력
insert into orders values('2014071023', '00000001', 2, 1914000);
insert into orders values('2014071020', '00000002', 1, 790000);

-- 데이터 검색
select * from orders;

-- 학생명, 상품번호, 개수, 총액
select s.name, o.g_id, o.ea, o.totalPrice
from student s, orders o
where s.id=o.id;

-- 학생명, 상품명, 개수, 총액
select s.name, g.g_name, o.ea, o.totalPrice
from student s, orders o, goods g
where s.id=o.id
and o.g_id=g.g_id;

-- 정렬 (이름을 가나다 순으로)
select * from student order by name; -- 오름차순 (디폴트값 : asc)
select * from student order by name desc; -- 내림차순

-- 합계
select sum(totalPrice) as 총구매금액 from orders; -- as는 생략가능

-- 평균
select avg(price) as 가격평균 from goods;

-- 최대값
select max(price) as 최대가격 from goods;

-- 최소값
select min(price) as 최소가격 from goods;

-- 개수
select count(g_id) as 상품개수 from goods;

select count(id) as 임베디드학과생 from student where dept='임베디드공학';

select sum(o.ea)
as 갤노트판매량
from orders o, goods g
where g.g_id=o.g_id
and g.g_name='갤럭시노트4';
 
-- db 생성
create database shop;

-- db 선택
use shop;

-- 테이블 생성
create table student
(
     id char(10) primary key not null, -- 학번 (8자리 고정문자, 기본키)
    name varchar(10) not null, -- 이름 (10자리 가변문자)
    dept varchar(20) not null -- 학과 (2자리 가변문자)
);

-- 테이블 삭제
drop table student;

-- 데이터 입력
insert into student(id, name, dept) values('2014071023', '최규식', '스마트산업');
insert into student(id, name, dept) values('2014072008', '박태수', '스마트산업');
insert into student(id, name, dept) values('2014071020', '정상혁', '스마트산업');

-- 데이터 검색
select * from student;

-- 데이터 삭제
delete from student where id='2014071023'; -- 기본키인 id로만 삭제가 가능하며 다른 키로 삭제하려면 별도 설정해줘야 한다.

-- 데이터 수정
update student set dept='임베디드공학' where id='2014071023';
update student set dept='스마트산업' where id='2014071023';


-- ----------------------------------------------------------------------------------------

-- 주문 테이블 생성
create table orders
(
     id char(10)  not null references student(id), -- student 테이블의 id(학번) 참조
    goods varchar(20) not null, -- 상품명 (20자리 가변문자)
    ea int not null, -- 상품개수 (정수)
    totalPrice int not null -- 총금액 (정수)
);

-- 데이터 입력
insert into orders values('2014071023', '노트', 10, 10000);

-- 데이터 검색
select * from orders;

-- 조인 검색, 학생의 이름, 학생의 학과, 상품명, 상품개수, 총금액
select s.name, s.dept, o.id, o.goods, o.ea, o.totalPrice
from student s, orders o
where s.id = o.id; 
-- (=) select student.name, student.dept, orders.id, orders.goods, orders.ea, orders.totalPrice
-- from student, orders
-- where student.id = orders.id;

-- 표준 SQL 문법에 따른 조인문 (ANSI-SQL)
select s.name, s.dept, o.id, o.goods, o.ea, o.totalPrice
from student s inner join orders o
on s.id = o.id; 

-- 정렬 (이름을 가나다 순으로)
select * from student order by name; -- 오름차순 (디폴트값 : asc)
select * from student order by name desc; -- 내림차순

프로그래머 분들이 하는 일.GIF


유머

Written by 긍지높은취객 on 2014. 12. 11. 01:35

 

 

 import javax.swing.*;

public class Swing01 extends JFrame
{
        Swing01()
        {
               setTitle( "학생관리" ); // 프레임의 제목 설정
                setDefaultCloseOperation( JFrame. EXIT_ON_CLOSE); // 종료버튼 클릭 시 프로그램 종료
               
                // FlowLayout --------------------------------------------------------------------------------------
               
                /*Container contentpane = getContentPane(); // 컨텐트 팬을 알아낸다.
               
               contentpane.setLayout(new FlowLayout()); // FlowLayout은 차례대로 컴포넌트를 배치한다.
               contentpane.add(new JButton("Confirm"));
               contentpane.add(new JButton("Input"));*/
               
                /*setLayout(new FlowLayout(FlowLayout.LEFT, 50, 50)); // 컨테이너를 만들지 않아도 호출/구현이 가능하다...!!! (단 BG 색상 설정은 컨테이너가 필요하다.)
               // FlowLayout 디폴트값은 Center이다...! (Left로 하는게 좋을것)
               
               add(new JButton("Confirm"));
               add(new JButton("Input"));*/
               
                // BorderLayout --------------------------------------------------------------------------------------
               
                /*setLayout(new BorderLayout());
               add(new JButton("Confirm"), BorderLayout.NORTH); // 상하 간격이 유지된다.
               add(new JButton("Input"), BorderLayout.SOUTH); // 상하 간격이 유지된다.
               add(new JButton("Explore"), BorderLayout.WEST); // 좌우 간격이 유지된다.             
               add(new JButton("Attribute"), BorderLayout.EAST); // 좌우 간격이 유지된다.
               add(new JButton("Content"), BorderLayout.CENTER); // 좌우 여백이 있으면 전부 채워진다.*/
               
                // 배치관리자 없는 컨테이너 --------------------------------------------------------------------------------------
               
               setLayout( null); // 레이아웃 적용 안함
               
                JButton button1 = new JButton( "Confirm");
                button1.setLocation(10, 10); // 버튼의 위치 설정 (x좌표, y좌표)
                button1.setSize(150, 50); // 버튼의 크기 설정 (가로, 세로)
               add( button1); // 프레임에 버튼 추가
               
                JButton button2 = new JButton( "Cancel");
                button2.setLocation(180, 10);
                button2.setSize(150, 50);
               add( button2);
               
               setSize(360, 300); // 프레임의 크기 설정 (가로, 세로)
               setVisible( true); // 프레임이 화면에 나타나도록 설정 (true), false로 설정하면 화면에 나타나지 않는다.
        }
        
         public static void main(String [] args)
        {
                new Swing01(); // 인스턴스 생성
        }
}

 

 interface Person
{
         // 말하기
         public void speak();
        
         // 일하기
         public void work();
}

class Student implements Person
{

         @Override
         public void speak()
        {
                System. out.println("말하기" );
        }

         @Override
         public void work()
        {
                System. out.println("일하기" );
        }
        
}

public class Exam03 implements Person
{
         public static void main(String [] args)
        {
                Student choi = new Student ();              
                // choi.speak();
                // choi.work();
               
                Exam03 e03 = new Exam03();
                e03.speak();
                e03.work();
        }

         @Override
         public void speak()
        {
                System. out.println("말하기2" );
        }

         @Override
         public void work()
        {
                System. out.println("일하기2" );
        }
}