JDBC简单工具类

备注:这是编辑在复习中参照传智播客JDBC章节仿制的JDBCUtils工具类。代码基本相同,仅注释方面比源文件有一定的完善度。

	package utils;
	
	import java.io.FileReader;
	import java.io.IOException;
	import java.net.URL;
	import java.sql.Connection;
	import java.sql.DriverManager;
	import java.sql.ResultSet;
	import java.sql.SQLException;
	import java.sql.Statement;
	import java.util.Properties;
	
	/**
	 * Java连接数据库的快捷工具类
	 * 
	 * @author WanAkiko
	 */
	public class JDBCUtils {

		private static String url;
		private static String user;
		private static String password;
		private static String driver;

		/**
		 * 利用static的特性在类的加载时读取自定义的jdbc.properties配置文件
		 */
		static {
			try {
				// 创建Properties集合类
				Properties pro = new Properties();
				// 创建ClassLoader类加载器
				ClassLoader classLoader = JDBCUtils.class.getClassLoader();
				// 使用getResource()方法自动获取src路径下的配置文件
				URL resource = classLoader.getResource("jdbc.properties");
				// 获取文件的字符串路径
				String path = resource.getPath();
				// 加载资源文件进内存
				pro.load(new FileReader(path));
				// 获取数据并赋值(键与值必须一一对应)
				url = pro.getProperty("url");
				user = pro.getProperty("user");
				password = pro.getProperty("password");
				driver = pro.getProperty("driver");
				// 注册驱动
				Class.forName(driver);
			} catch (IOException e) {
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}

		/**
		 * 获取连接对象
		 * 
		 * @return
		 */
		public static Connection getConnection() throws SQLException {
			return DriverManager.getConnection(url, user, password);
		}

		/**
		 * 执行DML操作时释放资源的close()方法
		 * 
		 * @param sta
		 * @param con
		 */
		public static void close(Statement sta, Connection con) {
			// 关闭规则:先开后关,后开先关
			if (null != sta) {
				try {
					sta.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
	
			if (null != con) {
				try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

		/**
		 * 执行DQL操作时释放资源的close()方法
		 * 
		 * @param rs
		 * @param sta
		 * @param con
		 */
		public static void closeAll(ResultSet rs, Statement sta, Connection con) {
			// 关闭规则:先开后关,后开先关
			if (null != rs) {
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
	
			if (null != sta) {
				try {
					sta.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
	
			if (null != con) {
				try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值