1. 程式人生 > >將JDBC提取成一個公共的方法

將JDBC提取成一個公共的方法

資料庫的連線是一件耗能的事情   將資料庫連線做成單例模式會減少耗能

就是以一個連線物件 ,多個sql語句

public class JDBCUtil {
private static  JDBCUtil jdbcutil=new JDBCUtil();
private Connection conn=null;
private final String driverClass="com.mysql.jdbc.Driver";
private final String url="jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8";
private final String usename="root";
private final String password="123";
private JDBCUtil() {
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


public static JDBCUtil getInstance() {
return jdbcutil;

}
public Connection getconnection() {

/*

                        單例模式

                        if(conn==null) {

try {
conn=DriverManager.getConnection(url,usename,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}*/

                //非單例模式

Connection conn=null;
try {
conn=DriverManager.getConnection(url,usename,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public void closeConn(Connection conn) {
try {
conn.close();
conn=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

-------------------------------------------------------------------------------------------------------------------------------

package JDBC;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTest3 {
public static void main(String[] args) {
/*Connection conn1=JDBCUtil.getInstance().getconnection();
Connection conn2=JDBCUtil.getInstance().getconnection();
Connection conn3=JDBCUtil.getInstance().getconnection();
System.out.println(conn1==conn2);*/

Connection conn=JDBCUtil.getInstance().getconnection();
String sql="insert into test values(5,'f',50)";
try {
Statement st=conn.createStatement();
st.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
JDBCUtil.getInstance().closeConn(conn);
}
}
}