JDBC与MySQL

JDBCUtil


JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成
---------来自百度百科


为了避免每次操作数据库都需要写很多代码,可以考虑为每个数据库提供一个工具类,后面直接调用即可

如下为JDBC连接MySQL的步骤:
1.导入连接器的包,可以在MySQL的官网上下载到相应的包,我这里用的是:

mysql-connector-java-5.1.7-bin.jar

2.使用配置文件获取连接对象:
2.1在src文件夹下创建配置文件properties:

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/test  //"test"表示正在使用的数据库的名字为test
name=root  
password=root  //自己设置的用户名和密码

2.2在工具类的代码中创建properties的对象,并使用类加载器去读取src下的properties文件

public class JDBCUtil {
	//在这里静态构建变量是因为后面创建连接对象的时候会用到
	static String driverClass = null;
	static String url = null;
	static String name = null;
	static String password= null;
	
	static{
		try {
			//1. 创建一个属性配置对象
			Properties properties = new Properties();
			//在java工程中可以直接文件输入流来读取这个properties,但是web工程中不行(两者相对路径的定义不一样)
			//InputStream is = new FileInputStream("jdbc.properties");
			
			//使用类加载器,去读取src底下的资源文件。 后面在servlet
			InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
			//导入输入流。
			properties.load(is);
			
			//读取属性
			driverClass = properties.getProperty("driverClass");
			url = properties.getProperty("url");
			name = properties.getProperty("name");
			password = properties.getProperty("password");
			
		} catch (Exception e) {
			e.printStackTrace();
		}

2.3获取连接对象

	public static Connection getConn(){
		Connection conn = null;
		try {
			Class.forName(driverClass);
			//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
			//建立连接 参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。
			conn = DriverManager.getConnection(url, name, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}

3.释放资源:

//释放资源两种方法,调用的时候根据参数不同方法重载
public static void release(Connection conn , Statement st , ResultSet rs){
		closeRs(rs);
		closeSt(st);
		closeConn(conn);
	}
	public static void release(Connection conn , Statement st){
		closeSt(st);
		closeConn(conn);
	}

	
	private static void closeRs(ResultSet rs){
		try {
			if(rs != null){
				rs.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			rs = null;
		}
	}
	
	private static void closeSt(Statement st){
		try {
			if(st != null){
				st.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			st = null;
		}
	}
	
	private static void closeConn(Connection conn){
		try {
			if(conn != null){
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			conn = null;
		}
	}

在正常使用过程中一般步骤为:
通过自定义的JDBCUtil包来创建连接对象->创建PreparedStatement对象,并处理sql语句->视情况将执行sql语句后的返回值做处理->用完立即关闭资源.

这里有几个易出错的点:

  1. 情况分web工程和java工程;web工程中导入jar包是直接导入在WebContent->WEB-INF->lib下面的,这种情况不需要buildPath; 但是在java工程中需要导包至src文件夹下的lib文件夹中,并手动buildPath.
  2. 使用properties加载自定义配置文件的时候文件路径的问题,在这里推荐使用类加载器classloader.

以上内容纯属学习心得,如有误解,还望大神们帮纠正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值