MYSQL的JDBCUtils的写法
Posted 邢覃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL的JDBCUtils的写法相关的知识,希望对你有一定的参考价值。
第一种方式(直接上源码):
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.ResourceBundle;
public class JDBCUtils1 {
// 声明 数据库基本四项 变量
// alt + 鼠标下移 批量编辑
private static String jdbc_driver;
private static String jdbc_url;
private static String jdbc_user;
private static String jdbc_password;
// 给变量赋值
static {
//sun公司提供了了工具类ResourceBundle 专门用于读取src目录下的properties的配置文件
ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
jdbc_driver = bundle.getString("jdbc_driver");
jdbc_url = bundle.getString("jdbc_url");
jdbc_user = bundle.getString("jdbc_user");
jdbc_password = bundle.getString("jdbc_password");
}
// 注册驱动(执行一次)
static {
try {
Class.forName(jdbc_driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 提供获取连接的方法
public static Connection getConnection() throws SQLException {
// 获取连接
Connection connection = DriverManager.getConnection(jdbc_url, jdbc_user, jdbc_password);
return connection;
}
// 提供关闭资源的方法 【方法重载】3 dql
public static void closeResource(ResultSet resultSet, Statement statement, Connection connection) {
// 关闭结果集
// ctrl+alt+m 将java语句抽取成方法
closeResultSet(resultSet);
// 关闭语句执行者
closeStatement(statement);
// 关闭连接
closeConnection(connection);
}
// 提供关闭资源的方法 【方法重载】 2 dml
public static void closeResource(Statement statement, Connection connection) {
// 关闭语句执行者
closeStatement(statement);
// 关闭连接
closeConnection(connection);
}
private static void closeConnection(Connection connection) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closeStatement(Statement statement) {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closeResultSet(ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
第二种方式:
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils2 {
// 声明 数据库基本四项 变量
// alt + 鼠标下移 批量编辑
private static String jdbc_driver;
private static String jdbc_url;
private static String jdbc_user;
private static String jdbc_password;
// 给变量赋值
static {
// 获取自定义文件 io流 类加载器获取
// 获取此类的字节码对象
System.out.println(JDBCUtils2.class.getClassLoader());
InputStream is = JDBCUtils2.class.getClassLoader().getResourceAsStream("jdbc.properties");
// 创建配置文件对象 key = value
Properties properties = new Properties();
try {
properties.load(is);
jdbc_driver=properties.getProperty("jdbc_driver");
jdbc_url=properties.getProperty("jdbc_url");
jdbc_user=properties.getProperty("jdbc_user");
jdbc_password=properties.getProperty("jdbc_password");
} catch (IOException e) {
e.printStackTrace();
}
}
// 注册驱动(执行一次)
static {
try {
Class.forName(jdbc_driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 提供获取连接的方法
public static Connection getConnection() throws SQLException {
// 获取连接
Connection connection = DriverManager.getConnection(jdbc_url, jdbc_user, jdbc_password);
return connection;
}
// 提供关闭资源的方法 【方法重载】3 dql
public static void closeResource(ResultSet resultSet, Statement statement, Connection connection) {
// 关闭结果集
// ctrl+alt+m 将java语句抽取成方法
closeResultSet(resultSet);
// 关闭语句执行者
closeStatement(statement);
// 关闭连接
closeConnection(connection);
}
// 提供关闭资源的方法 【方法重载】 2 dml
public static void closeResource(Statement statement, Connection connection) {
// 关闭语句执行者
closeStatement(statement);
// 关闭连接
closeConnection(connection);
}
private static void closeConnection(Connection connection) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closeStatement(Statement statement) {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closeResultSet(ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
第三种方式:
import org.junit.Test;
import java.sql.*;
public class JDBCUtils3 {
//注册驱动(只注册一次)
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//提供获取连接的方法
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection("jdbc:mysql://localhost:3306/db_day04","root","123");
}
//提供关闭资源的方法
//提供关闭资源的方法(两种:1.dql 2.dml)
public static void closeResorce(ResultSet resultSet , Statement statement, Connection connection){
closeResultSet(resultSet);
closeConnection(connection);
closeStatement(statement);
}
public static void closeResorce(Statement statement,Connection connection){
closeConnection(connection);
closeStatement(statement);
}
private static void closeStatement(Statement statement) {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closeConnection(Connection connection) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closeResultSet(ResultSet resultSet) {
if (resultSet != null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
第三种方式采用最原生的方式书写,第二种则相对于第三种做了简化,加入了配置文件,这样只需要修改配置文件中的内容就可以达到修改配置工具类的作用,
第一种则采用sun公司推出的ResourceBundle,它可以专门读取src文件目录下的properties 文件,使用更加简便
以上是关于MYSQL的JDBCUtils的写法的主要内容,如果未能解决你的问题,请参考以下文章