JDBC接続MySQLデータベース(A) - 基本的なデータベース接続

JDBC概念
JDBCの概念で私たちの最初の一見の前には、JDBCは、APIのセットであるデータベース接続(Javaデータベース接続)の略で、SQL文を実行するためのアプリケーションプログラムは、このAPIを介してリレーショナルデータベースに接続することができますそして、など、削除、変更、追加、データベースクエリを完了するために、SQL文を使用..
内部データベースは、データベース・ベンダーの方法により、データへの直接アクセスを確立するために、アプリケーションの移植性が非常に悪くなる場合に、ユーザーが現在のプログラムで使用された場合に異なるタイプのデータは、異なるハンドルJDBCコードを作る駆動統一されたデータベースを、提供するために、要件に従ってデータベースベンダーを必要とするため、JDBCで多くのコードを変更する必要がこのような状況は、存在しないかのように、OracleのデータベースにMySQLデータベースですより汎用性。

 

JDBCは、様々な異なる駆動データ接続で、ブリッジの役割におけるアプリケーションとデータベースとの間で、図から分かるように、対応する接続​​動作

JDBC APIを学ぶ
ドライバインタフェースの
ドライバインタフェースは、すべてのJDBCドライバは、インタフェースを使用するデータベース・ベンダーに特化し、実装しなければならないです。JDBCプログラムを書くとき、あなたはクラスパスにロードされたすべてのデータベースドライバやライブラリを置く必要があります。

DriverManagerのインターフェイス
メソッドの役割
regsiterDriver(ドライバドライバ)JDBCドライバのDriverManager登録するため
のgetConnection(文字列のURL、文字列のユーザー、文字列のパスワード) データベースへの接続を確立するため
の接続インターフェイス
メソッドの役割の
SQL文に送信されたのcreateStatement()オブジェクト作成文をデータベース
のprepareStatement()は、SQL文をデータベースに送信するためのprepareStatementオブジェクトを作成するために
呼び出すCallableStatementオブジェクトデータベースのストアドプロシージャを作成するためのprepareCall()
注:私たちはのcreateStatementは、オブジェクトの作成を参照してくださいここと方法がのprepareStatementがデータベースにSQL文を送信しているが、違いは何ですか?我々は、その使用について話した後、私たちはcreateStatementメソッド、prepareStatementメソッドを使用してみましょう。

ステートメントインターフェース
メソッドの役割は、
SQLステートメントを実行する(文字列のSQL)を実行存在が結果として示された場合、真のブール値を返し、メソッドのResultSetによってクエリ結果が
削除更新方法を挿入するのexecuteUpdate(文字列のSQL)SQL文を実行し、int型の値を返し
実行のexecuteQueryをSQL SELECT文
のResultSetインタフェース
メソッド記載
のgetString(文字列名)String型の値を取得し、名前フィールド代表名
のgetInt(int index)指定さINT、フィールド名のインデックス代表取得し
、次の()次の行に現在位置
以前の( )ResultSetのライン上
の指定位置絶対(INT行)ResultSetがある
接続ステップ確立する
JARパッケージプロジェクトにコードMySQLのガスを書き込む必要でのMySQLの\コネクタJのMySQL-connector-見出さのjava-8.0.14 で8.0プロジェクトへの.jarファイル

データベースへの接続を確立するために、我々はMySQLデータベース最初の登録を推進しなければならない
、完全なデータベースドライバの登録をデータベースへの接続を確立
文オブジェクトを作成する
SQL文の実行
トラバーサルクエリデータ
リリースリソースの
JDBCコードベース
のデータベースと共通のAPIへの接続を確立するための手順を説明するために、その後、コードの最も基本的なを達成するためにどのように見てみましょう:


