要不要关闭Connection对象,为什么

问题描述

我写了一个类 封装了MySQL数据库的连接方法,一个是用类方法实现,一个是用对象方法实现,如下:public static Connection getConn() throws Exception{Connection conn=null;try{Class.forName(strDataDriverName);} catch (ClassNotFoundException e) {// TODO: handle exceptionthrow new Exception(e);}try {conn=DriverManager.getConnection(strDataURL,strDataUserName,strDataPWD);} catch (SQLException e) {// TODO: handle exceptionthrow new Exception(e);}return conn;}//public Connection getConnection() throws Exception {Connection conn=null;try{Class.forName(strDataDriverName);} catch (ClassNotFoundException e) {// TODO: handle exceptionthrow new Exception(e);}try {conn=DriverManager.getConnection(strDataURL,strDataUserName,strDataPWD);} catch (SQLException e) {// TODO: handle exceptionthrow new Exception(e);}return conn;}这两个方法都没有关闭conn, 因为要返回conn, 我想问下 如果在外部声明一个 conn=类.getConn 后 然后关闭conn 是不是接可以了也就同样的关闭了类.getConn中的conn,主要是 这两个conn对象是不是一个?如果用下面的对象.getConnection, 疑惑同上!! 问题补充:ljjclub 写道

解决方案

比如你在这个类里写的conn 和 close;public class DBUtil {public static Connection getConnection() {Connection conn = null;try {Class.forName("oracle.jdbc.driver.OracleDriver");String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";String username = "scott";String password = "tiger";conn = DriverManager.getConnection(dbUrl, username, password);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;} public static void close(Connection conn) {if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}在其他类中需要连接数据库时这样Connection = null; conn = DBUtil.getConnection();然后conn.close(); 就行了
解决方案二:
怎么会关闭俩个conn呢,什么意思
解决方案三:
在你这个工具类里面写上关闭方法public static void close(Connection conn) {if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}然后在哪调用连接就在哪关闭
解决方案四:
应该不是同一个!

时间: 2024-08-01 10:30:00

要不要关闭Connection对象,为什么的相关文章

在三层架构DAL层多次开启和关闭Connection对象好吗?

问题描述 在DAL层中,每次执行查询以后都会关闭prepareStatement对象和Connection对象,请问这样做合适吗?我的SQLHelper写成是静态的了,DAL层每个查询都从SQLHelper中获取一个PrepareStatement对象,然后每次执行完对应的查询后都会关闭pstmt对象和connection对象,然而这只是在DAL层,在BLL层中一般会调用1-5个DAL的方法,也就是说,一轮业务逻辑下来,Connection对象会开启和关闭1-5次,这样对性能有影响吗?有没有高手

如何在ado中使用connection 对象

ado|connection|对象 什么是connection对象? 一个connection对象描述了到数据源的物理连接.你可以使用odbc也可以利用ole db来连接数据源.当你打开一个connectiont对象时你就会试图连接数据库.Connection对象的state属性会告诉我们连接是否成功.通过connection对象的execute方法向数据源发送SQL语句或运行存存储过程.如果你向数据源发送的命令要求数据源返回记录集,那么记录集对象会自动的被创建.当你连接上数据库后你可以关闭co

如何在ado中使用connection 对象什么是connection对象?

ado|connection|对象 什么是connection对象? 一个connection对象描述了到数据源的物理连接.你可以使用odbc也可以利用ole db来连接数据源.当你打开一个connectiont对象时你就会试图连接数据库.Connection对象的state属性会告诉我们连接是否成功.通过connection对象的execute方法向数据源发送SQL语句或运行存存储过程.如果你向数据源发送的命令要求数据源返回记录集,那么记录集对象会自动的被创建.当你连接上数据库后你可以关闭co

ASP入门教程-Connection对象

1.Connection 对象简述 Connection 对象代表了打开的.与数据源的连接,好象在应用程序和数据库中建立了一条数据传输连线,该对象代表与数据源进行的惟一会话.ASP 使用 ADO 对各种数据源进行各种操作,其中,Connection 对象是必不可少的,在这个基础上可以使用 Command 对象及 Recordset 对象来对 Connection 对象所连接的数据库进行插入.删除.更新和查询等操作. 2.Connection 对象的常用属性 Connection 对象的常用属性

c3p0连接池中获取的Connection对象的close()方法是真的把连接给关闭了?

问题描述 c3p0连接池中获取的Connection对象的close()方法是真的把连接给关闭了? 自己做写了一个管理数据源的DBManager,构想中从数据源里面获取的Connection使用完之后执行close()方法,然后把Connection对象闲置回连接池中. 但是测试出来的结果好像每次执行close()之后connection就销毁了. 代码如下: DBManager.java package ben.DBUtils; import java.sql.Connection; impo

vb神童教程(续)--vb adodb Connection对象简介

本文欢迎非商业用途的转载,但需要注明出自"编程入门网"及相应的网址链接. Connection对象介绍 Connection对象支持许多属性,可以利用这些属性来操作当前的连接状态或者获取一些基本的Connection对象的信息.有一些属性是只读的,而另一些属性是可读写的. 1.Attributes属性 Attributes属性设置或返回一个整型值,它用来指示对象的一项或多项特性.对于Connection对象,Attributes属性为读/写,并且其值可能为以下任意一个或多个XactAt

ADO.NET中的Connection对象详解

  连接字符串 连接字符串的几个常用参数: Provider:这个属性用于设置或返回连接提供程序的名称,仅用于OleDbConnection对象. Connection Timeout或Connect Timeout:在中止尝试并产生异常前,等待连接到服务器的连接时间长度(以秒为单位).默认是15秒. Initail Catalog:数据库的名称. Data Source:连接打开时使用的sql server名称,或者是Microsoft Access数据库的文件名. Password:SQL

对于Connection 对象讲述与谈论

  能通过本地维护数据集里面的记录缓存来提高性能.例如,你能在本地Connection 对象集中存储10页数据,只在用户导航超出第一页或最后一页时才查询数据源检索新的数据,但仍然要求能够写出正确无误的连接串,可以使用下面的方法: 1.新建一个文件,如 test.udl双击 test.udl,会打开一个 [数据链接属性]对话框,默认在[连接]属性页. 2.单击标签转到[提供者]属性页,选择您希望连接的数据,默认是 Microsoft OLE DB Provider for ODBC Drivers

Java里的如果ResultSet关闭 Connection自动关闭怎么实现

问题描述 C#里有CommandBehavior.CloseConnection这个东西Java里有吗?或者有没类似功能?我有个方法想返回一个ResultSet关闭后连接对象也关闭 解决方案 解决方案二:java中可以直接关闭获得的Connection实例,关闭数据库连接实例后,所有建立在这个数据库实例上面的资源,结果集便自动关闭解决方案三:该回复于2014-09-22 08:45:05被版主删除解决方案四:你可以每次都去关闭ResultSet,pstmt,conn等资源.但是如果你直接关闭co