微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java数据库最小化连接创建

我是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
}

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

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

解决方法:

您可以像这样使用设计模式Singleton Connection:

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;
    }


}

而在你的其他类中称之为:

 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");
        }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