![見出し画像](https://assets.st-note.com/production/uploads/images/15834412/rectangle_large_type_2_32744ac31a5aa5ecd3cf6c3354050383.jpeg?width=1200)
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をご覧ください。
-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥
公共職業訓練を受講する為に必要な事を下の記事で書いてます。
良かったらご覧下さい↓↓↓
最後まで読んで頂きありがとうございました。
少しでも勉強になった、役に立ったと思ったら「 サポート」 で貴方のお気持ちを頂けると嬉しいです。
今後の励みにもなります。是非よろしくお願いします。
この記事が気に入ったらサポートをしてみませんか?