求助,JDBC报错:SQL 命令未正确结束

水煮花生- 2018-01-13 09:05:09
public static Vector<String> seek(int operateFlag, String name, String age, String sex) {
String sql = "SELECT * from criminals";
int selectFlag =0;
if(name != null && !name.equals("")) {
sql += "WHERE name LIKE ?";
selectFlag = 1;
if(age != null && !age.equals("")) {
sql += "AND age LIKE ?";
selectFlag = 2;
if(!sex.equals("")) {
sql += "AND sex LIKE ?";
selectFlag =3;
}
}else {
if(!sex.equals("")) {
sql += "AND sex LIKE ?";
selectFlag =4;
}
}
}else {
if(age != null && !age.equals("")) {
sql += "WHERE age LIKE ?";
selectFlag = 5;
if(!sex.equals("")) {
sql += "AND sex LIKE ?";
selectFlag =6;
}
}else {
if(!sex.equals("")) {
sql += "WHERE sex LIKE ?";
selectFlag =7;
}
}
}
Vector <String> infoStringCollection = dataOperate.generalQuery(operateFlag, sql, selectFlag, name, age, sex);
return infoStringCollection;
}



public Vector<String> generalQuery(int operateFlag, String sql, int selectFlag, String name, String age,
String sex) {
Vector <String> infoStringCollection = new Vector <String>();
try {
pstmt = con.prepareStatement(sql);
switch (selectFlag) {
case 0 :
break;
case 1:
pstmt.setString(1, name);
break;
case 2:
pstmt.setString(1, name);
pstmt.setString(2, age);
break;
case 3:
pstmt.setString(1, name);
pstmt.setString(2, age);
pstmt.setString(3, sex);
break;
case 4:
pstmt.setString(1, name);
pstmt.setString(2, sex);
break;
case 5:
pstmt.setString(1, age);
break;
case 6:
pstmt.setString(1, age);
pstmt.setString(1, sex);
break;
case 7:
pstmt.setString(1, sex);
}
ResultSet rs = pstmt.executeQuery();
}catch (SQLException se) {
System.err.println("查询数据库出错");
System.err.println(se);
se.printStackTrace(System.err);
}

return infoStringCollection;
}
...全文
310 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37105320 2018-01-13
  • 打赏
  • 举报
回复
SQL拼接不对吧? 没空格?
水煮花生- 2018-01-13
  • 打赏
  • 举报
回复
相关联的还有一段这个
if(source == submit) {
			Vector <String> infoStringCollection = new Vector <String>();
			list.setListData(infoStringCollection);
			String name = nameField.getText().trim();
			String age = ageField.getText().trim();
			String sex = sexChoice.getSelectedItem().toString();
			infoStringCollection = Service.seek(operateFlag, name, age, sex);
			list.setListData(infoStringCollection);
			nameField.setText("");
			ageField.setText("");
			sexChoice.setSelectedIndex(0);
			return;
		
		}
水煮花生- 2018-01-13
  • 打赏
  • 举报
回复
主要是第一个代码, 看了又看,就这几句SQL语句不知道错哪儿了,求大神指导
水煮花生- 2018-01-13
  • 打赏
  • 举报
回复
哇我忘记空格了,我好傻QAQ

50,639

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