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を右クリックするロード駆動 取得接続 削除変更操作 を実行する.接続を閉じる
1.登録ドライバ
クラスのロードタイミング newオブジェクト ローディングサブクラス 呼び出しクラスの静的メンバー 反射 を通過する.
newオブジェクトを使用してクラスをロードする不足:はコンパイル期間ロードに属し、コンパイル期間中にクラスが存在しない場合、コンパイルエラー、すなわち依存性が強すぎる を直接報告する.により、Driverオブジェクトが2回作成され、効率が低い クラスを反射的にロードは実行中のロードに属し、クラスの依存性を大幅に低減する である. Driverオブジェクトは1回だけ作成され、効率が高い
2.接続の取得
propertiesプロファイルに情報を配置する
3.削除・変更の実行
set.getxx取得には2つの方法があります.
方法1:
例:
注意:ここのカラムのインデックスは、sql文でクエリーされたテーブルのカラムインデックスであり、元のテーブル列のインデックスではありません.例えば
方式2:
例:
データ型が不明な場合は、次の操作を行います.
4.接続を閉じる
JDBC(Java Database Connectivity)Javaとデータベースの接続技術
JDBCは、特定のデータベース管理システム(DBMS)、共通のSQLデータベースアクセスおよび操作とは独立した共通インタフェース(APIのセット)の役割を果たす.
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オブジェクトを使用してクラスをロードする不足:
//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();