Loading

Java-JDBC配置和使用

下载 JDBC Jar包

Mysql JDBC 地址:https://dev.mysql.com/downloads/connector/j/

  • 选择 Platform Independent 下载并解压得到 .jar 包,放入自己 Jar 文件夹中
    image

将 Jar 库导入到 Idea

image

注册驱动并获取连接

从JBC3开始,目前已经普遍使用的版本。可以不用注册驱动而直接使用。
Class.forName这句话可以省略。

// 注册驱动 从JDBC3开始这步可以省略
// mysql8 需要cj包中的驱动
Class.forName("com.mysql.cj.jdbc.Driver");

获得连接

  • Connection 接口,代表一个连接对像具体的实现类由数据库的厂商实现。
  • 使用 DriverManage r类的静态方法 getConnection() 可以获取数据库的连接。
    | 获取连接的静态方法 | 说明 |
    | ------------------------------------------------------------ | ----------------------------------------------- |
    | Connection getConnection(String url, String user, String password) | 通过连接字符串和用户名,密码来获取数据库连接对象 |
  1. getConnection 方法 3 个连接参数说明
    | 连接参数 | 说明 |
    | -------- | ----------------------------------------------------- |
    | user | 登录用户名 |
    | password | 登录密码 |
    | url | mySql URL的格式
    jdbc: mysql: //localhost: 3306/db4 |

  2. JDBC URl 详细说明

jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8
  • JDBC规定ur的格式由三部分组成,每个部分中间使用冒号分隔。
    • 第一部分是协议jdbc<这是固定的;
    • 第二部分是子协议,就是数据库名称,连接mysq数据库,第二部分当然是 mysql了
    • 第三部分是由数据库厂商规定的,我们需要了解每个数据库厂商的要求,mysq的第三部分分别 由数据库服务器的IP地址( localhost)、端口号(3306),以及要使用的数据库名称组成。
  1. 获取连接 Connection 对象
// 获取连接 connection 连接对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8","root","000");
System.out.println(connection);

获取语句执行对象 Statement

  • Statement:代表一条语句对象,用于发送SQL语句给服务器,用于执行静态SQL句并返回它所生成结果的对象。

Statement 类常用方法

方法声明 说明
executeUpdate(String sql) 执行 insert update delete语句返回nt类型代表受影响的行数
ResultSet executeQuery(String sql); 执行 select 语句,返回 Resultset 结果集对象

代码示例

// 获取 statement 对象
statement = connection.createStatement();

// 通过 Statement 对象的 executeUpdate 方法创建一张表
String sql = "create table test(id int,name varchar(10),age int);";
// int count = statement.executeUpdate(sql); // 受影响行数 0
// System.out.println(count);

sql = "select * from test";
// 执行查询操作  ResultSet是结果集对象
ResultSet resultSet = statement.executeQuery(sql);

ResultSet 结果集对象

作用:封装数据库查询的结果对结果集进行遍历,取出每一条记录。

常用方法 说明
boolean next() 1)游标向下一行
2)返回 boolean类型,如果还有下一条记录,返回true,否则返回 false
xxx getXxx( String or int) 1)通过列名,参数是 String类型。返回不同的类型
2)通过列号,参数是整数,从1开始。返回不同的类型
  • 处理结果集
String sql = "select * from test";
// 执行查询操作  ResultSet是结果集对象
resultSet = statement.executeQuery(sql);
// resultSet.next() 获取下一条结果集
while (resultSet.next()) {
    System.out.println(resultSet.getString("name"));
}

预处理对象

PreparedStatement 接口介绍

  • PreparedStatement是 Statement 接口的子接口,继承于父接口中所有的方法。它是一个预编译的SQL语句对象
  • 预编译:是指SαL语句被预编译并存储在 PreparedStatement对象中。然后可以使用此对象多次髙效地执行该语句。

Preparedstatement 特点

  • 因为有预先编译的功能,提高SQL的执行效率。
  • 可以有效的防止SQL注入的问题,安全性更高

获取 Preparedstatemen对象

  • 通过 Connection创建 PreparedStatemen对象
    | Connection中的方法 | 说明 |
    | ----------------------------------------------- | ------------------------------------------------------------ |
    | PreparedStatement prepare Statement(String sql) | 指定预编译的SQL语句,
    SQL语句中使用占位符?创建一个语句对象 |

事物

  • 我们使用 Connection中的方法实现事务管理
    | 方法 | 说明 |
    | -------------------------------------- | ------------------------------------------------------------ |
    | void setAutoCommit(boolean autoCommit) | 参数是true或fase如果设置为fase,表示关闭自动提交,相当于开启事务 |
    | void commit() | 提交事务 |
    | void rollback() | 回滚事务 |
posted @ 2021-09-14 17:36  白日醒梦  阅读(138)  评论(0编辑  收藏  举报