■ ?に、後で値を設定できるプリペアード ステートメントの例文■ ============================================================= sql = "INSERT INTO HELLO_WORLD_TABLE (NO,LANGUAGE,MESSAGE) VALUES( ? , ? , ? )"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, 6); pstmt.setString(2, "イタリア語"); pstmt.setString(3, "Buon giorno"); int kousinKensu = pstmt.executeUpdate(); ------------------ PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?"); pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592) int kousinKensu = pstmt.executeUpdate(); ------------------ String sql = "insert into kabukatable (code, company) values (?, ?)"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, 4755); pstmt.setString(2, "楽天(株)"); int kousinKensu = pstmt.executeUpdate(); --------------------- PreparedStatement pstmt = con.prepareStatement("SELECT * FROM BookTable WHERE PRICE > ? "); pstmt.setInt( 1, 100 ); ResultSet rs = pstmt.executeQuery(); --------------------- ●あいまい検索の例 //フォームからの入力値をサーバ側で取得 String syain_no = request.getParameter("syain_no"); String sql = "select * from syainTable where syain_no like ? " ; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, "%" + syain_no + "%"); ResultSet rs = pstmt.executeQuery(); --------------------- ●ログイン処理の例 //フォームからの入力値をサーバ側で取得 String userName = request.getParameter("userName"); String password = request.getParameter("password"); //入力値で検索し、カウントが1なら、ユーザ登録あり。 String sql = "select count(*) as num from userTable where userName = ? and password = ?" ; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, userName); pstmt.setString(2, password); ResultSet rs = pstmt.executeQuery(); rs.next();//1行目に移動 int number = rs.getInt("num"); if(number == 1){ //ログイン認証OK処理 }else{ //ログイン認証失敗→エラー表示 } --------------------- //フォームからの入力値をサーバ側で取得 String isbn= request.getParameter("isbn"); String title= request.getParameter("title"); String author= request.getParameter("author"); String publisher= request.getParameter("publisher"); String insertSql = "insert into books values ( ? , ? , ? , ? )"; PreparedStatement pstmt = con.prepareStatement(insertSql); //変数をセット pstmt.setString(1, isbn); pstmt.setString(2, title); pstmt.setString(3, author); pstmt.setString(4, publisher); int kousinKensu = pstmt.executeUpdate(); -------------------- String SQL_DELETE = "DELETE FROM TABLE_TEST WHERE NAME = ?"; PreparedStatement pstmt = conn.prepareStatement( SQL_DELETE ); // NAME列が「ネーム1」の行を削除します。 // ?に値をセットする方法は、他のプリペアードステートメントと同じ。 pstmt.setString( 1, "ネーム1" ); int kousinKensu = pstmt.executeUpdate(); -------------------- ●演習用テーブルとレコード CREATE TABLE MAIL_LIST_TABLE ( NO INTEGER PRIMARY KEY AUTO_INCREMENT, SOUSINNITIJI DATETIME NOT NULL, SOUSINSYAMEI VARCHAR(50),  TITLE VARCHAR(50), MESSAGE TEXT ); INSERT INTO HELLO_WORLD_TABLE VALUES ( NULL , NOW() , '鈴木 研二', '来週のお打合せの件','いつもお世話になっております。アルファシステムの鈴木です。'); INSERT INTO HELLO_WORLD_TABLE VALUES ( NULL , NOW() , '斉藤 優子', 'こんにちは。斉藤です。','こんにちは。斉藤です。イベントの予定をお知らせします。');