TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
该工具类的作用仅供java注册驱动、获取连接和释放资源:
第一种方式:创建静态代码块
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public final class JdbcUtils {//拒绝继承
private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=mytest";
private static String user = "sa";
private static String password = "123456";
//拒绝new一个实例
private JdbcUtils() {};
static {//调用该类时既注册驱动
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
//获取连接
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
//释放资源
public static void free(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
}
[/code]
第二种方式:单例模式:初始化域
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public final class JdbcUtilsSingleton {//拒绝继承
private String url = "jdbc:sqlserver://localhost:1433;DatabaseName=mytest";
private String user = "sa";
private String password = "123456";
//拒绝new一个实例
private JdbcUtilsSingleton() {};
static {//调用该类时既注册驱动
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
//单例模式:初始化一个域
private static JdbcUtilsSingleton instance = new JdbcUtilsSingleton();
//获取实例
public static JdbcUtilsSingleton getInstance() {
return instance;
}
//获取连接
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
//释放资源
public void free(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
}
[/code]
第三种方式:单例模式:延迟加载
package cn.itcast.jdbc.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public final class JdbcUtilsSingleton {//拒绝继承
private String url = "jdbc:sqlserver://localhost:1433;DatabaseName=mytest";
private String user = "sa";
private String password = "123456";
//拒绝new一个实例
private JdbcUtilsSingleton() {};
static {//调用该类时既注册驱动
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
//单例模式::延迟加载
private static JdbcUtilsSingleton instance = null;
//获取实例
public static JdbcUtilsSingleton getInstance() {
if(instance == null) {
synchronized (JdbcUtilsSingleton.class) {
if(instance == null) {//双重检查,避免重复创建实例
instance = new JdbcUtilsSingleton();
}
}
}
return instance;
}
//获取连接
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
//释放资源
public void free(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
}
[/code]
源码下载:http://file.javaxxz.com/2014/10/11/030846687.zip |
|