码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL的JDBCUtils的写法

时间:2018-10-10 17:06:27      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:源码   mys   org   作用   port   bundle   dex   set   ctr   

第一种方式(直接上源码):

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的写法

标签:源码   mys   org   作用   port   bundle   dex   set   ctr   

原文地址:https://www.cnblogs.com/otways/p/9767093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!