어떻게 JDBC 를 이용 하여 Oracle 데이터 베 이 스 를 연결 하고 조작 합 니까?

4847 단어 Java
앞서.NET 을 배 울 때 ODBC 를 이용 해 데이터 베 이 스 를 연결 한 적 이 있 으 며,자바 에 서 는 보통 JDBC 로 데이터 베 이 스 를 연결 하 는데,여기 서 Oacle 데이터 베 이 스 를 예 로 들 어 JDBC 를 이용 하여 데이터 베 이 스 를 어떻게 연결 하고 조작 하 는 지 간단하게 요약 한다.
1.연결
public class DbUtil {
	public static Connection getConnection(){
		Connection conn=null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");//  oracle       
			String url="jdbc:oracle:thin:@localhost:1521:bjpowernode"; //URL  
			String username="drp";
			String password="drp";
			conn=DriverManager.getConnection(url, username, password);
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	
	
	public static void close(PreparedStatement pstmt){
		if(pstmt !=null){
			try {
				pstmt.close();
			} catch (SQLException e) {
				
				e.printStackTrace();
			}
		}
	}
	
	public static void close(ResultSet rs){
		if(rs !=null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
 
  
Class.forName , OracleDriver , :

1、

D:\oracle\product\10.2.0\db_1\jdbc\lib   ojdbc14.jar

     2、  ojdbc14.jar\oracle\jdbc\driver  oraceldriver


2、 --

public void addUser(User user){
		String sql="insert into t_user(user_id,user_name,PASSWORD,CONTACT_TEL,EMAIL,CREATE_DATE)values(?,?,?,?,?,?)"; //?      
		Connection conn=null;
		PreparedStatement pstmt=null; //    PreparedStatement    ,      
		try{
			conn=DbUtil.getConnection();
			pstmt=conn.prepareStatement(sql);
			pstmt.setString(1, user.getUserId());
			pstmt.setString(2,user.getUserName());
			pstmt.setString(3, user.getPassword());
			pstmt.setString(4, user.getContactTel());
			pstmt.setString(5,user.getEmail());
			//pstmt.setTimestamp(6,new Timestamp(System.currentTimeMillis()));
			pstmt.setTimestamp(6, new Timestamp(new Date().getTime()));//        
			pstmt.executeUpdate();//       
			
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			DbUtil.close(conn);
			DbUtil.close(pstmt);
			
		}
			
	}

3.조작 데이터베이스--조회
public User findUserById(String userId){
		String sql = "select user_id, user_name, password, contact_tel, email, create_date from t_user where user_id=?";
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;//            
		User user=null;
		try{
			conn=DbUtil.getConnection();
			pstmt=conn.prepareStatement(sql);
			pstmt.setString(1,userId);
			rs=pstmt.executeQuery();//      
			if(rs.next()){				
				user=new User();
				user.setUserId(rs.getString("user_Id"));
				user.setUserName(rs.getString("user_name"));
				user.setPassword(rs.getString("password"));
				user.setContactTel(rs.getString("contact_Tel"));
				user.setEmail(rs.getString("email"));
				user.setCreateDate(rs.getTimestamp("create_date"));				
			}
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			//       
			DbUtil.close(rs);
			DbUtil.close(pstmt);
			DbUtil.close(conn);
			
		}
		return user;
	}

총화
1.Prepared Statement 과 Statement 의 간단 한 차이
Statement 은 SQL 구문 생 성 실행 계획 입 니 다.매개 변수 값 이 다 르 면 서로 다른 sql 문 구 를 생 성하 고 해당 매개 변수 값 개수 의 횟수 를 실행 합 니 다.SQL 문 구 를 하나만 실행 할 때 는 Statement 으로 진행 하 는 것 이 좋 습 니 다.
Prepared Statement 은 바 인 딩 변 수 를 사용 하여 실행 계획 을 다시 사용 합 니 다.서로 다른 매개 변수 값 에 대응 하 는 조회 문 구 는 하나의 sql 문 구 를 생 성하 여 실행 효율 을 크게 향상 시 킵 니 다.사전 컴 파일 입 니 다.대량의 양 문 구 를 조작 할 때 효율 을 높이 는 동시에'?'를 사용 할 수 있다.매개 변 수 를 대표 하여 SQL 주입 을 방지 하고 안전성 이 높 습 니 다.
2.이전 지식 과 연계
현재 접 촉 된 액 JDBC 의 연결 대상 은 Connection 이라는 이전 ODBC 의 Connection 역할 과 동일 하 게 데이터베이스 연결 대상 이 며,PraparedStatement 은 Statement 과 ODBC 의 command 대상 과 유사 하여 SQL 문 구 를 실행 하 는 데 사 용 됩 니 다.검색 방법 에 사 용 된 ResultSet 은 이전에 사 용 된 DataSet 이나 DataTable 기능 과 유사 합 니 다.이러한 관 계 는 이 연결 과 사용 과정 이 훨씬 간단 해 진 것 같 습 니 다!

좋은 웹페이지 즐겨찾기