見出し画像

Java訓練#43(サーブレットからDB操作)

今日の授業

今日の授業はサーブレットを使って、データベースの内容を検索、追加、更新、削除などを行う方法を学びました。

データベースの内容を検索する方法

よく Googleやヤフーなどでみる、検索キーワードを入力して「検索ボタン」を押したらキーワードの物が検索できるというあのシステムを作ります。

その為には入力されたキーワードをSQL文に埋め込んで使う必要があります。それにはプレースホルダという機能を使います。
プレースホルダは「 」の記号を使います。
そして、JSPやHTML から送られてきたParameterを「?」に代入します。コードは次のようになります。

//ブラウザからの値を受け取り変数に代入
String name=request.getParameter(“name”);

//データベースにSQL文を送る
PreparedStatement st=con.prepareStatement(
  “select * from データベース名 where 列名 like ?”);

//SQL文の「?」に変数「name」を入れる為のコード
st.setString(1,”%”+name+”%”);

//SQL文の結果を変数「rs」に代入
ResultSet rs=st.executeQuery();

サーブレットからデータベースに値を登録する方法

サーブレットからデータベースに値を登録するにはSQL文のインサート文を使いexecuteUpdate()メソッドで結果を受け取ります

executeUpdate()メソッドはデータを変更する為のSQL文(insert, update, delete)などで使います。

executeUpdate()メソッドは戻り値として変更された行の数を返します。戻り値に何もなかった場合は0が返ってきます。なのでif文を使って変更した時の処理を記述できます。
値を登録する為のコードは次のようになります。

String name=request.getParameter(“name”);

int age=Integer.parseInt(request.getParameter(“age”));

PreparedStatement st=con.prepareStatement(
  “insert into データベース名 values(null,?,?)”);

st.setString(1,name);//1つ目の「?」にセット
st.setInt(2,age);  //2つ目の「?」にセット

//0か1が返ってきて変数「line」に代入
int line=st.executeUpdate();

if(line>0){
  out.println(“登録に成功しました”);
} else {
  out.println(“登録に失敗しました”);
}

st.setString(1,name);st.setInt(2,age);の数字の意味は(null,?,?)の左からの?の順番を示しています。
if文では、もし登録に成功したらlineには登録できた行数が入ります。なので一個登録できたらlineには 1  が入ります。するとこのif文はtureになり「登録に成功しました」の処理がされます。

SQL文の書き方は#41をご覧ください。

-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥

公共職業訓練を受講する為に必要な事を下の記事で書いてます。
良かったらご覧下さい↓↓↓


最後まで読んで頂きありがとうございました。

少しでも勉強になった、役に立ったと思ったら「 サポート」 で貴方のお気持ちを頂けると嬉しいです。
今後の励みにもなります。是非よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?