mysql中getConnection();得到的Connection 怪怪的。

图片说明
这个是返回我的Connection连接对象。
图片说明
我若直接在public static Connection getConnection() 所在类。main方法,以及
在public void add(User user) {所在类 main方法直接调用test(),,每次运行老是给我返回com.mysql.jdbc.JDBC4Connection@446cdf90同一个对象。。
而若间接着好多个类调用先调用new LoginFrame();——》new UserDAOJDBCImpl().test();则给我随机的些Connection对象。。好难理解哦哦。。

我没懂你要表达的意思。

每次打开都释放:

 public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            new UserDaoJdbcImpl().test();
        }
    }

    private void test() {
        // TODO Auto-generated method stub
        Connection conn=null;
        try {
            conn = DBConnectionManager.getConnection();
            System.out.println(conn);

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            DBConnectionManager.free(null, null, conn);
        }

结果如下:

 com.mysql.jdbc.JDBC4Connection@7a07c5b4
free conn
com.mysql.jdbc.JDBC4Connection@421faab1
free conn
com.mysql.jdbc.JDBC4Connection@799f7e29
free conn
com.mysql.jdbc.JDBC4Connection@255316f2
free conn
com.mysql.jdbc.JDBC4Connection@1698c449
free conn

每次打开都不释放,代码如下:

 public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            new UserDaoJdbcImpl().test();
        }
    }

    private void test() {
        // TODO Auto-generated method stub
        Connection conn=null;
        try {
            conn = DBConnectionManager.getConnection();
            System.out.println("new "+conn);

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

结果如下:

 new com.mysql.jdbc.JDBC4Connection@7a07c5b4
new com.mysql.jdbc.JDBC4Connection@27fa135a
new com.mysql.jdbc.JDBC4Connection@69d0a921
new com.mysql.jdbc.JDBC4Connection@579bb367
new com.mysql.jdbc.JDBC4Connection@5cb0d902