日期:2014-05-17  浏览次数:20751 次

JSP嵌入java插入数据报错
我一同事设计时,在后台写了个addUser(),
然后,前台jsp直接调用xC.adUser(),然后报错,
我帮忙解决不了,求赐教下:
OperateSourceInf{
public void addSourceInf(SourceInf si) throws SQLException {
String sql = "insert into sourceInf values ("+String.valueOf(si.getSrc_id())+",'"+si.getSrc_date()+"',"+"'"+si.getSrc_name()+"')" ;
Statement stat  = con.createStatement();
stat.execute(sql);
stat.close();
con.close();
}
}

前台:

<%
OperateSourceInf opt = new OperateSourceInf();
SourceInf si = new SourceInf("2014.1.15", "差旅费");
SourceInf si1 = new SourceInf("2014.1.15", "差旅费1");
opt.addSourceInf(si);
opt.addSourceInf(si1);
%>

然后报错了 。

我水平次,一般我是直接写后台,他这种写法我解决不了,请教下【勿喷】
------解决方案--------------------
报什么错?

OperateSourceInf这个类connection是怎么获取的?为什么没有commit?异常不处理rollback?关闭资源为什么不写在finally里?
------解决方案--------------------
把错误代码贴上来。 是不是类没有导入?
------解决方案--------------------
看下web-info/lib  下是否有mysql jar包
------解决方案--------------------
引用:
Quote: 引用:

报什么错?

OperateSourceInf这个类connection是怎么获取的?为什么没有commit?异常不处理rollback?关闭资源为什么不写在finally里?


引用:
报什么错?

OperateSourceInf这个类connection是怎么获取的?为什么没有commit?异常不处理rollback?关闭资源为什么不写在finally里?

他这个代码的话,


public static Connection getConnection() {
Connection cn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/test", "root", "123");
} catch (ClassNotFoundException e) {
System.out.println("没有找到数据库");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return cn;
}


直接在后台运行没问题,只是放到了前台直接运行就报错,报错就是找不到驱动类。


在addSourceInf这个方法第一行打印一下,在前台运行能执行到这个方法吗?
如果可以 还是怀疑你那个连接没获取到,打印下连接是不是null;
或者加一句con = getConnection();试一下可不可以
------解决方案--------------------

------解决方案--------------------
引用:


你的名字这么屌丝,CSDN造吗?
------解决方案--------------------
引用:
Quote: 引用:



你的名字这么屌丝,CSDN造吗?

臣妾真的不知啊,你帮问问床上等你。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用: