JDBC接続Oracle

2842 ワード

仕事の中で、私达の出会った操作のデータベースのコードはすべてカプセル化して、今日私达は见てみて、最も基本的なのはJDBCを利用してデータベースを操作します.
JDBC接続データベースには主に3つのステップがあります.
ステップ1:データベースドライバをロードします.通常はClassを使います.forNameスタティックメソッドでドライバをロードします.
ステップ2:DriverManagerでデータベース接続を取得します.
ステップ3:ConnectionでStatementオブジェクトを作成し、ConnectionでStatementオブジェクトを作成する方法は3つあります.
  • createStatement():基本的なStatementオブジェクトを作成する
  • prepareStatement(String sql):入力されたSQL文に基づいてプリコンパイルされたStatementオブジェクトを作成します.
  • prepareCall(String sql):入力されたSQL文に基づいてCallableStatementオブジェクト
  • を作成します.
    ステップ4:Statementを使用してSQL文を実行します.すべてのStatemetオブジェクトには、SQL文を実行するための3つの方法があります.
  • execute:SQL文は任意に実行できますが、面倒です.
  • executeUpate:主にDML文とDDL文を実行するために使用されます.DMLを実行するとSQL文の影響を受けた行数が返され、DDLを実行すると0が返されます.
  • executeQuery:クエリー文のみが実行され、実行後にクエリー結果を表すResultSetオブジェクトが返されます.

  • 手順5:結果セットを操作します.SQL文がクエリ文である場合、SQL文クエリの結果が保存されたResultSetオブジェクトが返されます.このResultSetを操作することで、クエリの結果を取り出すことができます.ResultSetオブジェクトには、主に2つの方法があります.
  • next、previous、first、last、beforeFirst、afterLast、absoluteなどの記録ポインタを移動する方法.
  • getXXXレコードポインタが行、特定の列を指す値を取得します.この方法は、カラムインデックスをパラメータとして使用するか、カラム名をパラメータとして使用することができます.カラムインデックスをパラメータとして使用すると、よりパフォーマンスが向上し、カラム名をパラメータとして使用すると、より読みやすさが向上します.

  • 次のコードは、基本的に上記のことを説明しています.
    package jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class ConnOracle {
    
    	public static void main(String[] args) {
    		//          URL、   、  
    		String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    		String user="scott";
    		String password="yulei123";
    		
    		try {
    			//1.    ,        
    			 Class.forName("oracle.jdbc.driver.OracleDriver");
    			 /*
    			  *    DriverManager       
    			  *       Connection    JAVA         
    			  *        URL            ,   、   DBA  
    			 */
    			 Connection conn=DriverManager.getConnection(url, user, password);
    			 //  Connection     Statement  
    			 Statement stmt=conn.createStatement();
    			 //  SQL  
    			 /*
    			  * Statement     SQL     
    			  * 1、execute     SQL      --    boolean 
    			  *      ,      ResultSet,   true,    false
    			  * 2、executeQuery   select       --         
    			  * 3、executeUpdate    DML  。---      ,   SQL        
    			 */
    			 String sql="select e.* from emp e";
    			 ResultSet rs=stmt.executeQuery(sql);
    			 //ResultSet    GetXXX(   ||  ),           、     
    			 //     next         ,         ,           
    			 while(rs.next()){
    				 //    
    				 System.out.println("   :"+rs.getInt(1)+"\t    :"+rs.getString(2));
    				 //    
    				 System.out.println("   :"+rs.getInt("empno"));
    				 
    			 }
    			 
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		
             
    	}
    }