2008. 9. 2. 00:41
자바를 진정으로 하고 싶으면...
2008. 9. 2. 00:41 in 카테고리 없음
http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200706250022#0
Thinking in Java 를 보자~
책방에서 한번 둘러보고 맘에 들거나 본인에게 맞을 것 같으면 ,,, 꼭 사봐라~ ^^
Thinking in Java 를 보자~
책방에서 한번 둘러보고 맘에 들거나 본인에게 맞을 것 같으면 ,,, 꼭 사봐라~ ^^
2008. 8. 29. 16:02
Chap 14. 뷰
2008. 8. 29. 16:02 in 수업/오라클 + PL/SQL
뷰(view)는 물리적인 테이블에 근거한 논리적인 가상테이블이다.
실질적으로 데이터를 저장하고 있지 않지만 실제 테이블을 사용하는 것과 동일하게 뷰를 사용하여 테이블을 관리할 수 있다.
뷰는 반복적으로 쿼리를 날리는 것을 방지하기 위해서 사용된다.
뷰의 기본형식
create view view_name
as
select_statement
=========== 30번 부서에 소속된 사원들의 사번 및 이름 출력==================
create view emp_view30
as
select empno, ename, deptno
from emp_cp01
where deptno=30;
desc emp_view30; // 뷰의 구조 보기
select * from emp_view30; // emp_view30 내용 보기
======================================================================
================= insert 문으로 뷰에 행을 추가하기 =========================
insert into emp_view30
values(1111, 'AAAA',30);
select * from emp_view30; // view에 데이터가 추가된 것을 확인할 수 있다.
select * from emp_cp01; // emp_cp01에 데이터가 추가된 것을 확인할 수 있다.
=====================================================================
뷰의 종류
단순 뷰 : 하나의 테이블에 의해 정의한 뷰
새로 생성되는 뷰에 대해 컬럼명을 제시하지 않으면 기본테이블의 컬럼명을 상속 받는다.
================= insert 문으로 뷰에 행을 추가하기 ====================
create view dept_sum
as
select deptno, sum(sal) sum_sal
// 함수를 사용할 경우 반드시 별칭을 반드시 지정해야 한다.
from emp_cp01
group by deptno;
==================================================================
복합 뷰 : 두 개 이상의 기본 테이블에 의해 정의한 뷰
================= 사번과 이름 부서명을 복합뷰로 검색 =================
create view emp_view_join
as
select e.empno, e.ename, d.dname
from emp e, dept d
where e.deptno=d.deptno;
select * from emp_view_join;
=====================================================================
뷰의 제거
drop view view_name
뷰의 변경
create or replace view view_name
select_statement
실질적으로 데이터를 저장하고 있지 않지만 실제 테이블을 사용하는 것과 동일하게 뷰를 사용하여 테이블을 관리할 수 있다.
뷰는 반복적으로 쿼리를 날리는 것을 방지하기 위해서 사용된다.
뷰의 기본형식
create view view_name
as
select_statement
=========== 30번 부서에 소속된 사원들의 사번 및 이름 출력==================
create view emp_view30
as
select empno, ename, deptno
from emp_cp01
where deptno=30;
desc emp_view30; // 뷰의 구조 보기
select * from emp_view30; // emp_view30 내용 보기
======================================================================
================= insert 문으로 뷰에 행을 추가하기 =========================
insert into emp_view30
values(1111, 'AAAA',30);
select * from emp_view30; // view에 데이터가 추가된 것을 확인할 수 있다.
select * from emp_cp01; // emp_cp01에 데이터가 추가된 것을 확인할 수 있다.
=====================================================================
뷰의 종류
단순 뷰 : 하나의 테이블에 의해 정의한 뷰
새로 생성되는 뷰에 대해 컬럼명을 제시하지 않으면 기본테이블의 컬럼명을 상속 받는다.
================= insert 문으로 뷰에 행을 추가하기 ====================
create view dept_sum
as
select deptno, sum(sal) sum_sal
// 함수를 사용할 경우 반드시 별칭을 반드시 지정해야 한다.
from emp_cp01
group by deptno;
==================================================================
복합 뷰 : 두 개 이상의 기본 테이블에 의해 정의한 뷰
================= 사번과 이름 부서명을 복합뷰로 검색 =================
create view emp_view_join
as
select e.empno, e.ename, d.dname
from emp e, dept d
where e.deptno=d.deptno;
select * from emp_view_join;
=====================================================================
뷰의 제거
drop view view_name
뷰의 변경
create or replace view view_name
select_statement
'수업 > 오라클 + PL/SQL' 카테고리의 다른 글
Chap 13. 무결성 제약 조건 (0) | 2008.08.27 |
---|---|
Chap 11. 트랜잭션 관리 (0) | 2008.08.27 |
Chap 10. 테이블에 데이터 추가, 수정, 삭제하기 (0) | 2008.08.21 |
Chap 9. 테이블 생성 및 변경, 삭제하기 (0) | 2008.08.20 |
Chap3,4 SQLPLUS 명령어 & 연산자 (1) | 2008.08.20 |
2008. 8. 28. 14:18
Part 6. AWT - IV 입력관련 이벤트 처리
2008. 8. 28. 14:18 in 수업/자바2JDK입문
입력 관련 이벤트 처리에서 인터페이스의 구현과 Adapter 클래스의 구현을 알아보도록 합니다. 아래는 샘플 코드입니다.
입력은 KeyEvent와 MouseEvent로 나누어 볼 수 있습니다.
===================================================================================
package pack02;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
FrameTest(){
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
KeyListener 인터페이스를 통한 구현
인터페이스를 implements 하므로 인터페이스의 모든 추상메소드를 오버라이딩 해야 한다.
===================================================================================
package pack01;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
// 이벤트 처리를 위해서 이벤트 소스를 포함한 클래스를 이벤트 처리 객체로 만들어 준다.
class FrameTest extends Frame implements KeyListener{
public void keyPressed(KeyEvent e) {
ta.append(e.getKeyChar()+"가 눌림\n");
//ta.append((String)e.getKeyChar());
// 소스가 에러를 일으키는 이유 : 기본형 char를 String로 캐스팅 하지 못한다.
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
TextField txt; // 이벤트 소스
TextArea ta;
FrameTest(){
add(txt=new TextField(20), BorderLayout.NORTH);
// 이벤트 소스와 이벤트 처리 객체를 연결
txt.addKeyListener(this);
add(ta=new TextArea(5,2), BorderLayout.CENTER);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
KeyAdapter 클래스를 통한 구현
어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리 하기
클래스를 불러오므로 원하는 메소드만 오버라이딩 하면 된다.
===================================================================================
package pack02;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
TextField txt;
TextArea ta;
FrameTest(){
add(txt=new TextField(20), BorderLayout.NORTH);
// 객체 생성하면서 클래스 설계 - 무명 클래스
// 어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리해보기
txt.addKeyListener(
new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
ta.append(e.getKeyChar()+"가 눌림\n");
}
}
);
add(ta=new TextArea(5,2), BorderLayout.CENTER);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseListener 인터페이스를 통한 구형 - 마우스를 클릭하면 점 이동하기
===================================================================================
package pack03;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame implements MouseListener{
public void mouseClicked(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
int x=10, y=100;
@Override
// 이벤트에 의해서 호출되는 메서드
public void paint(Graphics g) {
g.setColor(new Color(250,0,250));
g.fillOval(x, y, 20, 20);
}
FrameTest(){
addMouseListener(this);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseAdapter 클래스를 통한 구형 - 마우스를 클릭하면 점 이동하기
===================================================================================
package pack04;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
int x=10, y=100;
@Override
public void paint(Graphics g) {
g.setColor(new Color(250,0,250));
g.fillOval(x, y, 20, 20);
}
FrameTest(){
// 어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리해보기
addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
}
);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseMotionListener 인터페이스를 통한 구현 - 드래그 시, 점 이동
===================================================================================
package pack05;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame implements MouseMotionListener{
public void mouseDragged(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {
}
int x=10, y=50;
@Override
public void paint(Graphics g) {
addMouseMotionListener(this);
g.setColor(Color.RED);
g.fillOval(x,y,20,20);
}
FrameTest(){
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseMotionAdapter 클래스를 통한 구현 - 드래그 시, 점 이동
===================================================================================
package pack06;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
int x=10, y=50;
@Override
public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillOval(x,y,20,20);
}
FrameTest(){
// 어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리해보기
addMouseMotionListener(new MouseMotionAdapter(){
@Override
public void mouseDragged(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
}
);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
입력은 KeyEvent와 MouseEvent로 나누어 볼 수 있습니다.
===================================================================================
package pack02;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
FrameTest(){
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
KeyListener 인터페이스를 통한 구현
인터페이스를 implements 하므로 인터페이스의 모든 추상메소드를 오버라이딩 해야 한다.
===================================================================================
package pack01;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
// 이벤트 처리를 위해서 이벤트 소스를 포함한 클래스를 이벤트 처리 객체로 만들어 준다.
class FrameTest extends Frame implements KeyListener{
public void keyPressed(KeyEvent e) {
ta.append(e.getKeyChar()+"가 눌림\n");
//ta.append((String)e.getKeyChar());
// 소스가 에러를 일으키는 이유 : 기본형 char를 String로 캐스팅 하지 못한다.
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
TextField txt; // 이벤트 소스
TextArea ta;
FrameTest(){
add(txt=new TextField(20), BorderLayout.NORTH);
// 이벤트 소스와 이벤트 처리 객체를 연결
txt.addKeyListener(this);
add(ta=new TextArea(5,2), BorderLayout.CENTER);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
KeyAdapter 클래스를 통한 구현
어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리 하기
클래스를 불러오므로 원하는 메소드만 오버라이딩 하면 된다.
===================================================================================
package pack02;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
TextField txt;
TextArea ta;
FrameTest(){
add(txt=new TextField(20), BorderLayout.NORTH);
// 객체 생성하면서 클래스 설계 - 무명 클래스
// 어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리해보기
txt.addKeyListener(
new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
ta.append(e.getKeyChar()+"가 눌림\n");
}
}
);
add(ta=new TextArea(5,2), BorderLayout.CENTER);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseListener 인터페이스를 통한 구형 - 마우스를 클릭하면 점 이동하기
===================================================================================
package pack03;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame implements MouseListener{
public void mouseClicked(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
int x=10, y=100;
@Override
// 이벤트에 의해서 호출되는 메서드
public void paint(Graphics g) {
g.setColor(new Color(250,0,250));
g.fillOval(x, y, 20, 20);
}
FrameTest(){
addMouseListener(this);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseAdapter 클래스를 통한 구형 - 마우스를 클릭하면 점 이동하기
===================================================================================
package pack04;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
int x=10, y=100;
@Override
public void paint(Graphics g) {
g.setColor(new Color(250,0,250));
g.fillOval(x, y, 20, 20);
}
FrameTest(){
// 어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리해보기
addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
}
);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseMotionListener 인터페이스를 통한 구현 - 드래그 시, 점 이동
===================================================================================
package pack05;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame implements MouseMotionListener{
public void mouseDragged(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {
}
int x=10, y=50;
@Override
public void paint(Graphics g) {
addMouseMotionListener(this);
g.setColor(Color.RED);
g.fillOval(x,y,20,20);
}
FrameTest(){
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
MouseMotionAdapter 클래스를 통한 구현 - 드래그 시, 점 이동
===================================================================================
package pack06;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame{
int x=10, y=50;
@Override
public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillOval(x,y,20,20);
}
FrameTest(){
// 어댑터 클래스를 내부 무명객체로 생성하여 이벤트 처리해보기
addMouseMotionListener(new MouseMotionAdapter(){
@Override
public void mouseDragged(MouseEvent e) {
x=e.getX(); y=e.getY();
repaint();
}
}
);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
'수업 > 자바2JDK입문' 카테고리의 다른 글
[기타] 성적 처리 프로그램 - 포스팅 중 (0) | 2008.09.11 |
---|---|
Part 6. AWT - III 윈도우창에 메뉴바와 메뉴 만들기 (0) | 2008.08.27 |
Part 6. AWT - II 컴포넌트의 이벤트 처리(2) (0) | 2008.08.27 |
Part 6. AWT - II 컴포넌트의 이벤트 처리(1) (0) | 2008.08.23 |
Part 6. AWT - I AWT를 이용한 GUI 작성 (0) | 2008.08.21 |