オリジナルビデオアドレス:https://www.bilibili.com/video/av67955358?p=17
声明では、データテーブルを使用して操作を欠点:
1.現在の戦いの文字列操作は、比較的複雑
2. SQLインジェクションの問題
PreparedStatementのサブインタフェースステートメントであります
クラスの中にカプセル化された第一の実施形態取得したリソースを閉じます。
パッケージの1日目。 輸入java.io.InputStreamを。 インポートのjava.sql.Connection; インポートに、java.sql.driver; インポートのjava.sql.DriverManager。 輸入ます。java.sql.SQLException; 輸入java.util.Properties; 輸入org.junit.jupiter.api.Test; パブリック クラスJUnittext { @テスト 公共 のボイド connectiontest1()がスローするSQLExceptionを{ ドライバドライバ = 新しいはcom.mysql.jdbc.Driver()。 文字列のURL = "はjdbc:mysqlの:// localhostを:?3306 /テストserverTimezone = GMT%2B8" 。 プロパティ情報 = 新しいプロパティ(); info.setProperty( "ユーザー"、 "ルート" ); info.setProperty( "パスワード"、 "sqw991017" ); 接続でCONN = driver.connect(URL、情報)。 System.out.println(CONN)。 } @テスト 公共 のボイド connectiontest2は()スロー例外を{ クラスclazz = Class.forNameの( "はcom.mysql.jdbc.Driver" ); ドライバドライバ = (ドライバ)clazz.getDeclaredConstructor()のnewInstance()。 文字列のURL = "はjdbc:mysqlの:// localhostを:?3306 /テストserverTimezone = GMT%2B8" 。 プロパティ情報 = 新しいプロパティ(); info.setProperty( "ユーザー"、 "ルート" ); info.setProperty( "パスワード"、 "sqw991017" ); 接続でCONN = driver.connect(URL、情報)。 System.out.println(CONN)。 } @テスト 公共 のボイド connectiontest3は()スロー例外を{ / * *クラスclazz = Class.forNameの( "はcom.mysql.jdbc.Driver"); ドライバドライバ= *(ドライバー)clazz.getDeclaredConstructor()のnewInstance();. //登録ドライブ *にDriverManager.registerDriver(ドライバ) * / 文字列のURL = "はjdbc:mysqlの:// localhostを:?3306 /テストserverTimezone = GMT%2B8" 。 文字列のユーザー =「ルート」。 文字列のパスワード =「sqw991017」。 接続でCONN = したDriverManager.getConnection(URL、ユーザー、パスワード); System.out.println(CONN)。 } @テスト 公共 のボイド connectiontest4は()スロー例外を{ // 4基本の設定ファイル情報の読み取り のInputStream IS = JUnittext。クラス .getClassLoader()getResourceAsStreamを( "jdbc_properties。" ); プロパティのプロ = 新しいプロパティ(); pros.load(です)。 文字列ユーザ = pros.getProperty(「ユーザ」)。 文字列のパスワード = pros.getProperty( "パスワード" ); 文字列のURL = pros.getProperty( "URL" ); ストリングdriverClass = pros.getProperty( "driverClass" )。 // 2.負荷駆動 にClass.forName(driverClass)。 // 3获取链接 接続CONN = したDriverManager.getConnection(URL、ユーザー、パスワード); System.out.println(CONN)。 } }
一般的なCRUD操作:
// 1.取得リンク
// 2.プリコンパイルされたSQL文の
3 //塗りつぶしプレースホルダ
// 4.実行
// 5.閉じるリソース
@Test 公共 ボイド testcommonupdatetest(){ // オブジェクトTEST1 =新しいオブジェクト[] {3}。 文字列のSQL =「お客さまから削除どこのid =?」; 更新(SQL、 3 )。 } // 一般的なCRUD操作 の公共 のボイドの更新(SQL文字列、オブジェクトの引数...){ // 1.取得リンク 接続コネティカット= nullを。 PreparedStatementのpsの = nullを。 してみてください{ CONN = JDBCutils.getConnection()。 // 2. SQLステートメントをプリコンパイル PS = conn.prepareStatement(SQL); // 3.塗りプレースホルダ のための(INT I = 0; I <args.length; I ++ ){ ps.setObject(I +1 、引数[I])。 } // 4.実行 )(ps.executeを。 } キャッチ(例外e){ e.printStackTrace(); } 最後に{ // 5.閉鎖リソース JDBCutils.closeResource(CONN、PS)。 } }