어떻게 JDBC 를 이용 하여 Oracle 데이터 베 이 스 를 연결 하고 조작 합 니까?
4847 단어 Java
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 기능 과 유사 합 니 다.이러한 관 계 는 이 연결 과 사용 과정 이 훨씬 간단 해 진 것 같 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.