18. 5. ResultSetオブジェクトからの
結果の取得(例)
18
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id + ", " + name
+ ", " + age);
}
⼀つずつ次の⾏に移動してその⾏のデータを取り出す
27. データベースの構築とユーザ登録
27
CREATE DATABASE mutdb
DEFAULT CHARACTER SET UTF8;
MySQLにrootでログインし,
mutdbという名前でデータベースを作成する
GRANT ALL ON mutdb.*
TO 'oku'@'localhost' IDENTIFIED BY 'uko';
mutdbに対してユーザを登録する
(ユーザ名およびパスワードは任意)
省略可であるが,⽇本語を使⽤する場合は書いた⽅が良い
28. テーブルの作成
CREATE TABLE mutter (
id INT AUTO_INCREMENT,
text TEXT,
created_at TIMESTAMP,
PRIMARY KEY(id)
);
登録したユーザでログインした状態で,mutdbを選択し,
mutter(id, text, created_at)テーブルを作成する
AUTO_INCREMENT制約:
新しいデータが登録されると,⾃動で連番が挿⼊される
TIMESTAMP型:
データ登録時または更新時に⾃動的に現在時刻が挿⼊される
USE mutdb;
29. つぶやきの登録
29
INSERT INTO mutter SET text = 'DB講義なう';
INSERT INTO mutter SET text = '敵は本能寺にあり';
INSERT INTO mutter SET text = '是非に及ばず';
INSERT INTO mutter SET text = '夢幻の如くなり';
INSERT INTO mutter SET text = '御武運が開けましたな';
mutterテーブルに適当なつぶやきを登録する
※id, created_atの値を省略すると,⾃動的に値が登録される
SET NAMES cp932;
※⽇本語を含むタプルを登録する場合は,事前にこのコマン
ドを実⾏しておくこと.実⾏を忘れると,⽇本語が正しく表
⽰されないことがある.
44. SQL⽂の⽣成
44
public void submit() {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("今なにしてる?>");
String text = br.readLine();
String sql= "INSERT INTO mutter SET text = '" + text + "';";
System.out.println("SQL: " + sql);
45. SQLの実⾏
45
int rs = stmt.executeUpdate(sql);
System.out.println("つぶやきを登録しました");
47. SQL⽂の⽣成:
削除対象のつぶやきを表⽰
47
public void delete() {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("削除したいつぶやきIDを入力してください>");
int targetId = Integer.parseInt(br.readLine());
String sql= "SELECT * FROM mutter WHERE id = " + targetId + ";";
48. SQLの実⾏と結果の取得:
削除対象のつぶやきを表⽰
48
ResultSet rs = stmt.executeQuery(sql);
int count = 0;
while(rs.next()) {
count++;
int id = rs.getInt("id");
String text = rs.getString("text");
String timestamp = rs.getString("created_at");
System.out.println("該当のつぶやきは下記のとおりです");
System.out.println(id + ", " + timestamp + ", " + text);
}
49. SQL⽂の⽣成と実⾏:
つぶやきを削除
49
if (count == 0) {
System.out.println("該当のつぶやきは見つかりませんでした");
} else {
System.out.println("このつぶやきを削除しますか?(Y/N)");
BufferedReader br2 = new BufferedReader(
new znputStreamReader(System.in));
String yn = br2.readLine();
if (yn.equals("Y") || yn.equals("y")) {
String sql2 = "DELETE FROM mutter WHERE id = " + targetId + ";";
System.out.println("==== ==== ==== ==== ==== ==== ==== ====");
System.out.println("SQL: " + sql2);
System.out.println("==== ==== ==== ==== ==== ==== ==== ====");
System.out.println();
int rs2 = stmt.executeUpdate(sql2);
System.out.print("つぶやきを削除しました¥n");
}
}