java与中的数据库操作 成功执行不知为何抛出异常 很奇怪
我进行java的数据库操作时,r=s.executeQuery(temp_String1);这条命令成功执行结果正常一切正常但是问题就是执行过程中居然抛出异常最后显示"发...
我进行java的数据库操作时,r = s.executeQuery(temp_String1);
这条命令成功执行 结果正常 一切正常 但是问题就是执行过程中居然抛出异常
最后显示"发生错误,可能是由于数据不匹配造成的"
其实代码已经成功执行了
源代码如下:
public void jButton15_actionPerformed(ActionEvent e) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
}
try {
c = DriverManager.getConnection(dbUrl, "", "");
} catch (SQLException ex1) {
}
try {
s = c.createStatement();
} catch (SQLException ex2) {
}
if (jTextField20.getText().equals("")) {
jLabel15.setText("无法修改一条学号为空的学生信息");
} else {
temp_String1 = "select * from student where 学号 = '" +
jTextField20.getText() + "'";
System.out.println(temp_String1);
try {
r = s.executeQuery(temp_String1);
} catch (SQLException ex) {
}
try {
if (r.next()) {
temp_String1 = "update student set 姓名 = '" +
jTextField19.getText() + "',性别 = '" +
jTextField16.getText() + "',年龄 = " +
jTextField17.getText() + ",系别 = '" +
jTextField18.getText() + "' where 学号 = '" +
jTextField20.getText() + "'";
System.out.println(temp_String1);
r = s.executeQuery(temp_String1); //产生莫明其妙的错误?被catch到下面去了 但是此时数据已经加入进去了
jLabel15.setText("执行语句 '" + temp_String1 + "' 成功");
} else {
jLabel15.setText("查无此学生");
}
} catch (SQLException ex1) {
jLabel15.setText("发生错误,可能是由于数据不匹配造成的");
}
}
try {
r.close();
} catch (SQLException ex2) {
}
} 展开
这条命令成功执行 结果正常 一切正常 但是问题就是执行过程中居然抛出异常
最后显示"发生错误,可能是由于数据不匹配造成的"
其实代码已经成功执行了
源代码如下:
public void jButton15_actionPerformed(ActionEvent e) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
}
try {
c = DriverManager.getConnection(dbUrl, "", "");
} catch (SQLException ex1) {
}
try {
s = c.createStatement();
} catch (SQLException ex2) {
}
if (jTextField20.getText().equals("")) {
jLabel15.setText("无法修改一条学号为空的学生信息");
} else {
temp_String1 = "select * from student where 学号 = '" +
jTextField20.getText() + "'";
System.out.println(temp_String1);
try {
r = s.executeQuery(temp_String1);
} catch (SQLException ex) {
}
try {
if (r.next()) {
temp_String1 = "update student set 姓名 = '" +
jTextField19.getText() + "',性别 = '" +
jTextField16.getText() + "',年龄 = " +
jTextField17.getText() + ",系别 = '" +
jTextField18.getText() + "' where 学号 = '" +
jTextField20.getText() + "'";
System.out.println(temp_String1);
r = s.executeQuery(temp_String1); //产生莫明其妙的错误?被catch到下面去了 但是此时数据已经加入进去了
jLabel15.setText("执行语句 '" + temp_String1 + "' 成功");
} else {
jLabel15.setText("查无此学生");
}
} catch (SQLException ex1) {
jLabel15.setText("发生错误,可能是由于数据不匹配造成的");
}
}
try {
r.close();
} catch (SQLException ex2) {
}
} 展开
4个回答
展开全部
如果非查询sql语句需要用s.execute(String sql)方法来实现,
再有,给你提一个小建议,
你的try块太频繁,而且没有catch做错误处理,建议改善一下。
再有,给你提一个小建议,
你的try块太频繁,而且没有catch做错误处理,建议改善一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
r = s.executeQuery(temp_String1);
不能用s.executeQuery
因为update语句不会返回ResultSet,所以产生数据类型不匹配.
不能用s.executeQuery
因为update语句不会返回ResultSet,所以产生数据类型不匹配.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把这句jLabel15.setText("发生错误,可能是由于数据不匹配造成的"); 改成ex1.printStackTrace(),将错误信息输出到控制台,看一下是什么错误,才好检查修改.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s.executeQuery(temp_String1);//如果是update就不要用Query方法,好像应该是s.excuteUpdate(sqlString);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |