spring的jdbctemplet的queryforObject()有异常,不知道原因

2019-03-25 13:51|来源: 网路

public String execute()throws Exception{
if("save".equals(actionStr)){
sql = "update DY_Topic_Group set TGName='"+tgname+"',"+
"TDetail='"+tdetail+"' where TGID="+tgid;
if(dbu.update(sql)){ //更新课程资料
message = "课程资料保存成功<br>";
}
else{
message = "未知错误,课程资料保存失败<br>";
}
sql = "select 1 from DY_User where URole=1 and UName='"+uname+"'"; //查看该用户是否是老师
if(!dbu.isExist(sql)){ //如果该用户是老师
message += "为课程指定老师失败,因为该用户不是老师";
}
else{
sql = "select TUID from DY_TU where TGID="+tgid+" and UID=(select UID from"+
" DY_User where UName='"+uname+"')";  //搜出该课程和老师ID的关系记录主键
System.out.println("1");
String tuid = dbu.getStringInfo(sql);
System.out.println(tuid);
sql = "update DY_TU set UID=(select UID from DY_User where UName='"+uname+
"') where TUID="+tuid;
System.out.println("3");
if(dbu.update(sql)){
message += "修改课程老师资料修改成功";
}
else{
message += "未知错误,老师信息修改失败";
}
}
}
上面是给一门课程指定一个老师,下面是dbutil里面的getstringinfo方法public class DBUtil{
private JdbcTemplate jt; //声明JdbcTemplate对象引用
private List rl = null; //声明List对象引用
private String sql = null; //声明SQL字符串引用
private DataSource ds; //声明DataSource引用
private DataSourceTransactionManager dtm;
private DefaultTransactionDefinition dtd;

此处省略一些代码。。。。。。。

public String getStringInfo(String sql){
String info = null; //声明返回字符串引用
try{
sql = new String(sql.getBytes(),"iso8859-1");//对SQL语句转码
System.out.println("p");
info = (String)jt.queryForObject(sql,String.class); //执行查询
System.out.println("o");
info = new String(info.getBytes("iso8859-1"),"gbk");//对查询的字符串转码
System.out.println("i");
}
catch(Exception e){
info = null;//有异常发生则info置为null
System.out.println("u");
}
return info; //返回查询结果
}
下面是tomcat服务器上的输出
=============拦截器=============2011-4-2 21:24:36
isExist select 1 from DY_User where URole=1 and UName='w'
1
p
u
null

3
通过输出u 和 null  说明有异常,但我不知道为什么会有异常

相关问答

更多