jdbc核心类和接口
DriverManager:(作用)
- 将第三方jar包注册到程序中,
- 可以根据数据库连接信息获取connection
Connection:(作用)
- 和数据库建立的连接,在连接对象上,可以多次执行数据库的crud动作,
- 可以获取statement和preparedStatement以及callableStatement对象。
Statement|PreparedStatement|CallableStatement:(作用)
- 具体发送SQL语句到数据库管理软件的对象,
- 不同发送方式稍有不同!preparedStatement是重点
不同Statement的不同:
- Statement:执行静态SQL语句(没有动态值语句),没有条件值(或条件只涉及常数)->整个语句可以写成固定的字符串;
- PreparedStatement:有动态值(预编译SQL路线);
- 执行标准存储过程。
Result:
-
OOP的产物(抽象成数据库的查询结果表)
-
存储DQL查询结果的对象(查询语句返回结果,其他语句返回int类型)
-
需要我们进行解析,获取具体的数据库数据。
jdbc基本使用步骤分析(6步)
-
注册驱动:把依赖的jar包进行安装
-
建立连接connection;
-
创建发送sql语句的对象statement;
-
statement对象发送SQL语句到数据库,并且获取返回结果resultSet;
-
解析结果集;
-
释放资源:砸桥connection,砸车statement,砸箱子resultSet。
java实现基于statement演示查询:
例子:使用statement查询t_user表下的数据
package com.jdbcLearning.statement;
import com.mysql.cj.jdbc.Driver;
import java.sql.*;
/**
*
* introduction:使用statement查询t_user表下的数据
*/
public class StatementQuery {
/**
* TODO:
* DriverManager
* Connection
* Statement
* ResultSet
* @param args
*/
public static void main(String[] args) throws SQLException {
// 1. 注册驱动:把依赖的jar包进行安装
/**
* TODO:
* 注册驱动
* 依赖:驱动版本 8+ com.mysql.cj.jdbc.Driver
* 驱动版本 5+ com.mysql.jdbc.Driver
*
*/
DriverManager.registerDriver(new Driver());
// 2. 建立连接connection;
/**
* TODO:
* 连接要素:
* 数据库ip 127.0.0.1
* db端口号 默认3306
* 账号 root
* 密码
* 连接数据库名称: jdbcTestDb
*/
/**
* para1:url
* jdbc:数据库厂商名://ip:port/数据库名
* jdbc:mysql://127.0.0.1:3306/jdbcTestDb
*
*/
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbcTestDb", "root", "gaoceng3905");
// 3. 创建发送sql语句的对象statement;
Statement statement = connection.createStatement();
// 4. statement对象发送SQL语句到数据库,并且获取返回结果resultSet;
String sql = "select * from t_user";
ResultSet resultSet = statement.executeQuery(sql);
// 5. 解析结果集;
//先看看有没有
while(resultSet.next()){
int id = resultSet.getInt("id");
String account = resultSet.getString("account");
String password = resultSet.getString("password");
String nickname = resultSet.getString("nickname");
System.out.println(id+"--"+account+"--"+password+"--"+nickname);
}
// 6. 释放资源:砸桥connection,砸车statement,砸箱子resultSet。
resultSet.close();
statement.close();
connection.close();
}
}