자바

eclipse에서 ojdbc, 싱글톤 이용해서 db 접속

chantleman 2024. 7. 19. 11:49

src에 ojdbc6 붙여넣은 후

 

프로젝트 우클릭하고 build path - configure build path - 

 

 

libraries- modueltpath - add jar 클릭해서 ojdbc6.jar 파일을 추가합니다.

 

 

Referenced Libraries에 ojdbc 파일 생긴거 확인

 

 

 

import java.sql.Connection;

public class DBConn {

	private static Connection conn;
	
	public static Connection getConnection() {
		
        //String url = "jdbc:oracle:thin:@localhost:1521:XE";
		String url = "jdbc:oracle:thin:@localhost:8521/FREEPDB1";
		String user = "pc03";
		String pwd = "java";
		
		return conn;
	}
}

원래 oracle은 localhost:1521로 해야하는데 저는 처음에 오라클 설정할 때 port번호를 8521로 변경해놨기 때문에 8521로 했습니다. (8521이 1521로 재요청해서 들어감)

xe로 할 때는 콜론, 다른 아이디로 하면 슬래시로 구분합니다.

 

2024.07.02 - [오라클] - 오라클 세팅

 

오라클 세팅

위에 + 새접속 버튼을 눌러서 도커 컨테이너 생성할 때 본인이 지정한 비밀번호와 포트번호를 입력합니다.밑에 테스트 버튼을 클릭해보고 만약 에러가 뜨면 docker 어플리케이션에서 컨테이너를

chantleman.tistory.com

 

 

 

 

 

sqld들어가서 내가 쓰는 계정 속성에 설정해놓았던 서비스 이름, 사용자 이름, 비밀번호 입력

 

 

만약 빨간줄뜬다면 자바 프로젝트에 moduleinfo 파일이 있는지 확인 후 있으면 삭제하세용

 

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConn {

	private static Connection conn;
	
	public static Connection getConnection() {
		
		String url = "jdbc:oracle:thin:@localhost:8521:FREEPDB1"; //8521이 1521로 재요청해서 들어감
		String user = "pc03";
		String pwd = "java";
		
		
		if(conn==null)
		{
			try {
				Class.forName("oracle.jdbc.driver.OracleDriver");
				conn = DriverManager.getConnection(url,user,pwd);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return conn;
	}
}

 

 


테스트를 위해 쿼리문 실행

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class DBMain {
	Connection conn;
	Statement stmt;
	ResultSet rs;
	
	
	public static void main(String[] args) {
		DBMain db= new DBMain();
		db.selectAll();
	}
	
	public void selectAll() {
		try {
			conn = DBConn.getConnection();
			stmt = conn.createStatement(); //stmt가 쿼리 날림
			String sql = "SELECT * FROM MEMBER";
			rs = stmt.executeQuery(sql);//결과값을 rs에 대입
			
			while(rs.next()) 
			{
				String mid = rs.getString("mem_id");
				String mname = rs.getString("mem_name");				
				System.out.println(mid+"\t"+mname+"\t");
			}
				
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		
	}
}

rs.next(): 값이 있을 경우에는 데이터를 계속 쭉 갖고오겠다. 없으면 종료

만약 결과가 안나오면 도커랑 sqld 다 접속한 후 해보세요

'자바' 카테고리의 다른 글

lombok.jar  (0) 2024.07.22
싱글톤  (1) 2024.07.19
static singleton 템플릿  (0) 2024.07.19
자바 로또 예제  (0) 2024.07.18
enum  (0) 2024.07.17