java.sql.Connectionインポート、
読み込みのjava.sql.DriverManager、
インポートのjava.sql.ResultSet;
インポートjava.sql.SQLExceptionという、
インポートjava.sql.Statementの、
パブリッククラスpracjdbc {
パブリック静的無効メイン(文字列[] args){
{試し
//登録ドライブ1。
にDriverManager.registerDriver(新新com.mysql.cj.jdbc.Driver());
。/ 2 *データベースへの接続を確立順次取得パラメータのURLで、ユーザー、パスワード、URLがローカルデータベース、ユーザーのユーザーを接続します名、パスワードデータベースのパスワード* /
接続CONN =
したDriverManager.getConnection( "JDBC:MySQLの:? // localhost /をstudentinformation serverTimezone = GMT%2B8"、 "根"、 "81604152");
3 //ステートメントオブジェクトを作成します。
文の目をconn.createStatement =();
文字列のSQL = "SELECT *からの情報";
// 4の実行SQL文
ResultSetのRS = st.executeQuery(SQL)。
// 5遍历查询数据。
しばらく(rs.next()){
int型ID = rs.getInt( "ID")。
文字列名= rs.getString( "名前");
System.out.println(ID + ":" +名)。
}
// 6释放资源。
はconn.close();
st.close();
rs.close();
}キャッチ(のSQLException E){
e.printStackTrace();
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
JDBCコードが改善されている
だけで、コードのほとんどを書いた我々はいくつかの改善を行うために、ほんの少しのもとに見て、このになりました

リソース解放
リソース解放は、実際に使用して最初の書き込みは、finallyブロックの場合ではない
リソース解放
試し{
IF {(コネティカット= nullは!)
はconn.close();
}
}キャッチ(のSQLException E){

e.printStackTrace ();
} {最後に
コネティカット= NULL;
}
。1
2
3
4
5
6
7
8
9
10
完全な書き込みが長すぎ、均一な書き込みは、この動作は、クラスを取ります


インポートのjava.sql.Connection;
インポートのjava.sql.ResultSet;
輸入ます。java.sql.SQLException;
輸入java.sql.Statementの。

パブリッククラスJDBCutils {
公共静的ボイドReleaseAll(接続CONN、のResultSet RS、ステートメントST){
CloseConn(CONN)。
(ST)に最も近いです。
クローザー(RS)。
}
パブリック静的ボイドReleaseAll(接続CONN、ステートメントST){
CloseConn(CONN)。
(ST)に最も近いです。
}
プライベート静的な無効CloseConn(接続CONN){
{しようとし
た場合{(connの= nullを!)
はconn.close();
}
}キャッチ(のSQLException E){
e.printStackTrace();
}最後に{
CONN = NULL;
}
}
プライベート静的な無効クローザー(のResultSet rsが){
{しようと
するif(!RS = NULL){
rs.close();
}
}キャッチ(のSQLException E){
e.printStackTrace();
}最後に{
RS = NULL;
}

}
プライベート静的な無効最も近い(ステートメントST){
{みてください
(ST = nullを!){場合
st.close();
}
}キャッチ(のSQLException E){
e.printStackTrace();
}最後に{
ST = NULL;
}

}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31であり、
32
33は、
34である
35
36
37
38である
39
40
41である
42である
43で
ある44
45
である46
47
48
49
50
51である
52ことで
、駆動源の底部に構築するステップを見


{静的
試し{
java.sql.DriverManager.registerDriver(新新ドライバー());
}キャッチ(のSQLException E){
のRuntimeException新新( "ドライバを登録することはできません!")スロー;
}
}
。1
2
。3
。4
。5
。6
。7
。8
ドライバ実際には、我々は、自分の運転が既に冗長で確立するために、ドライブを確立している
次のようにコードを変更します


Class.forNameの( "com.mysql.cj.jdbc.Driver");
1。
2
完全なコード次のように


インポートのjava.sql.Connection;
インポートのjava.sql.DriverManager。
インポートのjava.sql.ResultSet;
輸入java.sql.Statementの。
パブリッククラスpracjdbc {
パブリック静的無効メイン(文字列[] args){
接続CONN = NULL;
声明ST = NULL;
ResultSetのRS = NULL;
してみてください{
Class.forNameの( "com.mysql.cj.jdbc.Driver");
//DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver())。
CONN =したDriverManager.getConnection( "JDBCます。mysql:// localhost /をstudentinformation serverTimezone = GMT%2B8"、 "根"、 "81604152");
ST = conn.createStatement()。
文字列のSQL = "SELECT * FROM情報"。
RS = st.executeQuery(SQL)。
一方、(rs.next()){
int型ID = rs.getInt(」
文字列名= rs.getString( "名前");
System.out.println(ID + ":" +名)。
}
}キャッチ(例外e){
e.printStackTrace();
}最後に{
JDBCutils.ReleaseAll(CONN、RS、ST)。
}
}
}
--------------------- 

おすすめ

転載: www.cnblogs.com/ly570/p/10987478.html