初心者JDBC

JDBC

JDBCの概要

JDBCは、リレーショナルデータベースの様々な均一なアクセスを提供できるJava文を実行するためのJava APIで、彼が書かれたJavaクラスは、セットとのインタフェースで構成されています。Javaデータベース・アクセスの基準があります。

JDBC原則

最初の二つの概念をクリア

  1. JDBC:仕様は、データベースが提供するJavaに接続されています
  2. ドライブ:インターフェイスクラスが実装されないドライブは、データベースへの接続を完了することはできません、それは、通常、それぞれのデータベースベンダーが提供するドライブ実装に応じて、データベースの動作を達成することができません。
  3. 回路図

ここに画像を挿入説明

JDBCデータベース操作ステップ

  1. 登録ドライブ
Class.forName(“com.mysql.jdbc.Driver”);
  1. CONNECTED GETTING
String url="jdbc:mysql://localhost:3306/member";//子协议:子名称//主机名:port/数据库名
String username="root";//数据库的username
String password="root";//数据库密码
Connection conn = DriverManager.getConnection(url, username, password);
  1. SQL文はオブジェクト取得するために実行された
    Connectionオブジェクト声明ツールにより取得し、このアプローチは、SQLインジェクション攻撃の危険性があります。
    接続オブジェクトのPreparedStatementツール、PreparedStatementのステートメントのサブクラスで、SQL文、およびプリコンパイルに保存されている取得
    し、オブジェクトを使用して、何回もこのステートメントを実行することができる、また、SQLインジェクションを防ぐために、PreparedStatementオブジェクトを。
PreparedStatement  ps=connection.prepareStatement( "update user set id=?  where username=?”);“?”为占位符 
setXXX(int parameterIndex,String x) :可通过此方法可设置各占位符变量的值,其中paremeterIndex为第 paremeterIndex各变量的
	值。而且预编译结果能够存储在PreparedStatement对象中。当多次运行SQL语句时能够提高效率。
  1. SQL文を実行
int n = prst.executeUpdate();;//执行在该SQL语句PreparedStatement对象,它必须是一个SQL数据操纵语言(DML)语句,如INSERT , UPDATE或DELETE ; 或不返回任何内容的SQL语句,例如DDL语句
ResultSet re = prst.executeQuery();//执行此 PreparedStatement对象中的SQL查询,并返回查询 PreparedStatement的 ResultSet对象。 

  1. 処理結果

executeUpdate();シェーピングの変数意味が影響を受けたデータベース内の行数を返します。
ResultSet result = prst.executeQuery();
私たちは、データベースのテーブルを照会すると、返される結果は、通常、2次元データテーブルの結果セットです。私はそれがイテレータの同様のセットであることを理解し、多くの場合、クエリの結果を横断するためにそれを使用します。
詳細なクエリがある:ResultSetオブジェクトは、現在のデータ行にカーソルのままです。最初に、カーソルが最初の行の前に配置されています。方法の次の移動次の行にカーソルを合わせ、そしてもう行戻りが偽存在しないので、結果セットサイクルがwhileループResultSetオブジェクトで使用されるトラバースすることが可能です。

获取结果集数据有两种常用方式

result.getXXX(int columnIndex)://行の現在のデータ指定したインデックス値を取得します
result.getXXX(String columnLabel);//現在の行のデータ列名指定されたデータベーステーブルを取得

  1. 閉じるリソースの
    リソースは、使用後に解放しなければなりません。
JDBCは、いくつかのエラーが発生しました
  1. result.getString(文字列のラベル)、ラベル書き込みが標準化されていない、データベース内のテーブルの列名と一致しない、タイムズの列「ID」を実行見つかりません
  2. SQL文の誤記、SQL文の後には、書き込みコードの下で確認したいです
  3. SQL文と日付フォーマットは、インサートのタイプを含む'2018-12-23'か、20181223第二には、単一引用符で囲む必要がありますここで、
考えます
  1. 実際には、各解決するためにどのようにして、システムリソースを消費する二つのプロセスへと「近い接続」「接続を取得する」
    には、接続プーリング、接続統一メンテナンスを使用することができない、常に近い接続の確立と実行します。分析を
    接続プールの実装を参照:https://blog.csdn.net/qq_41345281/article/details/89071128

公開された24元の記事 ウォンの賞賛5 ビュー3948

おすすめ

転載: blog.csdn.net/qq_41345281/article/details/89042777