Java 数据库最小化连接创建

标签 java mysql sql jdbc

对于 Java 和我的一项作业,我是一个非常初学者。我必须做数据库操作。我有这段用于将数据插入数据库的 Java 代码,它工作正常。

public class JavaDBWork
{

  public static void main(String[] args)
  {
    try
    {
      // create a mysql database connection
      String myDriver = "org.gjt.mm.mysql.Driver";
      String myUrl = "jdbc:mysql://localhost/test";
      Class.forName(myDriver);
      Connection conn = DriverManager.getConnection(myUrl, "root", "");

      // create a sql date object so we can use it in our INSERT statement
      Calendar calendar = Calendar.getInstance();
      java.sql.Date startDate = new java.sql.Date(calendar.getTime().getTime());

      // the mysql insert statement
      String query = " insert into users (first_name, last_name, date_created, is_admin, num_points)"
        + " values (?, ?, ?, ?, ?)";

    //Other Code
}

我的问题是每次代码运行时,我的代码都必须创建数据库连接和准备好的语句对象,据我所知,这是一项代价高昂的操作。

有什么方法可以让我保持与数据库的单一连接并使用它来执行我的数据库工作?

最佳答案

您可以像这样使用设计模式单例连接:

1- 创建一个类似 SingletonConnection.java 的类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.EmptyStackException;

public class SingletonConnection   {


    private static Connection connection = null ;
    static 
    {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection
                    ("jdbc:mysql://localhost:3306/gestion_comptes","root","");
        }catch(Exception ex)
        {

        }

    }
    public static Connection getConnection() throws Exception {
        return connection;
    }


}

在你的其他类(class)中这样调用它:

 public  class DaoImpl{

        public Connection connection = SingletonConnection.getConnection();

        public DaoImpl() throws Exception 
        {
            if(connection==null)
                throw new Exception("impossible de se connecter à la base de données");
        }
}

关于Java 数据库最小化连接创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45891902/

相关文章:

mysql - 如何在 hibernate 中存储本地时间

java - Mybatis-错误: Could not set parameters for mapping

java - 如何在 Java 中为笑脸画嘴

java - ZXing 2.0发布与在线ZXing解码器有什么不同吗?

java - 如何使用嵌入式 Jetty 打包和部署 Web 应用程序

php - 尝试同时执行2个查询: only one works

sql - 在 SQL 中存储记录顺序的最佳方法是什么

java - 在java中将保存文件存储在本地机器上的位置

MySQL 数据库事件日志 : fields vs table

php - 我的带有 Count/Group By 的 MySQL 查询不能正常工作