반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- include 지시자
- ThreadGroup()
- InputDialog
- include액션태그
- first-of-child
- 리눅스셋팅
- 상관 서브 쿼리
- interrupted()
- isinterrupted()
- MemoryStream
- ID중복
- char[] String 형변환
- interrupt()
- include지시자
- 스레드그룸
- first-child
- sleep()메소드
- 리눅스세팅
- ObjectInputStream
- StringWriter
- Daemon()
- String char[] 형변환
- 메모리스트림
- 동기화
- Linux셋팅
- 표현 언어
- 상관서브쿼리
- StringReader
- Linux세팅
- 아이디중복
Archives
- Today
- Total
다연이네
[days02] 싱글톤 클래스 작성 본문
반응형
DBConn
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
//싱글톤
public class DBConn {
//디폴트생성자
private DBConn() {}
private static Connection connection = null;
//private로 잡아서 바로 접근 못하도록
//Connection : 자바 SW와 DB를 연결해주는 다리
public static Connection getConnection() {
if(connection == null) {//null이면 생성해서 돌리고 널 아니면 생성 안하고 돌리기
String className ="oracle.jdbc.driver.OracleDriver"; //드라이버 클래스 이름
//밖에서 OracleD까지 치고 위에 생기는 import 값 복붙해오기
String url = "jdbc:oracle:thin:@localhost:1521:xe"; //type4 (thin)
//항상 내 디비 연결할 순 없고 다른 서버의 다른 디비 연결해야 할 때가 있다 =>오버로딩
String user = "scott";
String password = "tiger";
try {
Class.forName(className);
connection = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
//드라이버 로딩 오류
e.printStackTrace();
} catch (SQLException e) {
//컨넥션 오류 (디비 연결 오류)
e.printStackTrace();
}
}
return connection;
}
//오버로딩
public static Connection getConnection(
String url, String user, String password ) {
if(connection == null) {//null이면 생성해서 돌리고 널 아니면 생성 안하고 돌리기
String className ="oracle.jdbc.driver.OracleDriver"; //드라이버 클래스 이름
//클래스 네임도 달라진다면 다른 dbms를 연동하겠다는 의미(오라클이 아닌 mysql 등)
//그럴 경우 getConnection을 하나 더 복사 (오버로딩 해서 String className까지 매개변수로 주기)
try {
Class.forName(className);
connection = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
//드라이버 로딩 오류
e.printStackTrace();
} catch (SQLException e) {
//컨넥션 오류 (디비 연결 오류)
e.printStackTrace();
}
}
return connection;
}
//
public static void close() { //DB를 닫는 close 함수
try {
if(connection != null && !connection.isClosed()) {
//커넥션 객체가 닫혔는지 안닫혔는지 묻고 닫혔다면 true 반환
connection.close();
//객체가 있고 안닫혔다면 닫겠다
}
} catch (SQLException e) {
e.printStackTrace();
}
connection = null;
//중요
}
}
Re01
package review;
import java.sql.Connection;
import com.util.DBConn;
public class Re01 {
public static void main(String[] args) {
//DBConn con = new DBConn(); 매번 new연산자로 만드는것을 막기위해 DBConn에 private라고 씀
Connection con = DBConn.getConnection();
System.out.println(con);
DBConn.close();
}
}
출력값 : oracle.jdbc.driver.T4CConnection@4629104a
다른 오라클 서버 연결
package days02;
import java.sql.Connection;
import java.sql.SQLException;
import com.util.DBConn;
public class Ex01_02 {
public static void main(String[] args) {
String ipAddress = "192.168.0.26";
int port = 1521;
String SID = "XE";
String url = String.format(
"jdbc:oracle:thin:@%s:%d:%s", ipAddress, port, SID); //type4 (thin)
String user = "hr";
String password = "lion";
Connection con = DBConn.getConnection(url, user, password);
System.out.println(con);
//con.close();
DBConn.close();
System.out.println("=END=");
}
}
반응형
'JDBC' 카테고리의 다른 글
[days03] PreparedStatement - 사원 추가, 수정, 삭제 (0) | 2020.11.25 |
---|---|
[days03] 문제) 부서별 소속 사원수 정렬하여 출력 (0) | 2020.11.25 |
[days03] 사원 조회, 추가, 삭제 (0) | 2020.11.25 |
[days02] DEPT 테이블 조회, 추가, 수정, 삭제, 검색 (0) | 2020.11.25 |
[days02] 싱글톤 클래스 SELECT(조회) 작업하기 (0) | 2020.11.25 |
Comments