Javaでデータベースに接続する方法(初心者)

  javaはどのようにデータベースに接続しますか(ここでは、mysqlを例として取り上げます)?Javaとデータベースは関連していないため、関連のない2つのものに関係を持たせたい場合は、中間メディアである中間ブリッジが必要です。次に、Javaとデータベースの間のブリッジはJDBCです。これがJDBCの簡単な紹介です。

1.JDBC

1.1基本概念

  JDBCJava DateBase Connectivityの略語であり、データベースに接続するためのJava、またはより一般的に言えば、データベースを操作するためのJava言語に変換されます。JDBCの本質は、実際には、政府(Sun)によって定義されたすべてのリレーショナルデータベース、つまりインターフェイスを操作するための一連のルールです。さまざまなデータベースベンダーがこの一連のインターフェイスを実装し、データベースドライバーjarパッケージを提供しています。この一連のインターフェイス(JDBC)プログラミングを使用できます。データベース操作を実際に実行するのは、データベースドライバーjarパッケージの実装クラスです。

1.2背景

从一开始Java技术开发人员就意识到了Java在数据库应用方面的巨大潜力,想着通过扩展Java的标准类库,人们就可以使用“纯”Java语言与任何数据库进行通讯,但是这显然是一个无法完成的任务:业界存在许多不同的数据库且每种数据库所使用的协议、底层机制也各不相同;所以针对于此,所有的数据库供应商和工具开发商都认为,如果Java能够为SQL访问提供一套“纯”JavaAPI,同时提供一个驱动器管理器来允许第三方驱动程序可以连接到特定的数据库,如此一来数据库供应商可以提供自己的驱动器程序来插入注册到驱动器管理器中;所以JDBC的核心思想就是:根据API编写的程序都可以与驱动器管理器通信,而驱动器管理器通过驱动程序与实际数据库进行通信。
总之,JDBC实现了以下目标:通过使用标准的SQL语句,甚至是专门的SQL扩展,程序员可以利用Java语言开发访问数据库的应用,同时还依旧遵守Java语言的相关约定。数据库供应商和数据库工具提供商可以提供底层的驱动程序 ,同样也可以优化各种数据库产品的驱动程序。

   リレーショナルデータベースには多くの種類があり、Javaコードの統一されたセットを使用してすべてのリレーショナルデータベースを操作できることが期待されています。Sun社は、すべてのリレーショナルデータベースを操作するためのルール(インターフェイス)を定義する一連のコードJDBCを作成しました。これらのインターフェースを使用して、開発プロセス中にさまざまなデータベースを操作できます。インターフェイスには実装クラスが必要です。Sunによって作成されたJDBCはインターフェイスのみを定義し、実装クラスは定義しないため、実装クラスはさまざまなデータベースベンダーによって作成されます。各データベースベンダーは、独自のデータベースを操作するために異なる実装クラスを作成しています。さまざまな実装クラスがさまざまなデータベースのドライバーです。

2.JDBC操作データベースの手順

2.1データベースドライバjarパッケージをインポートします

   Java操作データベースには、中間ブリッジ-JDBCインターフェースが必要であり、データベースドライバーのjarパッケージによって実装されます。したがって、最初のステップは、データベースドライバーのjarパッケージをプロジェクトにインポートすることです。
  最初のステップは、mysql-connector-java-5.1.20-bin.jarと同様に、インターネット上にmysqlデータベースドライバーjarパッケージをダウンロードすることです。新しいJAVAプロジェクトを作成し、プロジェクトの下にlibフォルダーを作成し、ドライバーjarファイルをlibフォルダーにコピーしてから
ここに画像の説明を挿入
  、JARパッケージをプロジェクトのビルドパス変数に追加します。マウスの右側-「ビルドパス->ビルドパスの構成...」ポップアップインターフェイスで、[jarの追加]をクリックし、ドライバーjarパッケージを選択して、ビルドパス変数に追加します。

