对于 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/