struts表单问题

来源:百度知道 编辑:UC知道 时间:2024/07/01 22:02:31
为什么这个程序只能在第一次启动服务器将程序写入数据库,而以后就不行了,只有重启服务器才能再好使一次。是con.close()的问题吗?
还有,我后加的那个stmt.close();是否有用,不加它对服务器有什么不好的影响。我这样设计程序的话,con什么时候能关闭???还有,在接受不同请求时是一个action实例在工作吗?要是的话,那我的con就永远也不能关了????如果我把数据库连接写在excute里的话,是否就能解决这个问题??
小弟刚学struts,感谢各位大虾帮忙,谢谢了,等我以后有分,一定感谢!!!!

package com.action;

import org.apache.struts.action.*;
import javax.servlet.http.*;
import com.actionForm.UserInfoActionForm;
import com.dao.Chin;
import java.sql.*;

public class UserInfoAction
extends Action {
private final String dbDriver = "com.mysql.jdbc.Driver"; //连接sql数据库的方法
private final String url ="jdbc:mysql://localhost:3306/qiang";
private final String userName = "abc";
private final String password = "abc";
private Connection con = null;
private int iCount;

public UserInfoAction() {
try {
Class.forName(dbDriver).newInstance(); //加载数据库驱动<

大概看了下你的代码,主要问题是你把获取Connection对象的语句放入到UserInfoAction的构造函数中了,Struts中每个Action只创建一个实例,也就是说第一次加载运行的时候才运行构造函数,而这次运行结束之后你的Connection就关闭了,以后运行Connection就不可用,程序当然出错了,我的建议是把Connection获取放到execute方法里

没有释放