MySQL-JDBCの簡単な紹介

18411 ワード

Javaでは、データベース・アクセス・テクノロジーは次のように分類されます.
  • JDBC直接アクセスデータベース
  • JDOテクノロジー(Java Data Object)
  • サードパーティO/Rツール(Hibernate、Mybatisなど)
  • JDBCはJAVAアクセスデータベースの礎であり、JDO、Hibernateなどの知識はJDBCをよりよくカプセル化している.
    JDBC(Java Database Connectivity)Javaとデータベースの接続技術
    JDBCは、特定のデータベース管理システム(DBMS)、共通のSQLデータベースアクセスおよび操作とは独立した共通インタフェース(APIのセット)の役割を果たす.
  • は、データベースにアクセスするための標準Javaクラスライブラリを定義し、このクラスライブラリを使用すると、標準的な方法で、データベースリソース
  • に容易にアクセスできます.
  • JDBCは異なるデータベースにアクセスするために統一的な標準を提供し、開発者のためにいくつかの詳細な問題
  • を遮断した.
  • JDBCの目的は、JavaプログラマーがJDBCを使用してJDBCドライバを提供する任意のデータベースシステムに接続できるようにすることである.これにより、プログラマーは特定のデータベースシステムの特徴をあまり理解する必要がなく、開発プロセス
  • を大幅に簡素化し、加速することができる.
    JDBCの使用例のプレゼンテーション
    JDBCの簡単な使用手順
    前提:mysqlのドライバパッケージを用意し、プロジェクトにロードしてプロジェクトにlibsフォルダを作成し、mysql-connector-java-5.1.37-bin.jarファイルをlibsディレクトリの下にコピーし、build path-add to build pathを右クリックする
  • ロード駆動
  • 取得接続
  • 削除変更操作
  • を実行する.
  • 接続を閉じる
  • public class TestConnection {
    	public static void main(String[] args) throws SQLException{
    		//1.     
    		DriverManager.registerDriver(new Driver());
    		//2.     
    		Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/girls","root","2401");
    		System.out.println("    ");
    		//3.       
    		//3.1   SQL  
    		String sql = "delete from beauty where id = 9";
    		//3.2     sql       
    		Statement statement = connection.createStatement();
    		//3.3         SQL  
    		int update = statement.executeUpdate(sql);
    		//3.4       
    		System.out.println(update>0?"success":"failure");
    		//4.     
    		statement.close();
    		connection.close();
    	}
    }
    

    1.登録ドライバ
    クラスのロードタイミング
  • newオブジェクト
  • ローディングサブクラス
  • 呼び出しクラスの静的メンバー
  • 反射
  • を通過する.
    newオブジェクトを使用してクラスをロードする不足:
  • はコンパイル期間ロードに属し、コンパイル期間中にクラスが存在しない場合、コンパイルエラー、すなわち依存性が強すぎる
  • を直接報告する.
  • により、Driverオブジェクトが2回作成され、効率が低い
  • クラスを反射的にロード
  • は実行中のロードに属し、クラスの依存性を大幅に低減する
  • である.
  • Driverオブジェクトは1回だけ作成され、効率が高い
  • //1.     
    			
    //   new          ,     ,     
    DriverManager.registerDriver(new Driver());
    			
    //          
    Class.forName("com.mysql.jdbc.Driver");
    			
    

    2.接続の取得
    propertiesプロファイルに情報を配置する
    name=root
    password=2401
    url=jdbc:mysql://localhost:3306/girls
    driver=com.mysql.jdbc.Driver
    
    //2.     
    			
    //   :
    DriverManager.getConnection("jdbc:mysql://localhost:3306/girls","root","2401");
    
    
    //   :
    DriverManager.getConnection("jdbc:mysql://localhost:3306/girls?user=root&password=2401");
    
    
    //   :
    // src     properties    ,         
    //  properties            
    Properties info = new Properties();
    info.load(new FileInputStream("src\\jdbc.properties"));
    String user = info.getProperty("name");
    String password = info.getProperty("password");
    String driver = info.getProperty("driver");
    String url = info.getProperty("url");
    
    Connection connection = DriverManager.getConnection(url,user,password);
    System.out.println("    ");
    

    3.削除・変更の実行
    // 
    String sql = "select id,name,sex from beauty";
    // 
    String sql = "insert into beauty values(null,'   ',' ','2000-1-1','110',null,3)";
    // 
    String sql = "delete from beauty where id=13";
    // 
    String sql = "update beauty set name='    '  where id=4";
    //    sql     
    Statement statement = connection.createStatement();
    
    //  sql  
    			
    //   :    sql  ,     false,         ,  true,  ,  false,         ,     
    boolean execute = statement.execute(sql);
    
    //   :        ,        
    //   
    int update = statement.executeUpdate(sql);
    // 
    //      ,      
    ResultSet set = statement.executeQuery(sql);
    while(set.next()) {
    	int id = set.getInt(1);
    	String name = set.getString(2);
    	String sex = set.getString(3);
    				
    	System.out.println(id+"\t"+name+"\t"+sex+"\t");
    }
    			
    

    set.getxx取得には2つの方法があります.
    方法1:
    getxx(    )
    

    例:
    int id = set.getInt(1);
    String name = set.getString(2);
    String sex = set.getString(3);
    

    注意:ここのカラムのインデックスは、sql文でクエリーされたテーブルのカラムインデックスであり、元のテーブル列のインデックスではありません.例えばString sql = "select name,id,sex from beauty";、ここでname列のインデックス値は1、id列のインデックス値は2
    方式2:
    getxx(  )
    

    例:
    int id = set.getInt("id");
    String name = set.getString("name");
    String sex = set.getString("sex");
    

    データ型が不明な場合は、次の操作を行います.
    getObject(     |   )
    

    4.接続を閉じる
    //    ,    ,       ,       
    statement.close();
    connection.close();
    set.close();