2.2ドライバーの登録

  ドライバーをインポートしてから、プログラムにドライバーを登録する必要があります。これは、このドライバーに対応するデータベースでプログラムを操作できることを意味します。

ドライバーを登録します。

Class.forName("com.mysql.jdbc.Driver");

2.3データベース接続オブジェクトの取得Connection

  この接続オブジェクトは、Javaコードとデータベースの間のブリッジであり、データベースはこの接続オブジェクト(ブリッジ)を介して接続されます。

接続オブジェクトを取得します。

Connection con=DriverManager.getConnection(url:"jdbc:mysql://localhost:3306/电厂管理系统", user:"root", password:"password");

2.4SQLステートメントを定義する

  データベースに接続するということは、データベースを操作することを意味します。したがって、SQLステートメントを定義することは、実際にはデータベースで実行してSQLステートメントに配置することです(完全に正しいアナロジーではありません。SQLステートメントはデータベースの操作のコンテナーです)。
SQLステートメントを定義します。

String sql="insert into 培训计划详细信息表 values(null,?,?,?,?,?,?)";

2.5SQLステートメントを実行するためのオブジェクトステートメントの取得

  データベースで実行する操作を定義すると、誰がそれを実行しますか?-SQLステートメントを実行するステートメント。したがって、このオブジェクトを取得します。

	PreparedStatement pstmt=con.prepareStatement();

2.6 SQLを実行し、返された結果を受け取り、返された結果を処理します

  実行オブジェクトを使用して、データベースでの操作の実行を開始し、操作の結果を返します。ユーザーは返された結果を処理します

	int n=pstmt.executeUpdate(sql);

2.7リリースリソース

  一連の操作を実行した後、リソースを解放します。それは誰かがあなたの仕事を手伝ってくれるのと同じです。あなたが終わったら、他の人を手放してください。

conn.close();

3.JDBCに関連するさまざまなオブジェクトについて詳しく説明します

3.1DriverManager:ドライブ管理オブジェクト

3.1.1機能:

3.1.1.1ドライバーの登録:

  使用するデータベースjarパッケージをプログラムに指示します。実際、mysql5バージョン以降は、jarパッケージがすでに存在するため、登録届出書(Class.forName( "com.mysql.jdbc.Driver");)を記述する必要はありません。登録届出書が含まれています。

3.1.1.2データベース接続の取得:

static Connection getConnection(String url,String user,String password)

パラメータ:
1.url:接続されたデータベースのネットワークアドレスとデータベースの名前。
構文:jdbc:mysql:// ipアドレス(ドメイン名):ポート番号/データベース名
例:jdbc:mysql:// localhost:3306 /発電所管理システム
がローカルmysqlサーバーに接続されている場合、デフォルトのポートが3306の場合、urlは次のように省略できます。jdbc:mysql:///データベース名、ip、およびポートは省略できます。
2.user:ユーザー名
3.password:パスワード

3.2接続:データベース接続オブジェクト

3.2.1機能:

3.2.1SQLを実行するオブジェクトを取得します

これらの2つのメソッドで
ステートメントを取得しますcreateStatement();
PreparedStatement PreparedStatement();

3.2.1管理業務

ここに画像の説明を挿入

3.3ステートメント:SQLを実行するオブジェクト

3.3.1SQLステートメントを実行する3つの一般的な方法

ここに画像の説明を挿入

3.4ResultSet:結果セットオブジェクト、クエリ結果をカプセル化

  重要なことは、この結果セットからカプセル化されたクエリデータを抽出することです。

3.4.1next():カーソルが1行下に移動します

ここに画像の説明を挿入
最初のカーソルは属性名を指しており、1行下に移動するとデータが表示され始めます。

3.4.2 getxxx()メソッド

xxx:は、
特定の列である現在の行の特定の属性取得するためのデータ型です。
ここに画像の説明を挿入
ここに画像の説明を挿入

3.5PreparedStatement:SQLを実行するオブジェクト

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_43403759/article/details/111198131