数据库连接问题 请教大家一个问题,我进行数据库连接在JdbcUtils(单例的,没有使用数据库连接池)工具类中取得连接,第一次用完后我把conn.close(),并且conn = null(这两句代码都执行了,我debug过的),同一个application中为什么我下一次在连接的时候conn不是一个空的,还是一个关闭的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同一个application中为什么我下一次在连接的时候conn不是一个空的,还是一个关闭的呢?下一次连接的时候 就打开 连接了,然后才进行数据库操作不打开连接,怎么进行数据库操作呢?难道说 你的代码里 没有打开的操作?? package com.felix.mgr.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcUtils { private static Connection conn = null; private JdbcUtils() { } static { try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql:///shopping", "root", "root"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); } } public static Connection getConnection() { if(conn == null) { try { conn = DriverManager.getConnection("jdbc:mysql:///shopping", "root", "root"); } catch (SQLException e) { e.printStackTrace(); } } return conn; } public static void close(Connection conn, Statement stmt, ResultSet rs) { try { if(rs != null) { rs.close(); rs = null; } } catch(SQLException e) { e.printStackTrace(); } finally { try { if(stmt != null) { stmt.close(); stmt = null; } } catch(SQLException e) { e.printStackTrace(); } finally { try { if(conn != null) { conn.close(); conn = null; } } catch(SQLException e) { e.printStackTrace(); } } } }} 我第一次操作的代码是conn = JdbcUtils.getConnection();conn.....//例如保存用户...JdbcUtils.close();然后我刷新浏览器,在一次的进行插入的时候发现conn是一个关闭的 private static Connection conn = null;conn不是static的吗?所以你第二次连的时候,conn还在呀 if(conn != null) { conn.close(); conn = null; }conn = null不会起作用,因为只是改变了函数的参数的引用,不会对调用的对象起作用 private static Connection conn = null;你的是static <s:select>标签,我要通过js获取listKey的值要怎么获取? 正则表达式匹配 急求将Word文件储存到sql server2000数据库的快捷方法 关于mysql的驱动问题 页面显示的问题~~~~~~~~~~ 高分求数据丢失的问题 送分啦:一个简单的字符串处理地问题,在线等 奶奶的快疯了,菜鸟问题,以人格担保给500分(在线等)!!! spring +active mq 重复接收消息问题 问路径问题?着急! struts2问题 module属于哪一层?
不打开连接,怎么进行数据库操作呢?难道说 你的代码里 没有打开的操作??
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class JdbcUtils {
private static Connection conn = null;
private JdbcUtils() {
}
static {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql:///shopping", "root", "root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
if(conn == null) {
try {
conn = DriverManager.getConnection("jdbc:mysql:///shopping", "root", "root");
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
} public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if(rs != null) {
rs.close();
rs = null;
}
} catch(SQLException e) {
e.printStackTrace();
} finally {
try {
if(stmt != null) {
stmt.close();
stmt = null;
}
} catch(SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null) {
conn.close();
conn = null;
}
} catch(SQLException e) {
e.printStackTrace();
}
}
}
}
}
conn = JdbcUtils.getConnection();
conn.....
//例如保存用户
...
JdbcUtils.close();
然后我刷新浏览器,在一次的进行插入的时候发现conn是一个关闭的
所以你第二次连的时候,conn还在呀
conn.close();
conn = null;
}conn = null不会起作用,因为只是改变了函数的参数的引用,
不会对调用的对象起作用