JDBC系列:(2.5)创建JDBCUtils工具类
admin
2023-06-06 09:41:47
0


1、建立db.properties文件

url=jdbc:mysql://localhost:3306/testdb
user=root
password=root
driverClass=com.mysql.jdbc.Driver



2、JDBC工具类:JDBCUtil.java

package com.rk.db.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * JDBC的工具类
 * @author RK
 *
 */
public class JDBCUtil
{
	private static final String url;
	private static final String user;
	private static final String password;
	private static final String driverClass;
	
	/**
	 * 静态代码块中(只加载一次)
	 */
	static
	{		
		try
		{
			//读取db.properties文件
			InputStream inStream = JDBCUtil.class.getClassLoader().getResourceAsStream("db.properties");
			
			Properties props = new Properties();
			//加载文件
			props.load(inStream);
			//读取信息
			url = props.getProperty("url");
			user = props.getProperty("user");
			password = props.getProperty("password");
			driverClass = props.getProperty("driverClass");
			
			//注册驱动程序
			Class.forName(driverClass);
		}
		catch (IOException e)
		{
			System.out.println("读取数据库配置文件出错");
			throw new RuntimeException(e);
		}
		catch (ClassNotFoundException e)
		{
			System.out.println("数据库驱程程序注册出错");
			throw new RuntimeException(e);
		}
	}
	
	/**
	 * 获取数据库的连接
	 * @return 数据库连接
	 */
	public static Connection getConnection()
	{
		try
		{
			return DriverManager.getConnection(url,user,password);
		}
		catch (SQLException e)
		{
			System.out.println("获取数据库连接出错");
			throw new RuntimeException(e);
		}		
	}
	
	/**
	 * 关闭Connection、Statement和ResultSet
	 * @param conn 数据库连接
	 * @param stmt	执行SQL语句的命令
	 * @param rs 结果集
	 */
	public static void close(Connection conn,Statement stmt,ResultSet rs)
	{
		closeQuietly(rs);
		closeQuietly(stmt);
		closeQuietly(conn);
	}
	
	/**
	 * 安静的关闭数据库资源
	 * @param ac 实现了AutoCloseable接口的对象
	 */
	public static void closeQuietly(AutoCloseable ac)
	{
		if(ac != null)
		{
			try
			{
				ac.close();
			}
			catch (Exception e)
			{
				e.printStackTrace();
			}
		}
	}
}




相关内容

热门资讯

神舟二十三号发射场区开展全系统... 央广网北京5月23日消息(记者邢斯嘉 张棉棉 王家伟)据中央广播电视总台中国之声《新闻和报纸摘要》报...
雷军余承东预警:手机只会越来越... 快科技5月22日消息,在小米17 Max新品发布会上,小米创办人雷军公开表态,未来两年内存价格还会持...
9项科学实验将上行中国空间站 ... 央视网消息:记者从中国科学院空间应用工程与技术中心了解到,神舟二十三号载人飞船 将携带9项科学实验上...
发射流程进入临射倒计时,神舟二... 5月23日,神舟二十三号载人飞行任务新闻发布会上,发言人介绍,经研究决定,瞄准北京时间5月24日23...
意大利罗马上万人举行反战游行,... 当地时间23日,上万意大利民众在首都罗马走上街头,举行反战抗议示威活动,抗议地区冲突与军备扩张带来的...
孙杨还没明白,公众为什么不溺爱... 随着最新一期《妻子的浪漫旅行》播出,不知多少人共情了被孙杨气哭的张豆豆,猛然发现自己出走半周却还是被...
空调板掰了一下不归位了 如果空调板掰了一下不归位了,你可以尝试以下方法来解决问题:1. 重新调整:再次轻轻掰动空调板,看是否...
美的空调一下制冷一下不制冷 1、如果空调内部的氟利昂过多,再运行一段时间之后,压力过高就会进入保护状态,等到系统凉下来之后又可恢...
空调遥控器摔一下不显示了 原因可能是电池摔错位了,可以重新连接好正负极解决;原因可能是红外灯接触不良,可以维修发射器解决;原因...
空调遥控器摔了一下不显示了怎么... 空调遥控器摔了一下不显示,把电池拿掉,然后按遥控器的按键,使电充分的放完,放置五分钟,然后安装好电池...