サーブレットからPostgreSQLにJDBCを使用してデータを登録したいのですが。
シーケンスを使用して登録する方法がわからず、ご教授いただきたいです。
※シーケンスにより自動採番されたテーブルは作成済みです
java
1 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8import java.util.ArrayList; 9import java.util.List; 10 11import model.Question; 12 13 14public class QestionDAO { 15// データベースに使用する情報 16 private final String jdbc_url ="jdbc:postgresql://localhost:5432/QandA"; 17 private final String user = "postgres"; 18 private final String pass = "abcd"; 19 20static{ 21 try{Class.forName("org.postgresql.Driver"); 22} catch(ClassNotFoundException e) { 23 e.printStackTrace(); 24 } 25} 26 27public boolean create(Question question) { 28// データベース接続 29try(Connection conn = DriverManager.getConnection(jdbc_url, user, pass)) { 30// INSERT文の準備 31String sql = "INSERT INTO question(hanle_name, title, contents, urgency, edit_delete_key, regist_timestamp, update_timestamp) VALUES(?, ?, ?, ?, ?, ?, ?)"; 32 33PreparedStatement pStmt = conn.prepareStatement(sql); 34 35//INSERT文の「?」に使用する値を設定しSQLを完成 36pStmt.setString(1, question.getHandle_name()); 37pStmt.setString(2, question.getTitle()); 38pStmt.setString(3,question.getContents()); 39pStmt.setInt(4, question.getUrgency()); 40pStmt.setString(5, question.getEdit_delete_key()); 41pStmt.setString(6, question.getRegist_timestamp()); 42pStmt.setString(7, question.getUpdate_timestamp()); 43 44//INSERT文を実行 45int result = pStmt.executeUpdate(); 46if(result != 1) { 47 return false; 48 } 49} catch (SQLException e){ 50 e.printStackTrace(); 51} 52return true; 53}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/29 04:20
2020/03/29 05:41
2020/03/29 05:55
2020/03/29 06:02
2020/04/19 02:19
2020/04/19 02:41
2020/04/21 11:21
2020/04/21 11:23 編集