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]