ihavefaith 2011-04-03 11:02
浏览 566
已采纳

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

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 = "课程资料保存成功
";
}
else{
message = "未知错误,课程资料保存失败
";
}
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 += "未知错误,老师信息修改失败";
}
}
}
[color=red]上面是给一门课程指定一个老师,下面是dbutil里面的getstringinfo方法[/color]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;

[color=red]此处省略一些代码。。。。。。。[/color]

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; //返回查询结果
}
[color=red]下面是tomcat服务器上的输出[/color]
=============拦截器=============2011-4-2 21:24:36
isExist select 1 from DY_User where URole=1 and UName='w'
1
p
[color=red]u
null[/color]
3
[color=red]通过输出u 和 null 说明有异常,但我不知道为什么会有异常[/color]

  • 写回答

4条回答 默认 最新

  • liukaihandsome 2011-04-03 20:49
    关注

    你这个问题我以前碰到过
    换成返回queryforlist
    然后再get(0)就可以了

    错误的原因楼上的已经说了
    返回的值如果是null就会报错

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看