본문 바로가기
STUDY/JAVA

Java 20일차(1) -자바 오라클 연결, Statement

by Anne of Green Galbes 2019. 2. 1.

오라클 & 자바 연결


① DBConn작성

package com.db;


import java.sql.Connection;

import java.sql.DriverManager;


public class DBConn {

private static Connection dbConn;

//Connection : 인터페이스

//dbConn을 담을 수 있는 Connection 생성

public static Connection getConnection(){ //get : 이미 올라가 있으니 가져다 쓰기만 할 때는 보통 get을 사용

if(dbConn==null){

try {

String url = "jdbc:oracle:thin:@LOCALHOST:1521:XE";


// XE : 오라클 expression 버전

// jdbc로 oracle에 thin(type4)형식으로 LOCALHOST에 접속을 하겠다.

// ▶ 노트북으로 연결시 LOCALHOST

// 그 중 오라클이 사용하는 포트는 1521번. 연결하는 DB는 XE

String user = "SUZI";

String password = "A123";

Class.forName("oracle.jdbc.driver.OracleDriver");

//Driver를 로딩

//더 빠른 접속이 가능하다

dbConn = DriverManager.getConnection(url, user, password);

//연결된거를 dbConn에 넣어놓음

} catch (Exception e) {

System.out.println(e.toString());

}

}

return dbConn;

}

//DB는 연결을 하면 항상 끊어주는 작업을 해야한다

public static void close(){

if(dbConn!=null){

try {

if(!dbConn.isClosed()){

dbConn.close();

}

} catch (Exception e) {

System.out.println(e.toString());

}

}

//연결을 끊어주면 그 안에 쓰레기 값이 남아 두번째 연결을 할때는 Adapter에러가 발생, 접속이 안된다

//★항상 연결을 끊으면 dbConn을 null로 초기화 해야함

dbConn=null;

}

}


② 연결 확인

package com.day20;


import java.sql.Connection;

import com.db.DBConn;


public class Test1 {

public static void main(String[] args) {

//DB호출 명령어

Connection conn = DBConn.getConnection();

if(conn==null){

System.out.println("데이터베이스 연결 실패!");

System.exit(0);

}

System.out.println("데이터베이스 연결 성공!");

DBConn.close();

}

}

결과

데이터베이스 연결 성공!



③ 연결 확인


사용자 : SUZI

테이블 : SCORE


○ DB연결 방법

   1. DriverManager가 Connection을 생성 ▶ DBConn

   2. Connection이 Statement를 생성

      (statement : sql 구문을 실행하는 인터페이스)

   3. Statement가 query를 실행

package com.day20;


import java.sql.Connection;

import java.sql.Statement;

import com.db.DBConn;


public class Test2 {

public static void main(String[] args) {

Connection conn = DBConn.getConnection();

if(conn==null){

System.out.println("연결 실패!");

System.exit(0);

}

try {

//2. Connection이 Statement를 생성(sql 구문을 실행하는 인터페이스)

//statement의 종류는 세가지

Statement stmt = conn.createStatement();

String sql;

//sql문은 자바에서 String형태

//① insert

sql = "insert into score (hak,name,kor,eng,mat) ";

sql+= "values ('333','배수지',99,99,99)";

//② update

sql = "update score set name='김태리',kor=80, eng=80, mat=80 ";

sql+= "where hak=222";

//③ delete

sql = "delete score where hak='222'";

//3. Statement가 query를 실행

int result = stmt.executeUpdate(sql); //stmt는 sql쿼리를 가지고 DB에 찾아가서 sql을 실행

//제대로 실행되면 1을, 아니면 0을 돌려줌

if(result==1){

System.out.println("삽입 성공!");

}

} catch (Exception e) {

System.out.println(e.toString());

}

DBConn.close();

}

}

결과

① insert


② update


③ delete




Statement


1. Statement

○ sql문을 전달, 실행하는 인터페이스

○ 종류는 3가지 : Statement, PrepareStatement,

○ 제대로 실행되면 1을, 아니면 0을 돌려줌

