자바 Oracle 데이터베이스 연결 방법 분석

Oracle 데이터 베 이 스 는 먼저 표를 만 들 고 데 이 터 를 추가 합 니 다.
1.먼저 Oracle 데이터베이스 에 student 표를 만 듭 니 다.

create table student
(
 id number(11) not null primary key,
 stu_name varchar(16) not null,
 gender number(11) default null,
 age number(11) default null,
 address varchar(128) default null
);
2.표 에 데 이 터 를 추가 합 니 다.insert into student values('1',' ','1','17',' 30 7 102')MyEclipse 에서 자바 코드 를 작성 합 니 다.
1.ojdbc 6.jar 항목 가 져 오기
   먼저 항목 을 만 든 다음 마우스 에서 항목 으로 이동 합 니 다.->new-->folder;folder name:lib;이렇게 해서 프로젝트 에 폴 더 lib 를 만 들 었 습 니 다.그리고 이 폴 더 에 ojdbc 6.jar 패 키 지 를 가 져 옵 니 다.
   이 패키지 다운로드 주소 링크:http://wd.jb51.net:81//201612/yuanma/ojdbc6_jb51.rar
   이 가방 으로 마우스 옮 기기;오른쪽 키-->build path-->add 를 눌 러 build path;

2.클래스 를 만 들 고 인 코딩 을 시작 합 니 다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class OperateOracle {
 //           
 // 192.168.0.X     (      IP  ),1521   ,XE    Oracle       
 private static String USERNAMR = "orcl";
 private static String PASSWORD = "orcl";
 private static String DRVIER = "oracle.jdbc.OracleDriver";
 private static String URL = "jdbc:oracle:thin:@192.168.0.X:1521:xe";
 //          
 Connection connection = null;
 //          ,          Statement
 PreparedStatement pstm = null;
 //          
 ResultSet rs = null;
 /**
 *          
 *           ,  +1      id 
 * @param stuName:    
 * @param gender:    ,1    ,2    
 * @param age:    
 * @param address:    
 */
 public void AddData(String stuName, int gender, int age, String address) {
 connection = getConnection();
 // String sql =
 // "insert into student values('1','   ','1','17','        30  7 102')";
 String sql = "select count(*) from student where 1 = 1";
 String sqlStr = "insert into student values(?,?,?,?,?)";
 int count = 0;
 try {
 //      student      
 pstm = connection.prepareStatement(sql);
 rs = pstm.executeQuery();
 while (rs.next()) {
 count = rs.getInt(1) + 1;
 System.out.println(rs.getInt(1));
 }
 //         
 pstm = connection.prepareStatement(sqlStr);
 pstm.setInt(1, count);
 pstm.setString(2, stuName);
 pstm.setInt(3, gender);
 pstm.setInt(4, age);
 pstm.setString(5, address);
 pstm.executeUpdate();
 } catch (SQLException e) {
 e.printStackTrace();
 } finally {
 ReleaseResource();
 }
 }
 /**
 *          
 * @param stuName:        
 */
 public void DeleteData(String stuName) {
 connection = getConnection();
 String sqlStr = "delete from student where stu_name=?";
 System.out.println(stuName);
 try {
 //         
 pstm = connection.prepareStatement(sqlStr);
 pstm.setString(1, stuName);
 pstm.executeUpdate();
 } catch (SQLException e) {
 e.printStackTrace();
 } finally {
 ReleaseResource();
 }
 }
 /**
 *          
 * @param stuName:    ,             
 * @param gender
 * @param age
 * @param address
 */
 public void UpdateData(String stuName, int gender, int age, String address) {
 connection = getConnection();
 String sql = "select id from student where 1 = 1 and stu_name = ?";
 String sqlStr = "update student set stu_name=?,gender=?,age=?,address=? where id=?";
 int count = 0;
 try {
 //      student      
 pstm = connection.prepareStatement(sql);
 pstm.setString(1, stuName);
 rs = pstm.executeQuery();
 while (rs.next()) {
 count = rs.getInt(1);
 System.out.println(rs.getInt(1));
 }
 //         
 pstm = connection.prepareStatement(sqlStr);
 pstm.setString(1, stuName);
 pstm.setInt(2, gender);
 pstm.setInt(3, age);
 pstm.setString(4, address);
 pstm.setInt(5, count);
 pstm.executeUpdate();
 } catch (SQLException e) {
 e.printStackTrace();
 } finally {
 ReleaseResource();
 }
 }
 /**
 *          
 */
 public void SelectData() {
 connection = getConnection();
 String sql = "select * from student where 1 = 1";
 try {
 pstm = connection.prepareStatement(sql);
 rs = pstm.executeQuery();
 while (rs.next()) {
 String id = rs.getString("id");
 String name = rs.getString("stu_name");
 String gender = rs.getString("gender");
 String age = rs.getString("age");
 String address = rs.getString("address");
 System.out.println(id + "\t" + name + "\t" + gender + "\t"
 + age + "\t" + address);
 }
 } catch (SQLException e) {
 e.printStackTrace();
 } finally {
 ReleaseResource();
 }
 }
 /**
 *   ResultSetMetaData    
 */
 public void SelectData2() {
 connection = getConnection();
 String sql = "select * from employees where 1 = 1";
 int count = 0;
 try {
 pstm = connection.prepareStatement(sql);
 rs = pstm.executeQuery();
 while (rs.next()) {
 count++;
 }
 ResultSetMetaData rsmd = rs.getMetaData();
 int cols_len = rsmd.getColumnCount();
 System.out.println("count=" + count + "\tcols_len=" + cols_len);
 } catch (SQLException e) {
 e.printStackTrace();
 } finally {
 ReleaseResource();
 }
 }
 /**
 *   Connection  
 * 
 * @return
 */
 public Connection getConnection() {
 try {
 Class.forName(DRVIER);
 connection = DriverManager.getConnection(URL, USERNAMR, PASSWORD);
 System.out.println("       ");
 } catch (ClassNotFoundException e) {
 throw new RuntimeException("class not find !", e);
 } catch (SQLException e) {
 throw new RuntimeException("get connection error!", e);
 }
 return connection;
 }
 /**
 *     
 */
 public void ReleaseResource() {
 if (rs != null) {
 try {
 rs.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 if (pstm != null) {
 try {
 pstm.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 if (connection != null) {
 try {
 connection.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 }
}
3.테스트 클래스 만 들 기

public class Test {
 public static void main(String[] args) {
 /**
 *       ,        
 * 1.      
 * 2.           (      -->      ,        ?)
 * 3.       
 * 4.      
 */
 //  OperateOracle  
 OperateOracle oo=new OperateOracle();
 //        
 //oo.AddData("   ",1,25,"         111 ");
 //        
 //oo.DeleteData("   ");
 //        
 oo.UpdateData("   ",1,30,"         11 ");
 //        
 //oo.SelectData();
 //  ResultSetMetaData 
 //oo.SelectData2();
 }
}
테스트 클래스 에서 설명 한 바 와 같이 여 기 는 정확 한 방식 으로 Oracle 데이터 베 이 스 를 연결 하고 삭제 와 검사 작업 을 할 수 있 지만 일부 오류 작업 에 대한 처리 체제 가 완선 되 지 않 습 니 다.
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기