PreparedStatementの与ステートメント

ステートメントデータベース操作:
CRUD:のexecuteUpdate()を使用して、
クエリ:使用のexecuteQuery()。

ResultSetの:XXX SELECT * FROM保存結果セット
次の():下向きのカーソルは、次のデータかどうかを判断し、真/偽の
前():真/偽に
のgetXXX(フィールド名|位置):特定のフィールド値を取得します。

パッケージJDBC、

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


パブリック クラスJDBCDemo {
     民間 最終文字列のURL = "はjdbc:mysqlの:// localhostを:3306 / javaのuseSslオプション= falseの?" 民間 最終文字列USERNAMEは「root」を= 民間 最終文字列PASSWORD = "123456" ;
    公共 ボイド更新(){ // 实现增删改 
        接続の接続= NULL; 
        ステートメントSTMT = NULL ;
         試み{
             // Aが導入駆動。 
            ザにClass.forName( "はcom.mysql.jdbc.Driverを" );
             // 。Bは、データベースへの接続を確立する 
            接続=   たDriverManager.getConnection(URL、ユーザ名、パスワード)。
             // 。C伝送SQL、追加および削除が行われ、チェック 
            のstmt = Connection.createStatement();
             // 文字列のSQL = "INSERT INTO帳(名前,.価格)の値( '小説'、50)";
             // 文字列= SQL "更新ブックセット名=「の科学」上記のID = 17「; 
            文字列のSQL =」ブックWHERE上記のID = 19 "から削除//D执行SQL语句。
            stmt.executeUpdate(SQL)。
        } キャッチ(例外e){
             // TODO自動生成されたcatchブロック
            e.printStackTrace(); 
        } 最後に{
             しようと{
             場合(stmtは=!ヌルをstmt.closeを());
            もし(!接続= nullの)connection.close(); 
        } キャッチ(のSQLException E){ 
            e.printStackTrace(); 
            } 
        } 
    } 
    公共 ボイドクエリ(){ // 实现查询
        接続=接続NULL ; 
        ステートメントSTMT = NULL ; 
        ResultSetのRS = NULL ;
         試み{
             // Aが導入駆動。 
            ザにClass.forName( "はcom.mysql.jdbc.Driverを" );
             // 。Bは、データベースへの接続を確立 
            接続=   のDriverManagerを。 getConnection(USERNAMEのURL、パスワード);
             // チェックし、SQL、追加および削除を実行するために送っcは。 
            stmtは= Connection.createStatement(); 
            文字列のSQL = "SELECTからブック*" ;
             //SQL実行[CRUDのexecuteUpdate()、クエリのexecuteQuery()] 
            RS = stmt.executeQuery(SQL);
             // プロセスが生じる
            一方(rs.nextを()){ // 次の行のデータがあるか否かを判定する 
                文字列NAが= rs.getString ( "名前" ); 
                文字列PRI = rs.getString( "価格" 
                のSystem.out.printlnし(Na + " - " + PRI); 
            } 
        } キャッチ(例外e){
             // TODO自動ブロックキャッチ生成
            e.printStackTrace(); 
        } 最後に{
             試み{
                 IF(!RS = ヌル)rs.close();
                もし(!のstmt = nullの)stmt.close();
                もし(!接続= nullの)connection.close(); 
        } キャッチ(のSQLException E){ 
            e.printStackTrace(); 
            } 
        } 
    } 
    パブリック 静的 ボイドメイン(文字列[]引数){ 
        JDBCDemo J = 新しいJDBCDemo()。
        // j.update(); 
        j.query(); 
    } 
}

データベースのPreparedStatementの操作:

パブリックインターフェースのPreparedStatementは、Statementを拡張
よって
のexecuteUpdate():CRUD
クエリ:のexecuteQuery();
-さらに、
割り当てのsetXXXを();

パッケージJDBC、

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

パブリック クラスJDBCPreparedStatement {
     民間 最終文字列のURL = "はjdbc:mysqlの:// localhostを:3306 / javaのuseSslオプション= falseの?" 民間 最終文字列USERNAMEは「root」を= 民間 最終文字列PASSWORD = "123456" ;
    公共 ボイド更新(){ // 实现增删改 
        接続の接続=NULL ; 
        のPreparedStatementてpstmt = NULL ;
         試み{
             // A駆動導入。 
            Class.forNameの( "はcom.mysql.jdbc.Driverを" );
             // 。Bは、データベースへの接続を確立する 
            接続=   たDriverManager.getConnection(URL、ユーザ名、パスワード) ;
             // 。チェック、実行するSQL、追加、削除を送信cは 
            文字列のSQL = "INSERT INTOブック値(,, ???)" ; 
            てpstmt = のConnection.prepareStatement(SQL); 
            
            pstmt.setString( 1、 "隣の" ); 
            pstmt.setString( 2、 "56は")。
            pstmt.setInt(3、21 )。
            // 文字列のSQL = "ブックへの挿入(名、価格)の値( '小说'、50)"。
            // 文字列のSQL = "更新ブックセット名= '科学'どこのid = 17"; 
            
            pstmt.executeUpdate(); 
        } キャッチ(例外e){
             // TODO自動生成されたcatchブロック
            e.printStackTrace(); 
        } 最後に{
             しようと{
             場合(てpstmt =!ヌルをpstmt.closeを());
            もし(!接続= nullの)connection.close(); 
        } キャッチ(のSQLException e)の{ 
            e.printStackTrace(); 
            } 
        } 
    } 
    公共 ボイドクエリ(){ 
        接続の接続 = NULL ; 
        のPreparedStatementてpstmt = NULL ; 
        ResultSetのRS = NULL ;
         試み{
             // A駆動導入。 
            ザにClass.forName(「COM。 mysql.jdbc.Driver " );
             // Bは、データベースへの接続の確立。 
            接続=   たDriverManager.getConnection(URL、ユーザ名、パスワード);
             // C伝送SQL、付加および欠失を行う、検索。
            SQL = "上記ID = SELECT *帳から?"の文字列; 
            てpstmt = のConnection.prepareStatement(SQL); 
            
            pstmt.setInt( 1、21 );
             // 実行SQL [CRUDのexecuteUpdate()、クエリのexecuteQuery()] 
            RS = pstmt.executeQuery();
             // プロセスが生じる
            一方(rs.nextは()){ //は、次の行のデータが存在するか否かを判定する 
                文字列NA = rs.getString( "名前"が); 
                文字列PRI = rs.getString( "価格" ) ; 
                のSystem.out.printlnし(Na + " - " + PRI); 
            } 
        } キャッチ(例外e){
             // TODO自動生成されたcatchブロック
            e.printStackTrace(); 
        } 最後に{
             しようと{
                 場合(RS =!ヌル)rs.close();
                もし(!てpstmt = ヌル)pstmt.close();
                もし(!接続= nullの)connection.close(); 
        } キャッチ(のSQLException E){ 
            e.printStackTrace(); 
            } 
        } 
    } 
    公共の 静的な 無効メイン(文字列[]引数){
        JDBCPreparedStatement J = 新しいJDBCPreparedStatement();
        / * j.update()。* / 
        j.query(); 
    } 
}

PreparedStatementとの使用の違いの声明:

:ステートメントの
1、定義されたSQL

文字列のSQL = "ブックへの挿入(名、価格)の値( '小说'、50)"。
2、stmt.executeUpdate(SQL)。

PreparedStatementの:

1、SQL定義

文字列のSQL = "ブックへの挿入(名、価格)の値(?、?、?)";
pstmt =のConnection.prepareStatement(SQL); //预编译SQL
pstmt.setString(1、 "隔壁" )。

pstmt.setString(2、 "56" )。
pstmt.setInt(3、21 )。

2、pstmt.executeUpdate()。

 

おすすめ

転載: www.cnblogs.com/hsy-go/p/12511734.html