配置文件方式JDBC,更加方便用户修改及读取数据,从配置文件读取数据赋值,用户只需修改配置文件,工具类无需改变。

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);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴力飞机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值