teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

コード追加しました。

2018/05/21 08:46

投稿

Tatsuo_Iriyama
Tatsuo_Iriyama

スコア50

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,8 @@
6
6
 
7
7
  [問題]
8
8
  タイトルにもあるように、入力した宛先情報が既に登録されている場合、その登録を無効化、要するに登録出来ないようにしたいのですが、うまくいかなくて詰まっています。
9
- 現在のコードです。
9
+
10
+
10
11
  ```Java
11
12
  public List<String> doubleCheck(AddressDTO addressDTO) throws SQLException {
12
13
 
@@ -46,6 +47,149 @@
46
47
  }
47
48
  ```
48
49
 
50
+ AddressDTOのコード
51
+ ```Java
52
+ public class AddressDTO {
53
+
54
+ private int addressId;
55
+ private String userId;
56
+ private String familyName;
57
+ private String firstName;
58
+ private String familyNameKana;
59
+ private String firstNameKana;
60
+ private String postalCode;//郵便番号
61
+ private String addr11;//住所
62
+ private String telNumber;
63
+ private String email;
64
+
65
+ public int getAddressId() {
66
+ return addressId;
67
+ }
68
+
69
+ public void setAddressId(int addressId) {
70
+ this.addressId = addressId;
71
+ }
72
+
73
+ public String getUserId() {
74
+ return userId;
75
+ }
76
+
77
+ public void setUserId(String userId) {
78
+ this.userId = userId;
79
+ }
80
+
81
+ public String getFamilyName() {
82
+ return familyName;
83
+ }
84
+
85
+ public void setFamilyName(String familyName) {
86
+ this.familyName = familyName;
87
+ }
88
+
89
+ public String getFirstName() {
90
+ return firstName;
91
+ }
92
+
93
+ public void setFirstName(String firstName) {
94
+ this.firstName = firstName;
95
+ }
96
+
97
+ public String getFamilyNameKana() {
98
+ return familyNameKana;
99
+ }
100
+
101
+ public void setFamilyNameKana(String familyNameKana) {
102
+ this.familyNameKana = familyNameKana;
103
+ }
104
+
105
+ public String getFirstNameKana() {
106
+ return firstNameKana;
107
+ }
108
+
109
+ public void setFirstNameKana(String firstNameKana) {
110
+ this.firstNameKana = firstNameKana;
111
+ }
112
+
113
+ public String getPostalCode() {
114
+ return postalCode;
115
+ }
116
+
117
+ public void setPostalCode(String postalCode) {
118
+ this.postalCode = postalCode;
119
+ }
120
+
121
+ public String getAddr11() {
122
+ return addr11;
123
+ }
124
+
125
+ public void setAddr11(String addr11) {
126
+ this.addr11 = addr11;
127
+ }
128
+
129
+ public String getTelNumber() {
130
+ return telNumber;
131
+ }
132
+
133
+ public void setTelNumber(String telNumber) {
134
+ this.telNumber = telNumber;
135
+ }
136
+
137
+ public String getEmail() {
138
+ return email;
139
+ }
140
+
141
+ public void setEmail(String email) {
142
+ this.email = email;
143
+ }
144
+
145
+ }
146
+ ```
147
+
148
+ 実際の登録処理コード
149
+ ```Java
150
+ public class AddressRegiCompleteAction extends ActionSupport implements SessionAware{
151
+
152
+ public Map<String,Object> session;
153
+
154
+ public String execute() throws SQLException{
155
+
156
+ String result = ERROR;
157
+
158
+ AddressDTO addressDTO = new AddressDTO();
159
+
160
+ List<String> errorMsg = new ArrayList<String>();
161
+
162
+ addressDTO = (AddressDTO)session.get("AddressDTO");
163
+
164
+ AddressRegiCompleteDAO addressRegiCompleteDAO = new AddressRegiCompleteDAO();
165
+
166
+ //// 全く同じ内容のものが既にDBに格納されていないか判定。
167
+ errorMsg = addressRegiCompleteDAO.doubleCheck(addressDTO);
168
+ if(!errorMsg.isEmpty()) {
169
+ return result;
170
+ }
171
+
172
+ int count = addressRegiCompleteDAO.registerAddress(addressDTO);
173
+ // countで登録されたかの判定。
174
+ if(count > 0) {
175
+ session.remove("AddressDTO");
176
+ result = SUCCESS;
177
+ }
178
+
179
+ return result;
180
+ }
181
+
182
+
183
+ public Map<String,Object> getSession(){
184
+ return session;
185
+ }
186
+ public void setSession(Map<String,Object> session) {
187
+ this.session = session;
188
+ }
189
+
190
+ }
191
+ ```
192
+
49
193
  思い付く限りでコードを書いて見たのですが、現状、全く同じ宛先情報でも登録されてしまいます。
50
194
 
51
195
  ご回答宜しくお願いします。

2

コード修正

2018/05/21 08:46

投稿

Tatsuo_Iriyama
Tatsuo_Iriyama

スコア50

title CHANGED
File without changes
body CHANGED
@@ -32,7 +32,7 @@
32
32
  ResultSet rs = ps.executeQuery();
33
33
 
34
34
  if(rs.getInt("count") > 0) {
35
- errorMsg.add(rs.getString("count") + "こちらの宛先は既に登録されています");
35
+ errorMsg.add("こちらの宛先は既に登録されています");
36
36
  }
37
37
 
38
38
  }catch(Exception e) {

1

コード修正

2018/05/21 08:14

投稿

Tatsuo_Iriyama
Tatsuo_Iriyama

スコア50

title CHANGED
File without changes
body CHANGED
@@ -31,7 +31,6 @@
31
31
 
32
32
  ResultSet rs = ps.executeQuery();
33
33
 
34
- System.out.println(rs);
35
34
  if(rs.getInt("count") > 0) {
36
35
  errorMsg.add(rs.getString("count") + "こちらの宛先は既に登録されています");
37
36
  }