JDBCUtils工具类的封装

package com.lin.jdbc_01;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
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;



/*
 * 封装工具类
 * 	 对注册驱动,获取数据库连接对象的参数进行优化
 * 				(存储到配置文件jdbc.properties)
 *  释放资源封装功能,获取连接对象定义一个功能
 * 
 * 
 * */


public class JDBCUtils {  //加载该类的时候,同时读取配置文件,以及获取内容,注册驱动!
	//定义几个静态变量
	private static String url = null ;
	private static String user = null;
	private static String password = null ;
	private static String driver = null ;
	//构造方法私有化
		private JDBCUtils() {	
		}
		
	//构造一个静态代码块
	static {
		try {
			//创建一个属性集合类对象:
			Properties prop = new Properties() ;
			
			//获取当前类字节码文件对象,同时它的类加载器
			ClassLoader classLoader = JDBCUtils.class.getClassLoader() ;
			
			//方式1:获取URL对象:资源地址对象
			//URL URLPath = classLoader.getResource("jdbc.properties") ;
			//获取路径:绝对路径
			//String path = URLPath.getPath() ;
			//System.out.println(path);///D:/JavaEE2005_workspace/Jbdc_02/bin/jdbc.properties
			
			//需要将配置文件内容加到属性列表中
			//prop.load(new FileReader(path));
			
			
			//方式2:
			InputStream inputStream = classLoader.getResourceAsStream("jdbc.properties") ;
			//将配置文件加载到属性列表中
			prop.load(inputStream);
			
			//获取里面的value:getProperty(String key)---->value
			url = prop.getProperty("url") ;
			user = prop.getProperty("user") ;
			password = prop.getProperty("password") ;
			driver = prop.getProperty("driver") ;
			
			//注册驱动
			Class.forName(driver) ;
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	//封装一个功能:获取连接对象
	public static Connection getConnection(){
		try {
			Connection conn = DriverManager.getConnection(url, user, password) ;
			return conn ;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return null ;	
	}
	
	//释放资源的方法:DQL
	public static void close(ResultSet rs,Statement stmt,Connection conn) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	//DML,DDL
	public static void close(Statement stmt,Connection conn) {
		close(null, stmt, conn);
	}
	
	
	//
	public static void main(String[] args) {
		Connection conn = JDBCUtils.getConnection() ;
		System.out.println(conn);//com.mysql.jdbc.JDBC4Connection@7a07c5b4
	}
		
	
}

 url=jdbc:mysql://localhost:3306/mydb_02
user=root
password=123456
driver=com.mysql.jdbc.Driver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值