1.事前知識
事前知識として、上記リンクの内容が必要です。
2.基本的な書き方
更新系SQL
public class クラス名 {
public static void main(String[] args) {
try {
/* コネクション */
Connection con = DriverManager.getConnection(データベースのURL, データベースのユーザ名, データベースのパスワード);
/* ステートメント */
PreparedStatement pstmt = con.prepareStatement(SQL文);
// SQL文に値の代入
pstmt.setString(何番目の?か, 値);
/* SQL文の実行 */
pstmt.executeUpdate();
} catch (SQLException e) {
// SQLのエラー発生時の処理
}
}
}
参照系SQL
public class クラス名 {
public static void main(String[] args) {
try {
/* コネクション */
Connection con = DriverManager.getConnection(データベースのURL, データベースのユーザ名, データベースのパスワード);
/* ステートメント */
PreparedStatement pstmt = con.prepareStatement(SQL文);
// SQL文に値の代入
pstmt.setString(何番目の?か, 値);
// SQL文の実行
ResultSet res = pstmt.executeQuery();
// ResultSetの操作
while (res.next()) {
// 実行結果の表示
}
} catch (SQLException e) {
// SQLのエラー発生時の処理
}
}
}
- 基本的なSQLステートメントの実行は上記のように記述する。
3.事前準備
※【実践‼】Javaデータベース連携(Connector/J 8.0.20) で データベースの設定
を行っていることを前提にしています。
- Eclipseを起動後、
[新規(N)]→[Javaプロジェクト]
を選択する。
- プロジェクト名に
TestDB
と入力し、実行環境JREの使用をJavaSE-1.8
を選択して、完了
ボタンをクリックする。
-
[新規(N)]→[クラス]
を選択する。
- パッケージに
db
, 名前にTest1
と入力し、public static void main(String[] args)
にチェックを付け、完了
ボタンをクリックする。
- プロジェクトを
右クリック
して[ビルド・パス(B)]→[外部アーカイブの追加(V)]
を選択する。
-
C:\Program Files\MySQL\mysql-connector-java-8.0.20
のmysql-connector-java-8.0.20.jar
を選択する。
4.記述例
- 参照(SELECT文)
Test1.java
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test1 {
public static void main(String[] args) {
/* データベースURL */
String url = "jdbc:mysql://localhost/test?characterEncoding=UTF-8&useSSL=false";
/* データベースのユーザとパスワード */
String user = "test";
String password = "test";
/* SQL文 */
String sql = "SELECT * FROM test1";
try {
/* コネクション */
Connection con = DriverManager.getConnection(url, user, password);
/* ステートメント */
PreparedStatement pstmt = con.prepareStatement(sql);
// SQL文の実行
ResultSet res = pstmt.executeQuery();
// ResultSetの操作
while (res.next()) {
// 実行結果の表示
System.out.print("ID:" + res.getInt("id") + " ");
System.out.print("名前:" + res.getString("name") + "\n");
}
} catch (SQLException e) {
// SQLのエラー発生時の処理
e.printStackTrace();
}
}
}
- 登録(INSERT文)
Test1.java
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test1 {
public static void main(String[] args) {
/* データベースURL */
String url = "jdbc:mysql://localhost/test?characterEncoding=UTF-8&useSSL=false";
/* データベースのユーザとパスワード */
String user = "test";
String password = "test";
/* SQL文 */
String sql = "INSERT INTO test1 (name) VALUE (?)";
try {
/* コネクション */
Connection con = DriverManager.getConnection(url, user, password);
/* ステートメント */
PreparedStatement pstmt = con.prepareStatement(sql);
// プレースホルダに値の設定
pstmt.setString(1,"test5");
// SQL文の実行(更新)
pstmt.executeUpdate();
// SQL文の更新
sql = "SELECT * FROM test1";
/* ステートメント */
pstmt = con.prepareStatement(sql);
// SQL文の実行(参照)
ResultSet res = pstmt.executeQuery();
// ResultSetの操作
while (res.next()) {
// 実行結果の表示
System.out.print("ID:" + res.getInt("id") + " ");
System.out.print("名前:" + res.getString("name") + "\n");
}
} catch (SQLException e) {
// SQLのエラー発生時の処理
e.printStackTrace();
}
}
}
- 変更(UPDATE文)
Test1.java
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test1 {
public static void main(String[] args) {
/* データベースURL */
String url = "jdbc:mysql://localhost/test?characterEncoding=UTF-8&useSSL=false";
/* データベースのユーザとパスワード */
String user = "test";
String password = "test";
/* SQL文 */
String sql = "UPDATE test1 SET name = ? WHERE id = ?";
try {
/* コネクション */
Connection con = DriverManager.getConnection(url, user, password);
/* ステートメント */
PreparedStatement pstmt = con.prepareStatement(sql);
// プレースホルダに値の設定
pstmt.setString(1,"testX");
pstmt.setInt(2,2);
// SQL文の実行(更新)
pstmt.executeUpdate();
// SQL文の更新
sql = "SELECT * FROM test1";
/* ステートメント */
pstmt = con.prepareStatement(sql);
// SQL文の実行(参照)
ResultSet res = pstmt.executeQuery();
// ResultSetの操作
while (res.next()) {
// 実行結果の表示
System.out.print("ID:" + res.getInt("id") + " ");
System.out.print("名前:" + res.getString("name") + "\n");
}
} catch (SQLException e) {
// SQLのエラー発生時の処理
e.printStackTrace();
}
}
}
- 削除(DELETE文)
Test1.java
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test1 {
public static void main(String[] args) {
/* データベースURL */
String url = "jdbc:mysql://localhost/test?characterEncoding=UTF-8&useSSL=false";
/* データベースのユーザとパスワード */
String user = "test";
String password = "test";
/* SQL文 */
String sql = "DELETE FROM test1 WHERE id = ?";
try {
/* コネクション */
Connection con = DriverManager.getConnection(url, user, password);
/* ステートメント */
PreparedStatement pstmt = con.prepareStatement(sql);
// プレースホルダに値の設定
pstmt.setInt(1,3);
// SQL文の実行(削除)
pstmt.executeUpdate();
// SQL文の更新
sql = "SELECT * FROM test1";
/* ステートメント */
pstmt = con.prepareStatement(sql);
// SQL文の実行(参照)
ResultSet res = pstmt.executeQuery();
// ResultSetの操作
while (res.next()) {
// 実行結果の表示
System.out.print("ID:" + res.getInt("id") + " ");
System.out.print("名前:" + res.getString("name") + "\n");
}
} catch (SQLException e) {
// SQLのエラー発生時の処理
e.printStackTrace();
}
}
}
上記の文をコピーして、文字コードは S-JIS
を指定し、ファイル名を Test1.java
で保存し、実行するとこうなります。↓↓
5.GitHub
GitHubにソースコードを公開しています。
6.関連
- 【覚えておくと便利!!!】Eclipseにおけるコンストラクタとgetter/setterの簡易作成
- 【覚えておくと便利!!!】Eclipseにおける継承クラスの簡易作成
- 【覚えておくと便利!!!】MySQLの文字コード変更
- 【初心者でもできる‼】Javadocの書き方
- 【わかりやすく解説‼】Javaのオーバーロードの使い方
- 【わかりやすく解説‼】Javaのカプセル化の使い方
- 【わかりやすく解説‼】Javaの継承の使い方【オーバーライドの解説あり】
- 【わかりやすく解説‼】Javaにおける参照型の型変換
- 【わかりやすく解説‼】Javaのポリモーフィズムの使い方
- 【わかりやすく解説‼】ArrayListの使い方【Java】
- 【実践‼】JFrameの導入(画面作成まで解説)