Java 访问数据库的最佳方式

Java 访问数据库的最佳方式,java,Java,我对Java比较陌生。我正在修补一个小程序,它使用带有几个字段的JFrame来查询和插入数据库 我目前有一个类,它什么也不做,只是创建数据库连接。从那里,我有了其他类来执行SELECT或INSERT数据库函数。每一步都是从为数据库连接类创建一个新对象开始的。连接完成后会关闭 作为新手,我只是想看看这是否是访问数据库的最佳方式,即:每次按下按钮时创建并关闭一个全新的连接。它执行所需的任务,但如果有更有效或更明智的方法来完成这一任务,我很想知道 我可以提供您可能需要查看的任何代码。谢谢 从java访

我对Java比较陌生。我正在修补一个小程序,它使用带有几个字段的JFrame来查询和插入数据库

我目前有一个类,它什么也不做,只是创建数据库连接。从那里,我有了其他类来执行SELECT或INSERT数据库函数。每一步都是从为数据库连接类创建一个新对象开始的。连接完成后会关闭

作为新手,我只是想看看这是否是访问数据库的最佳方式,即:每次按下按钮时创建并关闭一个全新的连接。它执行所需的任务,但如果有更有效或更明智的方法来完成这一任务,我很想知道


我可以提供您可能需要查看的任何代码。谢谢

从java访问数据库的常用方法是连接池。我向你推荐这个:

在数据库交互代码中,您只需从池中创建连接(实际上它从池中借用连接),请求后只需关闭连接(实际上它返回到池的连接)。


您可以创建一次连接,然后根据需要使用它多少次。有两种标准的方法:单例和依赖注入。由于多种原因,singleton通常不是一个好的解决方案,所以我坚持使用依赖注入

我们开始吧

  • 数据库类(伪代码):

  • 使用数据库的GUI:

    public class GUI extends JPanel {
        private Database db;
    
        public GUI(Database db) {
            this.db = db;
        }
    
        // TODO implement GUI, use `db` to access the database 
    }
    
  • 初始化应用程序:

    public static void main(String[] args) {
        Database db = new Database(...);
        GUI gui = new GUI(db);
    
        // TODO: create JFrame, add GUI to it
    }
    

这可能适用于大多数情况。对于更复杂或长期运行的软件,如果数据库连接没有一直使用(或者您需要更多),最好在不使用时实际关闭连接。对于这种情况,请使用Denis Borovikov所示的连接池:

通常用于数据库密集型应用程序,人们使用连接池库,比如。哇,这正是我想要的。一个问题:您上面粘贴的“GUI使用数据库”代码似乎就是我要做的事情,比如创建语句和查询等。这是正确的吗?好吧,由您决定。您可以直接从GUI创建查询,也可以在
数据库
类中创建实用程序方法并直接使用它们。事实上,我认为这是更好的方法。这看起来不错。我从我的答案中删除了伪代码,并加入了指向您答案的链接。
public class GUI extends JPanel {
    private Database db;

    public GUI(Database db) {
        this.db = db;
    }

    // TODO implement GUI, use `db` to access the database 
}
public static void main(String[] args) {
    Database db = new Database(...);
    GUI gui = new GUI(db);

    // TODO: create JFrame, add GUI to it
}