DBConnection
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnection {
public DBConnection(){
super();
}
public Connection getConnection() throws Exception{
try{
Class.forName("oracle.jdbc.driver.OracleDriver"); // DB와 연결되는 드라이버 클래스 지정
String url = "jdbc:log4jdbc:oracle:thin:@localhost:1521/XE"; // DB URL
String user = "system"; // DB user
String password = "0000"; // DB password
return DriverManager.getConnection(url, user, password);
}catch (Exception e){
throw e;
}
}
}
DbTestMain - 임의의 클래스
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.HashMap;
public class DbTestMain {
public static void main(String[] args) throws Exception{
Connection con = null;
PreparedStatement ps = null; // Statement 클래스의 상위
ResultSet rs = null; // Select 문의 결과를 저장하는 객체
ResultSetMetaData rsmd = null; // 컬럼에 대한 정보
try{
con = new DBConnection().getConnection();
con.setAutoCommit(false);
StringBuffer sql = new StringBuffer();
sql.append("SELECT \n");
sql.append("M_ID, \n");
sql.append("M_PASSWORD , \n");
sql.append("M_NAME , \n");
sql.append("M_AGE , \n");
sql.append("M_ADDR \n");
sql.append("FROM MEMBER \n");
sql.append("WHERE M_ID = ? \n");
ps = con.prepareStatement(sql.toString());
ps.setString(1, "user"); // 조건값 세팅 , PreparedStatement 로 인해 값을 set 할 수 있음
rs = ps.executeQuery(); // 쿼리 실행
// insert , update , delete 실행 시 ps.executeQuery(); 로 실행됨
// Select 문의 데이터를 가져오기 위한 로직 start
rsmd = rs.getMetaData();
int iColumnCount = rsmd.getColumnCount(); // 조회하는 컬럼 수
HashMap<String , Object> data = null;
while(rs.next()){
data = new HashMap<>();
for (int i = 0; i < iColumnCount; i++) {
String s = rsmd.getColumnName(i + 1);
Object o = rs.getObject(s);
data.put(s, o);
}
System.err.println("data : "+data);
}
// Select 문의 데이터를 가져오기 위한 로직 end
con.commit();
}catch (Exception e){
con.rollback();
e.printStackTrace();
}finally {
if(rs != null){
rs.close();
}
if(ps != null){
ps.close();
}
if(con != null){
con.close();
}
}
}
}
DBConnection 클래스는 재사용성을 위해 따로 분리해두었다
'개발 > Java' 카테고리의 다른 글
[JAVA] 파일 생성, 삭제, 쓰기, 이름변경, 이동, 복사, 읽기 하기 (1) | 2024.05.21 |
---|---|
[JAVA] REST API 구현하기(API KEY) - Postman 이용 (0) | 2023.09.07 |
[Java] 단방향 암호화 하기 - SHA256 (0) | 2023.05.26 |
[Java] cURL - ProcessBuilder 사용하기 (0) | 2023.05.24 |
[Java] Thread(스레드) - 생성, 실행, 종료 하기 , 에러 해결 (0) | 2023.05.13 |
댓글