JDBC连接数据库问题-请各位高手给与解答

咋个办呢 2009-08-19 12:16:44

package org.bkzx.db.conn;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import org.bkzx.log.SystemRunLog;
/**
* 连接数据的静态类
* @author ai_zxc
* @version 2009.08.18
*/
public class DB_Connection {
private static Logger log = SystemRunLog.getLogger(DB_Connection.class) ;

private final static String URL = "jdbc:mysql://192.168.2.4:3306/BKZX" ;
private final static String USER = "root" ;
private final static String PASSWORD = "******" ;

public static Connection conn = null ;

/**
* 获取连数据对象
* @return Connection 数据库连接对象
*/
public static Connection getConn() {

try {
Class.forName("com.mysql.jdbc.Driver") ;

conn = DriverManager.getConnection(URL, USER, PASSWORD) ;

System.out.println(conn);

} catch (ClassNotFoundException e) {
log.error("连接数据失败:", e) ;

e.printStackTrace();

} catch (SQLException e) {

log.error("连接数据失败:", e) ;

e.printStackTrace();
}

return conn;
}


public static boolean closeConn(){

try {
conn.close() ;
// DB_Connection.conn = null ;
return true ;
} catch (SQLException e) {
log.error("关闭数据库失败!", e) ;
// DB_Connection.conn = null ;
e.printStackTrace();
return false ;
}
}
}

//*****************************************************************************************
package org.bkzx.test.db;
import java.sql.Connection;
import org.bkzx.db.conn.DB_Connection;
import junit.framework.TestCase;
public class BDConnTest extends TestCase {
public void testConn(){

if(null != DB_Connection.getConn()){
System.out.println("数据连接成功! conn:"+ DB_Connection.conn);
}
else{
System.out.println("数据库连接失败!conn: " + DB_Connection.conn);
}

if(DB_Connection.closeConn()){

System.out.println("关闭数据连接成功! conn:"+ DB_Connection.conn);

}
else{

System.out.println("关闭数据库连接失败!conn: " + DB_Connection.conn);
}

}

}
//***********************************
输出:
com.mysql.jdbc.Connection@14b7453
数据连接成功! conn:com.mysql.jdbc.Connection@14b7453
关闭数据连接成功! conn:com.mysql.jdbc.Connection@14b7453
//******************************************
问题:
为什么!关闭数据连接成功! conn:com.mysql.jdbc.Connection@14b7453 不是null 呢?

我的邮箱是:ai_zxc@163.com

谢谢各位高人了。
...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zw393 2009-08-20
  • 打赏
  • 举报
回复
这年头用JDBC做做练习还行,实际开发中没有。
fei8213 2009-08-20
  • 打赏
  • 举报
回复
楼上正解
Seven_23 2009-08-20
  • 打赏
  • 举报
回复

if(DB_Connection.closeConn()){
System.out.println("关闭数据连接成功! conn:"+ DB_Connection.conn);
}

你关闭数据库成功当然要执行里面的输出语句的,关闭后你的DB_Connection.conn还是原来的值,没变啊,所以你的输出是对的,关闭连接不会改变DB_Connection的属性的
lcj_up 2009-08-20
  • 打赏
  • 举报
回复
顶2楼
Zongjianchang 2009-08-20
  • 打赏
  • 举报
回复
closeConn()返回的是true,当然得执行if语句了。输出时正确的
奋斗并快乐着 2009-08-19
  • 打赏
  • 举报
回复
// DB_Connection.conn = null ;
你咋把这个注释了

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