국비 18일차_2

강지수·2024년 1월 9일
0

국비교육

목록 보기
35/97

강사님의 코드

package com.tech.gt005.mission;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class BoatsStatementViewer_teacher extends JFrame {
	JTextField sid, sname, rating, age;
	JButton privButton, nextButton, insertButton, deleteButton, clearButton;
	ResultSet rs;
	Statement stmt;

	public BoatsStatementViewer_teacher() throws SQLException {
//			화면구성
		setTitle("Boatsviewer");
		setSize(350, 300);
		Connection con = makeConnection();
//			stmt=con.createStatement();
		stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

		rs = stmt.executeQuery("select * from sailors");

		setLayout(new GridLayout(0, 2));

		add(new JLabel("sid"));
		add(sid = new JTextField());
		add(new JLabel("sname"));
		add(sname = new JTextField());
		add(new JLabel("rating"));
		add(rating = new JTextField());
		add(new JLabel("age"));
		add(age = new JTextField());

		privButton = new JButton("priv");
		privButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("priv sign");
				try {
					rs.previous();
					sid.setText(rs.getInt("sid") + "");
					sname.setText(rs.getString("sname"));
					rating.setText(rs.getInt("rating") + "");
					age.setText(rs.getInt("age") + "");

				} catch (SQLException e1) {
					System.out.println("자료없음");
				}
			}
		});
		add(privButton);

		nextButton = new JButton("next");
		nextButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("next sign");
				try {
					rs.next();
					sid.setText(rs.getInt("sid") + "");
					sname.setText(rs.getString("sname"));
					rating.setText(rs.getInt("rating") + "");
					age.setText(rs.getInt("age") + "");
				} catch (SQLException e1) {
					System.out.println("자료없음");
				}

			}
		});
		add(nextButton);
		insertButton = new JButton("insert");
		insertButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("insert sign");
				int ssid = Integer.parseInt(sid.getText());
				String ssname = sname.getText();
				int srating = Integer.parseInt(rating.getText());
				int sage = Integer.parseInt(age.getText());

				String sql = "insert into sailors values(" + ssid + ",'" + ssname + "'," + srating + "," + sage + ")";

				try {
					stmt = con.createStatement();
					stmt.executeUpdate(sql);
					stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
					rs = stmt.executeQuery("select * from sailors");

				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

			}
		});

		add(insertButton);
		deleteButton = new JButton("delete");
		deleteButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("delete sign");
				int ssid = Integer.parseInt(sid.getText());
				String sql = "delete from sailors where sid=" + ssid;

				try {
					stmt = con.createStatement();
					int count = stmt.executeUpdate(sql);
					stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
					rs = stmt.executeQuery("select * from sailors");
					System.out.println("del count: " + count);

				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

			}
		});

		add(deleteButton);
		clearButton = new JButton("clear");
		clearButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("clear sign");
				sid.setText("");
				sname.setText("");
				rating.setText("");
				age.setText("");

			}
		});
		add(clearButton);

		setVisible(true);

	}

	public static Connection makeConnection() {
		Connection con = null;
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String id = "hr", pass = "123456";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con = DriverManager.getConnection(url, id, pass);
			System.out.println("db연결 성공");
		} catch (Exception e) {
			System.out.println("드라이버 없음");
		}
		return con;
	}

	public static void main(String[] args) throws SQLException {
		new BoatsStatementViewer_teacher();
	}

}

BoatsStatementViewer_teacher.java


강사님의 코드

package com.tech.gt005.mission;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class BoatsPreparedStatementViewer_teacher extends JFrame{
	JTextField sid, sname, rating, age;
	JButton privButton, nextButton, insertButton, deleteButton, clearButton;
	ResultSet rs;
	PreparedStatement pstmt;

	public BoatsPreparedStatementViewer_teacher() throws SQLException {
//		화면구성
		setTitle("Boatsviewer");
		setSize(350, 300);
		Connection con = makeConnection();
//		stmt=con.createStatement();
		String sql="select * from sailors";
		pstmt = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
		rs = pstmt.executeQuery();

		setLayout(new GridLayout(0, 2));

		add(new JLabel("sid"));
		add(sid = new JTextField());
		add(new JLabel("sname"));
		add(sname = new JTextField());
		add(new JLabel("rating"));
		add(rating = new JTextField());
		add(new JLabel("age"));
		add(age = new JTextField());

		privButton = new JButton("priv");
		privButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("priv sign");
				try {
					rs.previous();
					sid.setText(rs.getInt("sid") + "");
					sname.setText(rs.getString("sname"));
					rating.setText(rs.getInt("rating") + "");
					age.setText(rs.getInt("age") + "");
					
				} catch (SQLException e1) {
					System.out.println("자료없음");
				}
			}
		});
		add(privButton);

		nextButton = new JButton("next");
		nextButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("next sign");
				try {
					rs.next();
					sid.setText(rs.getInt("sid") + "");
					sname.setText(rs.getString("sname"));
					rating.setText(rs.getInt("rating") + "");
					age.setText(rs.getInt("age") + "");
				} catch (SQLException e1) {
					System.out.println("자료없음");
				}

			}
		});
		add(nextButton);
		insertButton = new JButton("insert");
		insertButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("insert sign");
				int ssid = Integer.parseInt(sid.getText());
				String ssname = sname.getText();
				int srating = Integer.parseInt(rating.getText());
				int sage = Integer.parseInt(age.getText());
				
//				String sql = "insert into sailors values(" + ssid + ",'" + ssname + "'," + srating +","+sage+")";
				String sql = "insert into sailors values(?,?,?,?)";

				try {
					pstmt = con.prepareStatement(sql);
					pstmt.setInt(1, ssid);
					pstmt.setString(2, ssname);
					pstmt.setInt(3, srating);
					pstmt.setInt(4, sage);
					//진실행
					pstmt.executeUpdate();
					sql="select * from sailors";
					pstmt = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
					rs = pstmt.executeQuery();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

			}
		});

		add(insertButton);
		deleteButton = new JButton("delete");
		deleteButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("delete sign");
				int ssid = Integer.parseInt(sid.getText());
				String sql = "delete from sailors where sid=?";

				try {
					pstmt = con.prepareStatement(sql);
					pstmt.setInt(1, ssid);
					int count=pstmt.executeUpdate();
					
					sql="select * from sailors";
					pstmt = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
					rs = pstmt.executeQuery();
					System.out.println("del count: "+count);

				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

			}
		});

		add(deleteButton);
		clearButton = new JButton("clear");
		clearButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("clear sign");
				sid.setText("");
				sname.setText("");
				rating.setText("");
				age.setText("");
				
			}
		});
		add(clearButton);

		setVisible(true);

	}

	public static Connection makeConnection() {
		Connection con = null;
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String id = "hr", pass = "123456";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con = DriverManager.getConnection(url, id, pass);
			System.out.println("db연결 성공");
		} catch (Exception e) {
			System.out.println("드라이버 없음");
		}
		return con;
	}
	public static void main(String[] args) throws SQLException {
		new BoatsPreparedStatementViewer_teacher();
	}
}

BoatsPreparedStatementViewer_teacher.java

강사님의 의도는 statementviewer 에서 statement 부분을 preparedstatement 로 바꾸어 같은 기능을 구현하라는 거였는데 의도를 잘못파악해서 전혀 다른 program을 구현해버렸다.


나머지 시간은 카카오 오븐 작업 후 제출, 후 semiproject 만들기 시작

profile
개발자 준비의 준비준비중..

0개의 댓글