一:介绍
之前有讲jdbc前面的几个步骤能够封装起来,今天给大家介绍一个使用配置文件封装的方法,过程比较复杂,但是用起来真的很方便。
1.配置文件
Java中的配置文件名称一般都以“.properties”和“.xml”进行结尾,这些配置文件的结构都和Java的HashMap结构是一样的,其作用是通过修改配置文件来实现代码中的参数的更改,从而实现灵活变更参数。
二.上代码
1.先在项目根目录下面创建一个db.properties 的 Resource Bundle 文件。
?2.打开文件添加元素:
driver=com.mysql.cj.jdbc.Driver//驱动器路径
url=jdbc:mysql://localhost:3307/cgb210901?characterEncoding=utf8//jdcb里有讲
username=root//数据库用户名
password=root//数据库密码
3.创建工具包util和封装方法的类:
?4.代码如下:
package cn.tedu.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
static {
try {
//输入流 你要输入什么? 我要输入db.properties配置文件所以我要拿到它
//拿到配置文件过后你要往哪里塞? 我要往JdbcUtils这个类里面塞,所以要通过类加载器拿到它
InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
//你有了properties文件过后,要通过Properties来让java认识
Properties properties = new Properties();
//Properties调用它的加载方法即load()方法来把你的流对象解析出来让java使用
properties.load(in);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
//驱动只用加载一次
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
/**
* 释放资源
*/
public static void release(Connection con, Statement st, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
工具类的代码基本都是不变的,使用的时候能直接调用里面的方法。如果数据有变化的话也不用修改代码,只需要在修改配置文件即可。
5.实现类演示:
package cn.tedu.jdbc;
import cn.tedu.util.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestJdbc {
public static void main(String[] args) {
try {
Connection c = JDBCUtils.getConnection();
String sql ="select * from dept";
PreparedStatement p = c.prepareStatement(sql);
ResultSet r = p.executeQuery();
while (r.next()){
for (int i = 1; i < 4; i++) {
System.out.println(r.getObject(i));
}
}
r.close();
p.close();
c.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
封装了注册驱动和创造连接器的步骤,代码也会显得更加简介好看。
|