一、JDBC的工作原理
JDBC仅为一个接口(规则),由各个数据库厂商进行实现(即JDBC驱动)
二、JDBC 核心API简介
JDBC API的主要功能:与数据库建立连接、执行SQL 语句、处理结果和释放资源
三、JDBC的开发步骤
-
加载驱动 Class.forName()
-
链接数据库 Connection
-
预处理SQL语句 PreparedStatement
-
执行,并返回结果 resultSet
-
释放资源 close()
Connection con = null; Statement stmt = null; ResultSet rs = null; try { //1.加载驱动 Class.forName(“JDBC驱动类”); //2.获取Connection 连接对象 con=DriverManager.getConnection(URL,数据库用户名,密码); //3.创建Statement对象,执行SQL语句 stmt = con.createStatement(); //4.返回ResultSet并查询结果 rs = stmt.executeQuery(“SELECT a, b, c FROM table1;”); while (rs.next()) { //每次读取一行,并打印读取结果 } }catch(Exception e){ e.printStackTrace(); }finally{ //5.释放资源 try {if(rs != null) rs.close(); if(stmt != null) stmt.close(); if(con != null) con.close(); } catch(SQLException e) { //异常处理 } }
Connection接口的常用方法
ResultSet接口的常用方法
[
例子:
package com.school;
import java.sql.*;
/**
* @authorDesc
* @author
* @date 2022-09-06 15:55:49
* @version
* @description 数据库工具类
*/
public class MysqlUtil {
/**
* 数据库链接地址
*/
private static final String URL = "jdbc:mysql://127.0.0.1:3306/MYSCHOOL";
/**
* 数据库用户名
*/
private static final String USERNAME= "root";
/**
* 数据库密码
*/
private static final String PASSWORD = "123456";
/**
* 数据库链接
*/
private static Connection connection = null;
/**
* 数据库语句执行
*/
private static Statement statement = null;
/**
* 数据库查询结果
*/
private static ResultSet resultSet = null;
/**
* @description 数据库建立链接
* @author
* @date 2022-09-06 16:14:10
* @param
* @return
*/
public static void start() throws ClassNotFoundException, SQLException {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 链接数据库
connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
}
/**
* @description 数据库查询语句
* @author
* @date 2022-09-06 16:17:25
* @param sql 数据库查询语句
* @return {@link ResultSet} 查询结果
*/
public static ResultSet select(String sql) throws SQLException {
// 发送SQL语句并执行
statement = connection.createStatement();
// 返回结果
resultSet = statement.executeQuery(sql);
return resultSet;
}
/**
* @description 关闭数据库
* @author
* @date 2022-09-06 16:14:46
* @param
* @return
*/
public static void close(){
try {
if (resultSet != null){
resultSet.close();
resultSet = null;
}
if (statement != null){
statement.close();
statement = null;
}
if (connection != null){
connection.close();
connection = null;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
package com.school;
import java.sql.*;
/**
* @authorDesc
* @author
* @date 2022-09-06 15:55:49
* @version
* @description 数据库工具类
*/
public class MysqlUtil {
/**
* 数据库链接地址
*/
private static final String URL = "jdbc:mysql://127.0.0.1:3306/MYSCHOOL";
/**
* 数据库用户名
*/
private static final String USERNAME= "root";
/**
* 数据库密码
*/
private static final String PASSWORD = "123456";
/**
* 数据库链接
*/
private static Connection connection = null;
/**
* 数据库语句执行
*/
private static Statement statement = null;
/**
* 数据库查询结果
*/
private static ResultSet resultSet = null;
/**
* @description 数据库建立链接
* @author
* @date 2022-09-06 16:14:10
* @param
* @return
*/
public static void start() throws ClassNotFoundException, SQLException {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 链接数据库
connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
}
/**
* @description 数据库查询语句
* @author
* @date 2022-09-06 16:17:25
* @param sql 数据库查询语句
* @return {@link ResultSet} 查询结果
*/
public static ResultSet select(String sql) throws SQLException {
// 发送SQL语句并执行
statement = connection.createStatement();
// 返回结果
resultSet = statement.executeQuery(sql);
return resultSet;
}
/**
* @description 关闭数据库
* @author
* @date 2022-09-06 16:14:46
* @param
* @return
*/
public static void close(){
try {
if (resultSet != null){
resultSet.close();
resultSet = null;
}
if (statement != null){
statement.close();
statement = null;
}
if (connection != null){
connection.close();
connection = null;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}