SELECT
mainClass.java
package main;
import java.util.List;
import dto.UserDto;
import select.Select;
public class mainClass {
public static void main(String[] args) {
/*
JDBC
java database connectivity
*/
Select se = new Select();
UserDto ud = se.Select("aaa");
if(ud != null) {
System.out.println(ud.toString());
}else {
System.out.println("데이터를 찾을수 없습니다");
}
ud = se.Select2("bbb");
if(ud != null) {
System.out.println(ud.toString());
}else {
System.out.println("데이터를 찾을수 없습니다");
}
List<UserDto> userlist = se.getUserList();
for (UserDto user : userlist) {
System.out.println(user.toString());
}
}
}
DBClose.java
package db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBClose {
public static void close(Statement stmt, Connection conn, ResultSet rs) {
try {
if(stmt != null) {
stmt.close();
}
if(conn != null) {
conn.close();
}
if(rs != null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
DBConnection.java
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
public static void initConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Driver Loading Success!!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.55:1521:xe", "hr", "hr");
System.out.println("DB Connection Success!!");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
Select.java
package select;
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 java.util.ArrayList;
import java.util.List;
import db.DBClose;
import db.DBConnection;
import dto.UserDto;
public class Select {
//한개의 데이터를 가져올때
public UserDto Select(String id) {
//쿼리문을 작성할땐 앞뒤로 한칸씩 떨어트려 놓자
String sql = " SELECT ID, NAME, AGE, JOINDATE "
+ " FROM USERDTO "
+ " WHERE ID = '" + id + "'";
Connection conn = DBConnection.getConnection(); // db 정보 얻어오기
Statement stmt = null;
ResultSet rs = null;
UserDto dto =null;
System.out.println("sql:" + sql);
try {
stmt = conn.createStatement(); // db 현상태를 얻어오기
rs = stmt.executeQuery(sql); // sql문을 실행시켜준다.
if(rs.next()) { // 쿼리문을 통해서 산출된 데이터
String _id = rs.getString("ID");
String _name = rs.getString("NAME");
int _age = rs.getInt("AGE");
String _joindate = rs.getString("JOINDATE");
dto = new UserDto(_id, _name, _age, _joindate);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBClose.close(stmt, conn, rs);
}
return dto;
}
public UserDto Select2(String id) {
//쿼리문을 작성할땐 앞뒤로 한칸씩 떨어트려 놓자
String sql = " SELECT ID, NAME, AGE, JOINDATE "
+ " FROM USERDTO "
+ " WHERE ID = ?";
Connection conn = DBConnection.getConnection(); // db 정보 얻어오기
PreparedStatement psmt = null;
ResultSet rs = null;
UserDto dto =null;
System.out.println("sql:" + sql);
try {
psmt = conn.prepareStatement(sql); // db 현상태를 얻어오기
psmt.setString(1, id); // id -> ? 에 대입된다.
rs = psmt.executeQuery(); // sql문을 실행시켜준다.
if(rs.next()) { // 쿼리문을 통해서 산출된 데이터
String _id = rs.getString("ID");
String _name = rs.getString("NAME");
int _age = rs.getInt("AGE");
String _joindate = rs.getString("JOINDATE");
dto = new UserDto(_id, _name, _age, _joindate);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBClose.close(psmt, conn, rs);
}
return dto;
}
// 다수의 데이터 -> list<dto>
public List<UserDto> getUserList() {
//쿼리문을 작성할땐 앞뒤로 한칸씩 떨어트려 놓자
String sql = " SELECT ID, NAME, AGE, JOINDATE "
+ " FROM USERDTO ";
Connection conn = null; // db 정보 얻어와 연결용
PreparedStatement psmt = null; // 쿼리문을 실행하는용
ResultSet rs = null; // 결과를 받는 용
List<UserDto> list = new ArrayList<UserDto>();
System.out.println("sql:" + sql);
try {
conn = DBConnection.getConnection(); // db와 연결
psmt = conn.prepareStatement(sql); // db 현상태를 얻어오기
rs = psmt.executeQuery(); // sql문을 실행시켜 데이터 받아온다.
while(rs.next()) { // 전체를 받아오기 때문에 반복문으로 받아준다.
UserDto dto = new UserDto();
dto.setId(rs.getString("ID")); //sql문의 처음 컬럼값과 받아주는 변수의 값이 일치해야 한다.
dto.setName(rs.getString("NAME")); // 1 id 2 name 순으로 받아야 한다는 뜻이다 지금 코드에서는
dto.setAge(rs.getInt("AGE"));
dto.setJoindate(rs.getString("JOINDATE"));
list.add(dto);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBClose.close(psmt, conn, rs);
}
return list;
}
}
'IT > JDBC' 카테고리의 다른 글
DB연결 데이터 입출력(1) (0) | 2020.03.15 |
---|---|
JDBC DB연결셋팅 (0) | 2020.03.03 |
댓글