1.先创建配置文件放在src下:后缀名:
.properties 必须只存在键与值,不能出现多余,否则读取不成功,提示无法找到文件
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///web_test3
username=root
password=123456
2.抽取工具类,稍微修改常量方式
package com.PZWJ;
/*
配置文件分为:
属性文件 (此处用)
格式:扩展名是.properties
内容:key=value
XML文件
改变时只需修改配置文件
*/
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
//import java.sql.*;
//JDBC工具类
//提取出经常用的代码段,简化代码
public class DBCutils02 {
// 简化代码,方便灵活使用
// 连接信息,静态常量
private static final String driverClassName;
private static final String url;
private static final String username;
private static final String password;
static {
//创建对象
Properties properties = new Properties();
try {
// 读取配置文件
// properties.load(new FileInputStream("src/jdbc.properties"));
properties.load(new FileInputStream("D:\\IDEA\\MyJDBC\\src\\com\\PZWJ\\jdbc.properties"));
} catch (IOException e) {
e.printStackTrace();
}
// 从文件获取到具体内容为常量赋值,
driverClassName=properties.getProperty("driverClassName");
url= properties.getProperty("url");
username=properties.getProperty("username");
password=properties.getProperty("password");
}
// ------------------------------------------------------------------------------------------
//注册驱动的方法
public static void loadDriver(){
try {
Class.forName(driverClassName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// ------------------------------------------------------------------------------------------
// 获得连接的方法
public static Connection getConnection(){
//将驱动一并注册,只需调用这一个
Connection conn = null;
try {
loadDriver();
//获得链接
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
// ------------------------------------------------------------------------------------------
// 资源的释放 查询需要3个,增删改需要2个 写重载方法
public static void release(Statement stmt,Connection conn){
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null; //手动置为空
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
}
public static void release(ResultSet rs,Statement stmt, Connection conn){
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs=null; //手动置为空
}
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null; //手动置为空
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
}
}
3.测试,和之前一样:
package com.PZWJ;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
//import java.sql.*;
public class Utilstest02 {
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
conn= DBCutils02.getConnection();
stmt=conn.createStatement();
String sql="select * from user";
rs=stmt.executeQuery(sql);
while (rs.next()){
System.out.println(rs.getInt("id")+" "+rs.getString("username")+" "+rs.getString("password")+" "+rs.getString("nickname")+" "+rs.getInt("age"));
}
}catch (Exception e){
e.printStackTrace();
}finally {
DBCutils02.release(rs,stmt,conn);
}
}
}