求指教JAVA程序中连接数据库访问后彻底关闭连接问题 5

packagefurnace.dbconnect;importjava.sql.*;publicclassDBConnect{publicConnectionconn=n... package furnace.dbconnect;
import java.sql.*;
public class DBConnect {
public Connection conn = null;
private Statement stmt = null;
private PreparedStatement prepstmt = null;
private DBConnectionManager dcm=null;
public CallableStatement cstm = null;
void init() {
dcm = DBConnectionManager.getInstance();
conn = dcm.getConnection("mssql");
}
/**
* 构造数据库的连接和访问类
*/
public DBConnect() throws Exception {
init();
stmt = conn.createStatement();
}
public DBConnect(int resultSetType, int resultSetConcurrency)
throws Exception {
init();
stmt = conn.createStatement(resultSetType, resultSetConcurrency);
}
/**
* 构造数据库的连接和访问类
* 预编译SQL语句
* @param sql SQL语句
*/
public DBConnect(String sql) throws Exception {
init();
this.prepareStatement(sql);
}
public DBConnect(String sql, int resultSetType, int resultSetConcurrency)
throws Exception {
init();
this.prepareStatement(sql, resultSetType, resultSetConcurrency);
}
/**
* 返回连接
* @return Connection 连接
*/
public Connection getConnection() {
return conn;
}
/**
* PreparedStatement
* @return sql 预设SQL语句
*/
public void prepareStatement(String sql) throws SQLException {
prepstmt = conn.prepareStatement(sql);
}
public void prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
throws SQLException {
prepstmt = conn.prepareStatement(sql, resultSetType, resultSetConcurrency);
}
.................................
/**
* 返回预设状态
*/
public PreparedStatement getPreparedStatement() {
return prepstmt;
}
/**
* 返回状态
* @return Statement 状态
*/
public Statement getStatement() {
return stmt;
}
/**
* 执行SQL语句返回字段集
* @param sql SQL语句
* @return ResultSet 字段集
*/
public ResultSet executeQuery(String sql) throws SQLException {
if (stmt != null) {
return stmt.executeQuery(sql);
}
else return null;
}

public ResultSet executeQuery() throws SQLException {
if (prepstmt != null) {
return prepstmt.executeQuery();
}
else return null;
}
/**
* 执行SQL语句
* @param sql SQL语句
*/
public void executeUpdate(String sql) throws SQLException {
if (stmt != null)
stmt.executeUpdate(sql);
}
public void executeUpdate() throws SQLException {
if (prepstmt != null)
prepstmt.executeUpdate();
}
/**
* 关闭连接
*/
public void close() throws Exception {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (prepstmt != null) {
prepstmt.close();
prepstmt = null;
}
if (cstm != null) {
cstm.close();
cstm = null;
}
if (conn!=null)
{
dcm.freeConnection("mssql",conn);
}
}
}
最后的CONN没有彻底关闭,请大神指教怎么实现CONN彻底关闭
展开
 我来答
静谧星空物语
推荐于2018-04-21
知道答主
回答量:3
采纳率:0%
帮助的人:2563
展开全部
try{
//执行的代码块
} catch{
//抛出异常
} finally{
//在finally里面不管是否抛出异常都会执行
conn.close;
}
815079190
2017-11-10 · 超过11用户采纳过TA的回答
知道答主
回答量:123
采纳率:20%
帮助的人:19.5万
展开全部
try{
}catch(){
}finnaly{
//关闭数据库连接
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
369431735
2017-11-09 · 超过29用户采纳过TA的回答
知道答主
回答量:155
采纳率:91%
帮助的人:37万
展开全部
java 异常处理 你可以看看 finally
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敬燕亚酷初办必0E
2017-11-09 · TA获得超过372个赞
知道答主
回答量:573
采纳率:29%
帮助的人:136万
展开全部
问刘十九(白居易)
追问
刘十九(白居易),请问此乃何人?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式