java - 如果我将一个 JDBC Connection 对象的值传递给另一个 Connection 对象,是否只有一个连接打开? (使用 MySQL 数据库)

标签 java mysql jdbc

<分区>

我的方法返回 Connection 对象的值。

Public class DatabaseConnection
{
    public Connection establishConnection(C)  
    {
        try 
        {
            this.readLogin();  // prompt user to enter String values for user, pass, host
            this.createDatabaseIfNeeded();  // make chessleaguedb if not found        
            conn = DriverManager.getConnection
                        ("jdbc:mysql://"+host+":3306/chessleaguedb", user, pass);
            System.out.println("Successfully connected to chessleaguedb");

        } 
        catch (Exception e) 
        {
            // logic
        }   
        return conn;  // want the logic to handle opening a connection in this class and method, then pass it to a Connection object in my 'menu' class
    } 
}

此方法在另一个类中调用,并将返回值传递给从现在开始使用的新 Connection 对象。

public class DBAMenu
{
     DatabaseConnection startConnection = new DatabaseConnection; // new instance of class that contains the aforementioned method establishConnection()

     Connection conn = null;  

     conn = startConnection.establishConnection();
}

这里是否只打开了一个或两个数据库连接,因为我正在返回值并将其传递给新的 Connection 对象?

我试过使用 NetBeans 调试器,Connection 值在此过程后保持不变,但不可否认,我不是 100% 了解 Netbeans 调试器中值列的含义。

(不使用 Java EE,所以不能使用池化,也不能使用开源软件来处理池化,因为二年级本科项目的工作必须是我自己的)

最佳答案

If I pass a JDBC Connection object's value to another Connection object, is only one connection open?

您没有“另一个Connection 对象”。您有另一个类型为 Connection引用。两个引用都指向同一个对象。

关于java - 如果我将一个 JDBC Connection 对象的值传递给另一个 Connection 对象,是否只有一个连接打开? (使用 MySQL 数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433638/

相关文章:

java - 方法注释和注解……各自应该去哪里?

java - 如何检查特定模式是否在某些字符之前?

java - Twitter + Scribe + 无法从空对象获取字符串

java - 我们可以在java中直接将对象读入字节缓冲区吗?

sql - 弃用数据库模式中的列的最佳方法是什么?

mysql - SQL引用Select语句中的大方程

php - 如何在 laravel View 中渲染这个 json

mysql - 从源代码构建 MySql JDBC 驱动程序时出错

java jdbc 在插入表之前检查值是否存在

java - 将我的 liferay portlet 与 jdbc 驱动程序连接