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 呢?谢谢各位高人了。

解决方案 »

  1.   

    //  DB_Connection.conn = null ; 
    你咋把这个注释了
      

  2.   

    closeConn()返回的是true,当然得执行if语句了。输出时正确的
      

  3.   


    if(DB_Connection.closeConn()){ 
      System.out.println("关闭数据连接成功! conn:"+ DB_Connection.conn); 
    } 你关闭数据库成功当然要执行里面的输出语句的,关闭后你的DB_Connection.conn还是原来的值,没变啊,所以你的输出是对的,关闭连接不会改变DB_Connection的属性的
      

  4.   

    这年头用JDBC做做练习还行,实际开发中没有。