package com.tech.gt007.gen;
import java.util.Arrays;
import java.util.List;
class MyList2{
public static void printList(List<?> list) {
for (Object elem : list) {
System.out.print(elem+" ");
}
System.out.println();
}
}
// 제한이 없는 제너릭
public class GenericTest2 {
public static void main(String[] args) {
List<Object> li=Arrays.asList(1,2,3,4,5);
List<String> ls=Arrays.asList("one","two","three");
List<Object> lo=Arrays.asList("one","two","three");
// 메소드 호출
MyList2.printList(li);
MyList2.printList(ls);
MyList2.printList(lo);
}
}
결과
1 2 3 4 5
one two three
one two three
package com.tech.gt007.gen;
import java.util.Arrays;
import java.util.List;
class MyList3{
public static void printList(List<?> list) {
for (Object elem : list) {
System.out.print(elem+" ");
}
System.out.println();
}
}
// 하한이 있는 제너릭
public class GenericTest3 {
public static void main(String[] args) {
List<Object> li=Arrays.asList(1,2,3,4,5);
List<String> ls=Arrays.asList("one","two","three");
List<Number> ln=Arrays.asList(1,2,3,4,5);
List<Double> ld=Arrays.asList(1.1,2.2,3.3,4.4,5.5);
// 메소드 호출
MyList3.printList(li);
MyList3.printList(ls);
MyList3.printList(ln);
MyList3.printList(ld);
}
}
결과
1 2 3 4 5
one two three
1 2 3 4 5
1.1 2.2 3.3 4.4 5.5
super 키워드로 Number 을 넣으면
String, Double 타입은 오류가 난다.
만약 Double을 넣으면 String 만 오류가 난다.
hr 접속
data Table 에 있는 data들
select * from jobs;
이런 걸 query 라고 한다.
web에서 data를 가져오고, 추가하고, 수정하는 등의 명령
query 가 필요한 이유 : 직접 datatable 을 보는 게 아니라 명령을 통해 작업하기 때문에. (java 코드에 sql을 코딩해야하기 때문)
Table SAMPLE 만들기
같은 이름의 table 은 생성할 수 없음.
Table 삭제하기
drop 명령어를 사용한다. (delete, remove 아님)
field : 열 (column) = 어트리뷰트(DB)
ex)
record : 행 = 튜플(DB)
ex) record 1 : '200511201 / 김철수 / 컴퓨터 / 남 / 85'
데이터 삽입 (추가)
데이터 조회
여러 개의 data 삽입
데이터 수정
원하는 데이터만 수정
데이터 저장
commit 을 해야 db로 완전한 저장이 완료된다.
데이터 삭제
이게 CRUD query 이다.
Create
Read
Update
Delete
Oracle SQL 미션
테이블 이름 : leeddr
칼럼이름 : lname, laddr ...data (키 : number, 나머지 : varchar2)
결과
Oracle DB 교재를 받음.
Do it 자바 책으로 독학했었는데, 역시 Do it 시리즈가 괜찮긴 한 것 같음.
저장
접속 해제
접속 해제 시 변경사항이 있었다면 뜨는 경고문구, 커밋하면 됨.
Linux 미션
GenericMethodTest 클래스 출력해보기
결과
Windows 미션
가격은 알아서, radiobutton, 계산, reset 까지
구현하기
메일로 제출
메일 제목 : 커피오더프레임_홍길동
package com.tech.mission;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
class Order2 extends JFrame implements ActionListener{
private JButton reset_button;
private JPanel center_panel, down_panel;
private JTextField text;
private JLabel guide;
private JLabel message;
private JRadioButton small,medium,large;
private ButtonGroup bgSize;
private String sizeStr="";
private JRadioButton hot,ice;
private ButtonGroup bgStyle;
private String styleStr="";
JPanel welcomePanel=new JPanel();
JPanel sizePanel=new JPanel();
JPanel stylePanel=new JPanel();
public Order2() {
setSize(350,300);
setTitle("커피주문");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// welcomePanel
message=new JLabel("어떤 커피를 주문하시겠습니까?");
welcomePanel.add(message);
add(welcomePanel,"North");
// centerPanel
center_panel=new JPanel(new GridLayout(3,0));
// sizePanel
small=new JRadioButton("smallsize");
medium=new JRadioButton("mediumsize");
large=new JRadioButton("largesize");
small.addActionListener(this);
medium.addActionListener(this);
large.addActionListener(this);
bgSize=new ButtonGroup();
bgSize.add(small);
bgSize.add(medium);
bgSize.add(large);
sizePanel.add(small);
sizePanel.add(medium);
sizePanel.add(large);
sizePanel.setBorder(BorderFactory.createTitledBorder("Size"));
// stylePanel
hot=new JRadioButton("hot");
ice=new JRadioButton("ice");
hot.addActionListener(this);
ice.addActionListener(this);
bgStyle=new ButtonGroup();
bgStyle.add(hot);
bgStyle.add(ice);
stylePanel.setBorder(BorderFactory.createTitledBorder("Style"));
stylePanel.add(hot);
stylePanel.add(ice);
// textField
text=new JTextField("");
// center_panel
center_panel.add(sizePanel);
center_panel.add(stylePanel);
center_panel.add(text);
add(center_panel,"Center");
// down_panel
down_panel=new JPanel();
// reset_button
down_panel.setLayout(new GridLayout(2,0));
reset_button=new JButton("Reset");
reset_button.addActionListener(this);
// guide
guide=new JLabel("크기가 선택되지 않았습니다.");
guide.setHorizontalAlignment(SwingConstants.CENTER);
guide.setForeground(Color.red);
down_panel.add(reset_button);
down_panel.add(guide);
add(down_panel,"South");
setVisible(true);
}
int sum=0;
@Override
public void actionPerformed(ActionEvent e) {
int sizePrice=0,stylePrice=0;
if(e.getSource()==small) {
sizeStr="small";
}else if (e.getSource()==medium) {
sizeStr="medium";
}else if (e.getSource()==large) {
sizeStr="large";
}
if(e.getSource()==hot) {
styleStr="hot";
}else if (e.getSource()==ice) {
styleStr="ice";
}
switch (sizeStr) {
case "small":
sizePrice=1000;
break;
case "medium":
sizePrice=2000;
break;
case "large":
sizePrice=3000;
break;
default:
break;
}
switch (styleStr) {
case "hot":
stylePrice=0;
break;
case "ice":
stylePrice=500;
break;
default:
break;
}
text.setText("sizePrice:"+sizePrice+", stylePrice:"+stylePrice+", Tot:"+(sizePrice+stylePrice));
guide.setText("size : "+sizeStr+" / style : "+styleStr);
if(e.getSource()==reset_button) {
sizePrice=0;
stylePrice=0;
bgSize.clearSelection();
bgStyle.clearSelection();
text.setText("");
guide.setText("크기가 선택되지 않았습니다.");
}
}
}
public class CoffeeOrderMission {
public static void main(String[] args) {
new Order2();
}
}
결과