使用 JDBC API 操作数据库
1、加载和注册驱动
2、获取数据库连接
3、准备操作执行 SQL 的 Statement 对象
4、执行 SQL
(1)调用 Statement 对象的 executeUpdate(String sql)执行 SQL 语句进行插入、修改、删除操作
(2)调用 Statement 对象的 executeQuery(String sql)执行 SQL 语句进行查询操作
5、处理执行结果
(1)CUD 操作,根据返回的 int 值判断结果
(2)查询操作,根据返回 ResultSet 结果集,获取查询数据 6、释放资源 总结:
(1)加载和注册驱动,整个项目做一次即可
(2)获取数据库连接可以封装到一个方法中
(3)释放资源可以封装到一个方法中
编写工具类示例:
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); } }