JDBC の PreparedStatement とは何ですか?
PreparedStatementインターフェイスは、複数回実行できるプリコンパイルされた SQL ステートメントを表す Statement インターフェイスを拡張します。パラメータ化された SQL クエリを受け入れ、このクエリに 0 個以上のパラメータを渡すことができます。
最初、このステートメントはパラメーターの代わりにプレースホルダー "?" を使用します。後で、 PreparedStatement インターフェースの setXXX() メソッドを使用してパラメーターを渡し、これらを動的に実装できます。
PreparedStatement の作成
Connection インターフェイスの prepareStatement() メソッドを使用して、PreparedStatement (インターフェイス) を作成できます。このメソッドはクエリ (パラメータ化) を受け入れ、PreparedStatement オブジェクトを返します。
このメソッドを呼び出すと、Connection オブジェクトは指定されたクエリをデータベースに送信し、コンパイルして保存します。クエリが正常にコンパイルされると、オブジェクトのみが返されます。
クエリをコンパイルするために、データベースは値を必要としないため、(0 個以上の) プレースホルダー (疑問符 " ?") を代わりに使用できます。のクエリ値の。
たとえば、データベースに Employee という名前のテーブルがある場合、次のクエリを使用してテーブルを作成します。
CREATE TABLE Employee(Name VARCHAR(255), Salary INT NOT NULL, Location VARCHAR(255));
これで、以下に示すように準備されたステートメントを使用して値を挿入できるようになります。
//Creating a Prepared Statement String query="INSERT INTO Employee(Name, Salary, Location)VALUES(?, ?, ?)"; Statement pstmt = con.prepareStatement(query);
プレースホルダーの値を設定します
PreparedStatementインターフェイスには、setInt()、setFloat()、setArray()、setDate() などのいくつかのセッター メソッドが用意されています。 、setDouble() などは、プリコンパイルされたステートメントのプレースホルダーの値を設定するために使用されます。
これらのメソッドは 2 つのパラメーターを受け入れます。1 つはプレースホルダーの位置インデックスを表す整数値で、もう 1 つは挿入する必要がある値を表す int、String、float などです。
次の例の setter メソッドを使用して、上で作成したステートメントのプレースホルダーの値を設定できます。
pstmt.setString(1, "Amit"); pstmt.setInt(2, 3000); pstmt.setString(3, "Hyderabad"); pstmt.setString(1, "Kalyan"); pstmt.setInt(2, 4000); pstmt.setString(3, "Vishakhapatnam"); pstmt.setString(1, "Renuka"); pstmt.setInt(2, 5000); pstmt.setString(3, "Delhi"); pstmt.setString(1, "Archana"); pstmt.setInt(2, 15000); pstmt.setString(3, "Mumbai");
Execute Prepared Statement
PreparedStatement オブジェクトの作成後を実行するには、PreparedStatement インターフェイスの execute() メソッドの 1 つ (execute ()、executeUpdate()、executeQuery()) を使用します。
execute(): strong> このメソッドは、現在のプリペアド ステートメント オブジェクトで通常の静的 SQL ステートメントを実行し、ブール値を返します。
executeQuery(): このメソッドは
executeUpdate() を実行します: このメソッドは現在の Prepared で挿入更新や削除などの SQL DML ステートメントを実行します。影響を受ける行数を表す整数値を返します。
上で作成したプリペアド ステートメントは次のように実行できます。
例
この例では、プリペアド ステートメントを使用してみます。ステートメントは値を挿入します。 「従業員」という名前のテーブルに追加します。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class PreparedStatementExample { public static void main(String args[]) throws SQLException { //Registering the Driver DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Getting the connection String mysqlUrl = "jdbc:mysql://localhost/testdb"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Creating a Prepared Statement String query = "INSERT INTO Employees(Name, Salary, Location) VALUES (?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(query); pstmt.setString(1, "Amit"); pstmt.setInt(2, 3000); pstmt.setString(3, "Hyderabad"); pstmt.setString(1, "Kalyan"); pstmt.setInt(2, 4000); pstmt.setString(3, "Vishakhapatnam"); pstmt.setString(1, "Renuka"); pstmt.setInt(2, 5000); pstmt.setString(3, "Delhi"); pstmt.setString(1, "Archana"); pstmt.setInt(2, 15000); pstmt.setString(3, "Mumbai"); int num = pstmt.executeUpdate(); System.out.println("Rows inserted ...."); } }
出力
Connection established...... Number of rows inserted: 1
データベースを検証すると、テーブルに挿入された値を確認できます:
+---------+--------+----------------+ | Name | Salary | Location | +---------+--------+----------------+ | Amit | 30000 | Hyderabad | | Kalyan | 40000 | Vishakhapatnam | | Renuka | 50000 | Delhi | | Archana | 15000 | Mumbai | +---------+--------+----------------+ 5 rows in set (0.00 sec)
以上がJDBC の PreparedStatement とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

完全なテーブルスキャンは、MySQLでインデックスを使用するよりも速い場合があります。特定のケースには以下が含まれます。1)データボリュームは小さい。 2)クエリが大量のデータを返すとき。 3)インデックス列が高度に選択的でない場合。 4)複雑なクエリの場合。クエリプランを分析し、インデックスを最適化し、オーバーインデックスを回避し、テーブルを定期的にメンテナンスすることにより、実際のアプリケーションで最良の選択をすることができます。

はい、MySQLはWindows 7にインストールできます。MicrosoftはWindows 7のサポートを停止しましたが、MySQLは引き続き互換性があります。ただし、インストールプロセス中に次のポイントに注意する必要があります。WindowsのMySQLインストーラーをダウンロードしてください。 MySQL(コミュニティまたはエンタープライズ)の適切なバージョンを選択します。インストールプロセス中に適切なインストールディレクトリと文字セットを選択します。ルートユーザーパスワードを設定し、適切に保ちます。テストのためにデータベースに接続します。 Windows 7の互換性とセキュリティの問題に注意してください。サポートされているオペレーティングシステムにアップグレードすることをお勧めします。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

クラスター化されたインデックスと非クラスター化されたインデックスの違いは次のとおりです。1。クラスター化されたインデックスは、インデックス構造にデータを保存します。これは、プライマリキーと範囲でクエリするのに適しています。 2.非クラスター化されたインデックスストアは、インデックスキー値とデータの行へのポインターであり、非プリマリーキー列クエリに適しています。

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。
