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