○ 클래스와 인터페이스의 초기값은 null


① Statement

○ Connection 클래스의 createStatement( ) 메소드를 호출함으로써 얻어진다.

○ 사용

  Connection conn = DBConn.getConnection();

  Statement stmt = conn.createStatement();

  int result = stmt.executeUpdate(sql);


PreparedStatement

○ Connection 객체의 prepareStatement( ) 메소드를 사용해서 생성

○ sql문장이 미리 컴파일되어진다.

○  sql문을 미리 검사 후 확인 된 sql문을 넣는다. ▶ pstmt = conn.prepareStatement(sql);

○ 한 번 분석되면 재사용이 용이하다.

○ 사용

  Connection conn = DBConn.getConnection();

  PreparedStatement pstmt = null;

  pstmt = conn.prepareStatement(sql);

  int result = pstmt.excuteUpdate();


③ CallableStatement

○ 저장 프로시져를 호출하여 사용

○ 사전 작업 1

demo > BuildPath > ConfigureBuildPath > libraries > Add Exrernal JARS

> ojdbc6.jar의 원래 위치(app\itwill\product\11.2.0\dbhome_1\jdb\lib 추가


2. PreparedStatement 실습

DTO클래스

○ DTO(Data Transfer Object)

  데이터를 전달해주는 역할

  데이터가 포함된 객체를 한 시스템에서 다른 시스템으로 전달하는 작업을 처리하는 객체

package com.score7;


public class ScoreDTO {

//DB에 저장하는 값

private String hak;

private String name;

private int kor;

private int eng;

private int mat;

//DB에 없는 값

private int tot;

private int avg;

private int rank;

public String getHak() {

return hak;

}

public void setHak(String hak) {

this.hak = hak;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getKor() {

return kor;

}

public void setKor(int kor) {

this.kor = kor;

}

public int getEng() {

return eng;

}

public void setEng(int eng) {

this.eng = eng;

}

public int getMat() {

return mat;

}

public void setMat(int mat) {

this.mat = mat;

}

public int getTot() {

return tot;

}

public void setTot(int tot) {

this.tot = tot;

}

public int getAvg() {

return avg;

}

public void setAvg(int avg) {

this.avg = avg;

}

public int getRank() {

return rank;

}

public void setRank(int rank) {

this.rank = rank;

}

@Override

public String toString() {

String str;

str = String.format("%5s %8s %4d %4d %4d %4d %4d %4d",

hak,name,kor,eng,mat,tot,avg,rank);

return str;

}

}


DAO클래스

○ DAO(Data Access Object)

  sql문을 DB에 전달하는 역할

  Database의 data에 접근을 위한 객체

  DB를 사용해 데이터를 조화하거나 조작하는 기능을 전담하도록 만든 오브젝트

package com.score7;


import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

import com.db.DBConn;


public class ScoreDAO {

//1.insert

public int insertData(ScoreDTO dto){ //ScoreDTO를 전달해 줘야 함

int result = 0;

Connection conn = DBConn.getConnection();

PreparedStatement pstmt = null;

String sql;

try {

sql = "insert into score (hak,name,kor,eng,mat) ";

sql+= "values (?,?,?,?,?)"; //인수에 들어가는 개수만큼 ?로 표시

pstmt = conn.prepareStatement(sql); //sql문을 여기서 검사, 확인된 sql문을 넣음

pstmt.setString(1, dto.getHak()); //첫번째자리에 hak을 넣겠다

pstmt.setString(2, dto.getName());

pstmt.setInt(3, dto.getKor());

pstmt.setInt(4, dto.getEng());

pstmt.setInt(5, dto.getMat());

result = pstmt.executeUpdate(); //여기서는 검사할 필요가 없음

pstmt.close();

} catch (Exception e) { //원래는 이렇게 작성

try { pstmt.close();} catch (Exception e2) {}

try { DBConn.close();} catch (Exception e2) {}

}

return result;

}

//2.update

public int updateData(ScoreDTO dto){

int result = 0;

Connection conn = DBConn.getConnection();

PreparedStatement pstmt = null;

String sql;

try {

sql = "update score set kor=?,eng=?,mat=? ";

sql+= "where hak=?";

pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, dto.getKor());

pstmt.setInt(2, dto.getEng());

pstmt.setInt(3, dto.getMat());

pstmt.setString(4, dto.getHak());

result = pstmt.executeUpdate();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return result;

}

//3.delete

public int deleteData(String hak) {

int result = 0;

Connection conn = DBConn.getConnection();

PreparedStatement pstmt = null;

String sql;

try {

sql = "delete score where hak=?";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, hak);

result = pstmt.executeUpdate();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return result;

}

//4.selectAll

public List<ScoreDTO> getList(){

List<ScoreDTO> lists = new ArrayList<ScoreDTO>();

Connection conn = DBConn.getConnection();

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql;

try {

sql = "select hak,name,kor,eng,mat,";

sql+="(kor+eng+mat) tot,(kor+eng+mat)/3 avg,";

sql+= "rank() over (order by (kor+eng+mat) desc) rank ";

sql+= "from score";

pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

while(rs.next()){

ScoreDTO dto = new ScoreDTO();

dto.setHak(rs.getString("hak"));

dto.setName(rs.getString("name"));

dto.setKor(rs.getInt("kor"));

dto.setEng(rs.getInt("eng"));

dto.setMat(rs.getInt("mat"));

dto.setTot(rs.getInt("tot"));

dto.setAvg(rs.getInt("avg"));

dto.setRank(rs.getInt("rank"));

lists.add(dto);

}

rs.close();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return lists;

}

//5.이름 검색

public List<ScoreDTO> getList(String name){

List<ScoreDTO> lists = new ArrayList<ScoreDTO>();

Connection conn = DBConn.getConnection();

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql;

try {

sql = "select hak,name,kor,eng,mat,";

sql+= "(kor+eng+mat) tot,(kor+eng+mat)/3 avg ";

sql+= "from score where name like ?";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, "%"+name+"%");

rs = pstmt.executeQuery();

while(rs.next()){

ScoreDTO dto = new ScoreDTO();

dto.setHak(rs.getString("hak"));

dto.setName(rs.getString("name"));

dto.setKor(rs.getInt("kor"));

dto.setEng(rs.getInt("eng"));

dto.setMat(rs.getInt("mat"));

dto.setTot(rs.getInt("tot"));

dto.setAvg(rs.getInt("avg"));

lists.add(dto);

}

rs.close();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return lists;

}

//6.학번 검색

public ScoreDTO getLists(String hak){

ScoreDTO dto = null;

Connection conn = DBConn.getConnection();

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql;

try {

sql = "select hak,name,kor,eng,mat,";

sql+= "(kor+eng+mat) tot,(kor+eng+mat)/3 avg ";

sql+= "from score where hak=?";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, hak);

rs = pstmt.executeQuery();

if(rs.next()){

dto = new ScoreDTO();

dto.setHak(rs.getString("hak"));

dto.setName(rs.getString("name"));

dto.setKor(rs.getInt("kor"));

dto.setEng(rs.getInt("eng"));

dto.setMat(rs.getInt("mat"));

dto.setTot(rs.getInt("tot"));

dto.setAvg(rs.getInt("avg"));

}

rs.close();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return dto;

}

}


Score클래스

○ 데이터를 입력하는 역할을 수행한다.

package com.score7;


import java.util.Iterator;

import java.util.List;

import java.util.Scanner;


public class Score {

Scanner sc = new Scanner(System.in);

ScoreDAO dao = new ScoreDAO();

//입력

public void insert(){

try {

ScoreDTO dto = new ScoreDTO();

System.out.print("학번:");

dto.setHak(sc.next());

System.out.print("이름:");

dto.setName(sc.next());

System.out.print("국어점수:");

dto.setKor(sc.nextInt());

System.out.print("수학점수:");

dto.setEng(sc.nextInt());

System.out.print("영어점수:");

dto.setMat(sc.nextInt());

int result = dao.insertData(dto);

if(result!=0)

System.out.println("추가에 성공했습니다");

else

System.out.println("추가에 실패했습니다");

} catch (Exception e) {

System.out.println(e.toString());

}

}

//수정

public void update(){

try {

ScoreDTO dto = new ScoreDTO();

System.out.print("수정 할 학번:");

dto.setHak(sc.next());

System.out.print("국어점수:");

dto.setKor(sc.nextInt());

System.out.print("수학점수:");

dto.setEng(sc.nextInt());

System.out.print("영어점수:");

dto.setMat(sc.nextInt());

int result = dao.updateData(dto);

if(result!=0)

System.out.println("수정에 성공했습니다");

else

System.out.println("수정에 실패했습니다");

} catch (Exception e) {

System.out.println(e.toString());

}

}

//삭제

public void delete(){

try {

System.out.print("삭제 할 학번:");

int result = dao.deleteData(sc.next());

if(result!=0)

System.out.println("삭제에 성공했습니다");

else

System.out.println("삭제에 실패했습니다");

} catch (Exception e) {

System.out.println(e.toString());

}

}

//전체출력

public void selectAll(){

List<ScoreDTO> lists = dao.getList();

Iterator<ScoreDTO> it = lists.iterator();

while(it.hasNext()){

ScoreDTO dto = it.next();

System.out.println(dto.toString());

}

}

//이름 검색

public void searchName(){

System.out.print("검색 할 이름:");

List<ScoreDTO> lists = dao.getList(sc.next());

Iterator<ScoreDTO> it = lists.iterator();

while(it.hasNext()){

ScoreDTO dto = it.next();

System.out.println(dto.toString());

}

}

//학번 검색

public void searchHak(){

System.out.print("검색 할 학번:");

ScoreDTO dto = dao.getLists(sc.next());

if(dto!=null)

System.out.println(dto.toString());

}

}


Main클래스

package com.score7;


import java.util.Scanner;

import com.db.DBConn;


public class ScoreMain {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int ch;

Score ob = new Score();

try {

while(true){

do{

System.out.print("1.입력  2.수정 3.삭제  4.전체출력 5.이름검색  6.종료 : ");

ch = sc.nextInt();

}while(ch<1 || ch>6);

switch(ch){

case 1:

ob.insert();

System.out.println(); break;

case 2:

ob.update();

System.out.println(); break;

case 3:

ob.delete();

System.out.println(); break;

case 4:

ob.searchAll();

System.out.println(); break;

case 5:

ob.searchNamel();

System.out.println(); break;

case 6:

DBConn.close();

System.exit(0);

}

}

} catch (Exception e) {

System.out.println(e.toString());

}

}

}

결과
▶전제출력
1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 4
  111      배수지   86   97   84  267   89    1
  222      김태리   98   87   79  264   88    2
  333      박신혜   78   84   85  247   82    3


입력

1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 1

학번:444

이름:전지현

국어점수:87

수학점수:75

영어점수:82

추가에 성공했습니다


1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 4

  111      배수지   86   97   84  267   89    1

  222      김태리   98   87   79  264   88    2

  333      박신혜   78   84   85  247   82    3

  444      전지현   87   75   82  244   81    4


수정

1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 2

수정 할 학번:111

국어점수:97

수학점수:90

영어점수:100

수정에 성공했습니다


1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 4

  111      배수지   97   90  100  287   95    1

  222      김태리   98   87   79  264   88    2

  333      박신혜   78   84   85  247   82    3

  444      전지현   87   75   82  244   81    4


삭제

1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 3

삭제 할 학번:444

삭제에 성공했습니다


1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 4

  111      배수지   97   90  100  287   95    1

  222      김태리   98   87   79  264   88    2

  333      박신혜   78   84   85  247   82    3


이름검색

1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 5

검색 할 이름:태리

  222      김태리   98   87   79  264   88    0


학번검색

1.입력  2.수정  3.삭제  4.전체출력  5.이름검색  6.학번검색  7.종료 : 6

검색 할 학번:333

  333      박신혜   78   84   85  247   82    0



3. CallableStatement 실습


○프로시져 생성

cmd창에서 실행

SUZI계정에서 다음 프로시져들을 생성한다


① insertScore

create or replace procedure insertScore

(phak in score.hak%type,

pname in score.name%type,

pkor in score.kor%type,

peng in score.eng%type,

pmat in score.mat%type)

is

begin

insert into score (hak,name,kor,eng,mat)

values (phak,pname,pkor,peng,pmat);

commit;

end;

/


② updateScore

create or replace procedure updateScore

(phak in score.hak%type,

pkor in score.kor%type,

peng in score.eng%type,

pmat in score.mat%type)

is

begin

update score set kor=pkor,eng=peng,mat=pmat

where hak=phak;

commit;

end;

/


③ deleteScore

create or replace procedure deleteScore

(phak in score.hak%type)

is

begin

delete score where hak=phak;

commit;

end;

/


④ selectAllScore

create or replace procedure selectAllScore

(presult out sys_refcursor)

is

begin

open presult for

select hak,name,kor,eng,mat,

(kor+eng+mat) tot, (kor+eng+mat)/3 avg,

rank() over(order by (kor+eng+mat) desc) rank

from score order by hak;

end;

/


⑤ selectNameScore

create or replace procedure selectNameScore

(presult out sys_refcursor,

pname in varchar2)

is

begin

open presult for

select hak,name,kor,eng,mat,

(kor+eng+mat) tot, (kor+eng+mat)/3 avg

from score where name like '%'||pname||'%';

end;

/


⑥ selectHakScore

create or replace procedure selectHakScore

(presult out sys_refcursor,

phak in varchar2)

is

begin

open presult for

select hak,name,kor,eng,mat,

(kor+eng+mat) tot, (kor+eng+mat)/3 avg

from score where hak=phak;

end;

/


○ PreparedStatement 실습에서 DAO클래스만 다음과 같이 변경해준다

DAO클래스

package com.score8;


import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

import oracle.jdbc.OracleTypes;

import com.db.DBConn;


public class ScoreDAO {

//1.insert

public int insertData(ScoreDTO dto){ //ScoreDTO를 전달해 줘야 함

int result = 0;

Connection conn = DBConn.getConnection();

CallableStatement cstmt = null;

String sql;

try {

sql ="{call insertScore(?,?,?,?,?)}";

cstmt = conn.prepareCall(sql); //sql문을 여기서 검사, 확인된 sql문을 넣음

cstmt.setString(1, dto.getHak()); //첫번째자리에 hak을 넣겠다

cstmt.setString(2, dto.getName());

cstmt.setInt(3, dto.getKor());

cstmt.setInt(4, dto.getEng());

cstmt.setInt(5, dto.getMat());

result = cstmt.executeUpdate(); //여기서는 검사할 필요가 없음

cstmt.close();

} catch (Exception e) { //원래는 이렇게 작성

try { cstmt.close();} catch (Exception e2) {}

try { DBConn.close();} catch (Exception e2) {}

}

return result;

}

//2.update

public int updateData(ScoreDTO dto){

int result = 0;

Connection conn = DBConn.getConnection();

CallableStatement cstmt = null;

String sql;

try {

sql = "{call updateScore(?,?,?,?)}";

cstmt = conn.prepareCall(sql);

cstmt.setString(1, dto.getHak());

cstmt.setInt(2, dto.getKor());

cstmt.setInt(3, dto.getEng());

cstmt.setInt(4, dto.getMat());

result = cstmt.executeUpdate();

cstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return result;

}

//3.delete

public int deleteData(String hak) {

int result = 0;

Connection conn = DBConn.getConnection();

CallableStatement cstmt = null;

String sql;

try {

sql = "{call deleteScore(?)}";

cstmt = conn.prepareCall(sql);

cstmt.setString(1, hak);

result = cstmt.executeUpdate();

cstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return result;

}

//4.selectAll

public List<ScoreDTO> getList(){

List<ScoreDTO> lists = new ArrayList<ScoreDTO>();

Connection conn = DBConn.getConnection();

CallableStatement cstmt = null;

ResultSet rs = null;

String sql;

try {

sql = "{call selectAllScore(?)}"; //출력할 결과를 받을 ?

cstmt = conn.prepareCall(sql);

//out파라미터의 자료형 설정

cstmt.registerOutParameter(1, OracleTypes.CURSOR);

//프로시져 실행

cstmt.executeUpdate();

//out파라미터의 값을 돌려받는다

rs = (ResultSet)cstmt.getObject(1);

while(rs.next()){

ScoreDTO dto = new ScoreDTO();

dto.setHak(rs.getString("hak"));

dto.setName(rs.getString("name"));

dto.setKor(rs.getInt("kor"));

dto.setEng(rs.getInt("eng"));

dto.setMat(rs.getInt("mat"));

dto.setTot(rs.getInt("tot"));

dto.setAvg(rs.getInt("avg"));

dto.setRank(rs.getInt("rank"));

lists.add(dto);

}

rs.close();

cstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return lists;

}

//5.이름 검색

public List<ScoreDTO> getList(String name){

List<ScoreDTO> lists = new ArrayList<ScoreDTO>();

Connection conn = DBConn.getConnection();

CallableStatement cstmt = null;

ResultSet rs = null;

String sql;

try {

sql = "{call selectNameScore(?,?)}"; //출력할 결과를 받을 ?

cstmt = conn.prepareCall(sql);

//out파라미터의 자료형 설정

cstmt.registerOutParameter(1, OracleTypes.CURSOR);

//in파라미터

cstmt.setString(2, name+"%");

//프로시져 실행

cstmt.executeUpdate();

//out파라미터의 값을 돌려받는다

rs = (ResultSet)cstmt.getObject(1);

while(rs.next()){

ScoreDTO dto = new ScoreDTO();

dto.setHak(rs.getString("hak"));

dto.setName(rs.getString("name"));

dto.setKor(rs.getInt("kor"));

dto.setEng(rs.getInt("eng"));

dto.setMat(rs.getInt("mat"));

dto.setTot(rs.getInt("tot"));

dto.setAvg(rs.getInt("avg"));

lists.add(dto);

}

rs.close();

cstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return lists;

}

//6.학번 검색

public ScoreDTO getLists(String hak){

ScoreDTO dto = null;

Connection conn = DBConn.getConnection();

CallableStatement cstmt = null;

ResultSet rs = null;

String sql;

try {

sql = "{call selectHakScore(?,?)}"; //출력할 결과를 받을 ?

cstmt = conn.prepareCall(sql);

//out파라미터의 자료형 설정

cstmt.registerOutParameter(1, OracleTypes.CURSOR);

//in파라미터

cstmt.setString(2, hak);

//프로시져 실행

cstmt.executeUpdate();

//out파라미터의 값을 돌려받는다

rs = (ResultSet)cstmt.getObject(1);

if(rs.next()){

dto = new ScoreDTO();

dto.setHak(rs.getString("hak"));

dto.setName(rs.getString("name"));

dto.setKor(rs.getInt("kor"));

dto.setEng(rs.getInt("eng"));

dto.setMat(rs.getInt("mat"));

dto.setTot(rs.getInt("tot"));

dto.setAvg(rs.getInt("avg"));

}

rs.close();

cstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return dto;

}

}

결과는 PreparedStatement 실습과 같다

'STUDY > JAVA' 카테고리의 다른 글

Java 21일차(1) - 다른 컴퓨터의 데이터베이스와 연결  (0) 2019.02.06
Java 20일차(2) - 회원가입 DB연결하여 만들기  (0) 2019.02.01
Java 8일차  (0) 2019.01.29
Java 7일차  (0) 2019.01.28
Java 6일차  (0) 2019.01.24

댓글