尚硅谷之JDBC

第3章 JDBC工具类

3.1使用JDBC API操作数据库的基本步骤

分析使用JDBC API操作数据库,进行CRUD基本步骤都相似。

  • 加载和注册驱动
  • 获取数据库连接
  • 准备操作执行SQL的Statement对象
  • 执行SQL
  • 调用Statement对象的executeUpdate(String sql)执行SQL语句进行插入、修改、删除操作
  • 调用Statement对象的executeQuery(String sql)执行SQL语句进行查询操作
  • 处理执行结果
  • CUD操作,根据返回的int值判断结果
  • 查询操作,根据返回ResultSet结果集,获取查询数据
  • 释放资源

总结:

  • 加载和注册驱动,整个项目做一次即可
  • 获取数据库连接可以封装到一个方法中
  • 释放资源可以封装到一个方法中

3.2编写工具类JDBCUtils

package com.atguigu.utils;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Properties;

/*

 * 工具类:

 * 1、注册驱动:只要运行一次

 * 2、获取连接

 * 3、关闭资源

 */

public class JDBCUtils {

private static String drivername;

private static String url;

private static String user;

private static String password;

private static Properties pro = new Properties();

static{

try {

//加载,读取jdbc.properties配置的信息

//pro.load的作用是把jdbc.properties文件中配置的信息,一一put到pro这个map中

pro.load(ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties"));

// drivername = pro.getProperty("key")

drivername = pro.getProperty("drivername");

url = pro.getProperty("url");

user = pro.getProperty("user");

password = pro.getProperty("password");

//注册驱动,加载驱动

Class.forName(drivername);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

public static Connection getConnection()throws SQLException{

Connection conn = DriverManager.getConnection(url, user, password);

return conn;

}

public static void closeQuietly(Connection conn){

try {

if(conn!=null){

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public static void closeQuietly(Statement st){

try {

if(st!=null){

st.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public static void closeQuietly(ResultSet rs){

try {

if(rs!=null){

rs.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public static void closeQuietly(Statement st,Connection conn){

closeQuietly(st);

closeQuietly(conn);

}

public static void closeQuietly(ResultSet rs,Statement st,Connection conn){

closeQuietly(rs);

closeQuietly(st);

closeQuietly(conn);

}

}