我分不够了 麻烦大家先帮帮忙 救命要紧啊 哎 以前就不重视这个问题 现在终于 项目运行在线了出现巨大问题。。原因是数据库没关所导致我把JSP BEAN DB3个部分代码贴出来大家给看看getConnClose();方法应该放在哪里吧。。代码很简单的 不麻烦看一看吧DB类查询方法:public ResultSet Query(String sql){
try{
stmt = conn.createStatement();
rs=stmt.executeQuery(sql);
return rs;
}catch(Exception ex){
System.out.println("DB1: "+ex.getMessage());
}
return null;
}
BEAN类业务方法: public List getProducts(){
String sql="select * from PostsTable";
ResultSet rs=db.Query(sql);
List li = new ArrayList();
try {
while(rs.next()){
li.add(rs.getString("posts"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return li;
}JSP其实也不用写了吧要是需要在JSP就直接说好了 但是这个我认为不是在JSP里关 但是我放在
DB类的public ResultSet Query(String sql)方法里也不行因为放在RETURN NULL前 显然没什么意义 因为上面如果查到了结果的话那么根本就不会执行这里 可以我放在RETURN RS上面 项目运行起来又说连接已经关闭。
麻烦大家给看看啊 到底放在哪里关才合适啊 谢谢!!!!!!!很急
这个是关闭的方法。。
public void getConnClose(){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try{
stmt = conn.createStatement();
rs=stmt.executeQuery(sql);
return rs;
}catch(Exception ex){
System.out.println("DB1: "+ex.getMessage());
}
return null;
}
BEAN类业务方法: public List getProducts(){
String sql="select * from PostsTable";
ResultSet rs=db.Query(sql);
List li = new ArrayList();
try {
while(rs.next()){
li.add(rs.getString("posts"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return li;
}JSP其实也不用写了吧要是需要在JSP就直接说好了 但是这个我认为不是在JSP里关 但是我放在
DB类的public ResultSet Query(String sql)方法里也不行因为放在RETURN NULL前 显然没什么意义 因为上面如果查到了结果的话那么根本就不会执行这里 可以我放在RETURN RS上面 项目运行起来又说连接已经关闭。
麻烦大家给看看啊 到底放在哪里关才合适啊 谢谢!!!!!!!很急
这个是关闭的方法。。
public void getConnClose(){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
楼主【jy02411368】截止到2008-08-01 16:15:59的历史汇总数据(不包括此帖):
发帖的总数量:44 发帖的总分数:2271 每贴平均分数:51
回帖的总数量:129 得分贴总数量:19 回帖的得分率:14%
结贴的总数量:44 结贴的总分数:2271
无满意结贴数:6 无满意结贴分:410
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:13.64 % 无满意结分率:18.05 %
敬礼!
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=jy02411368
之前吧。。
可以直接写个finally来进行关闭,等你都取出来之后,关了。
try{
stmt = conn.createStatement();
rs=stmt.executeQuery(sql); return rs;
}catch(Exception ex){
System.out.println("DB1: "+ex.getMessage());
} finally{
if (stmt != null) {
try {
stmt .close();
}
catch (Exception e) {
e.printStackTrace();
}
}
if (conn!= null) {
try {
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}return null;
}
BEAN类业务方法: public List getProducts(){ String sql="select * from PostsTable";
ResultSet rs=db.Query(sql);
List li = new ArrayList();
try {
while(rs.next()){
li.add(rs.getString("posts"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return li; } finally {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) { }
}
try{
stmt = conn.createStatement();
rs=stmt.executeQuery(sql); return rs;
}catch(Exception ex){
System.out.println("DB1: "+ex.getMessage());
} finally{
if (stmt != null) {
try {
stmt .close();
}
catch (Exception e) {
e.printStackTrace();
}
}
if (conn!= null) {
try {
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
难道程序还会执行下去???
但是你这里的数据访问类的方法返回的是ResultSet,所以不适合写在数据访问类中。
建议你写在bean类的finally中。
更改或插入完就可以关了啊