当前位置: java基础教程 > 20-jdbc > 阅读正文

JDBCUtils 工具类

2021.1.5.   782 次   1588字

为了简化每次连接的重复步骤,写了此工具类。

1.首先,需要在 src 目录下建立一个jdbc.properties 文件,内容如下

(jdbc 8.0 以下版本)

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///db3
user=root
password=root

(jdbc 8.0 以上版本)

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/union?useSSL=false&serverTimezone=UTC
user=root
password=root
2.接着,编写一个 JDBCUtils 的工具类,内容如下:

(classloader 是一个类加载器,能自动获取某个文件的真实路径)

import java.io.FileReader;
import java.net.URL;
import java.sql.*;
import java.util.Properties;


public class JDBCUtils {
	private static String driver;
	private static String url;
	private static String user;
	private static String password;

	//静态字符块,自动加载资源文件
	static {
                //获取src路径下的文件的方式--->ClassLoader 类加载器
                ClassLoader classLoader = JDBCUtils.class.getClassLoader();
                //获取资源对象(得到一个 url 对象)
                URL res  = classLoader.getResource("jdbc.properties");
                //得到资源真实路径
                String path = res.getPath();
                //创建Properties类型的对象
                Properties p =new Properties();
	        try {
			//加载资源文件
			p.load(new FileReader(path));
			driver = p.getProperty("driver");
			url = p.getProperty("url");
		        user = p.getProperty("user");
			password = p.getProperty("password");
			//加载驱动

			Class.forName(driver);
			System.out.println("驱动加载成功!");
        	} catch (Exception e) {
			System.out.println("驱动加载失败!");
			e.printStackTrace();
		}
       	}
        //获得连接对象的方法
	public static  Connection getConnection() {
		try{
		        System.out.println("数据库连接成功");
	        	return DriverManager.getConnection(url, user, password);
		}
		catch(Exception e) {
			System.out.println("数据库连接失败");
			e.printStackTrace();
		}
		return null;
	}
	//释放连接资源
	public static void close(Connection conn, Statement statement,ResultSet result) {

		try {
			if(result!=null) {
				result.close();
				result=null;
			}
			if(statement!= null) {
				 statement.close();
				statement=null;
			}
			if(conn!=null) {
				conn.close();
				conn=null;
			}
		}
		catch(Exception e) {
			e.printStackTrace();
		}
	}
}

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群