質問編集履歴

2

テーブル作成済みの旨記載

2020/03/28 03:56

投稿

nagahi
nagahi

スコア8

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  シーケンスを使用して登録する方法がわからず、ご教授いただきたいです。
4
4
 
5
-
5
+ ※シーケンスにより自動採番されたテーブルは作成済みです
6
6
 
7
7
 
8
8
 

1

シーケンス不使用のコード掲載しました

2020/03/28 03:56

投稿

nagahi
nagahi

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,117 @@
1
1
  サーブレットからPostgreSQLにJDBCを使用してデータを登録したいのですが。
2
2
 
3
3
  シーケンスを使用して登録する方法がわからず、ご教授いただきたいです。
4
+
5
+
6
+
7
+
8
+
9
+ ```java
10
+
11
+
12
+
13
+
14
+
15
+ import java.sql.Connection;
16
+
17
+ import java.sql.DriverManager;
18
+
19
+ import java.sql.PreparedStatement;
20
+
21
+ import java.sql.ResultSet;
22
+
23
+ import java.sql.SQLException;
24
+
25
+ import java.util.ArrayList;
26
+
27
+ import java.util.List;
28
+
29
+
30
+
31
+ import model.Question;
32
+
33
+
34
+
35
+
36
+
37
+ public class QestionDAO {
38
+
39
+ // データベースに使用する情報
40
+
41
+ private final String jdbc_url ="jdbc:postgresql://localhost:5432/QandA";
42
+
43
+ private final String user = "postgres";
44
+
45
+ private final String pass = "abcd";
46
+
47
+
48
+
49
+ static{
50
+
51
+ try{Class.forName("org.postgresql.Driver");
52
+
53
+ } catch(ClassNotFoundException e) {
54
+
55
+ e.printStackTrace();
56
+
57
+ }
58
+
59
+ }
60
+
61
+
62
+
63
+ public boolean create(Question question) {
64
+
65
+ // データベース接続
66
+
67
+ try(Connection conn = DriverManager.getConnection(jdbc_url, user, pass)) {
68
+
69
+ // INSERT文の準備
70
+
71
+ String sql = "INSERT INTO question(hanle_name, title, contents, urgency, edit_delete_key, regist_timestamp, update_timestamp) VALUES(?, ?, ?, ?, ?, ?, ?)";
72
+
73
+
74
+
75
+ PreparedStatement pStmt = conn.prepareStatement(sql);
76
+
77
+
78
+
79
+ //INSERT文の「?」に使用する値を設定しSQLを完成
80
+
81
+ pStmt.setString(1, question.getHandle_name());
82
+
83
+ pStmt.setString(2, question.getTitle());
84
+
85
+ pStmt.setString(3,question.getContents());
86
+
87
+ pStmt.setInt(4, question.getUrgency());
88
+
89
+ pStmt.setString(5, question.getEdit_delete_key());
90
+
91
+ pStmt.setString(6, question.getRegist_timestamp());
92
+
93
+ pStmt.setString(7, question.getUpdate_timestamp());
94
+
95
+
96
+
97
+ //INSERT文を実行
98
+
99
+ int result = pStmt.executeUpdate();
100
+
101
+ if(result != 1) {
102
+
103
+ return false;
104
+
105
+ }
106
+
107
+ } catch (SQLException e){
108
+
109
+ e.printStackTrace();
110
+
111
+ }
112
+
113
+ return true;
114
+
115
+ }
116
+
117
+ ```