MySQL的JDBC的使用

JDBC 标准,在代码中的表现,一组 interface(接口),实现了这些接口的类 Driver (驱动)
MySQL相关驱动
Jar 包,是一个zip压缩包,按一定的标准管理起来的一组类文件(*.class)

搭建实用JDBC环境的步骤
1.在根目录下新建 lib 目录
在这里插入图片描述
2.把 mysql-jdbc 的 jar 包复制到 lib 目录;
在这里插入图片描述
3.选择 File 下的 Project Structure

在这里插入图片描述
4.选择 libraries 下的 + ,然后点击 Java
在这里插入图片描述
5.选择新建的 lib 目录,继续点OK
在这里插入图片描述
**目的:**让 IDER(javac/java) 可以找到 MySQL-Driver 的类文件(*.class)

**验证:**这些类在代码中是否可以正常导入:

import com.mysql.jdbc.Driver

IDEA 没有报错,表示配置环境正确

代码演示 JDBC 的套路

准备工作:
在 MySQL 上手动建立一个数据库 java20_0210:

create database java20_0210;
use java20_0210;
select database();

建立一个测试用表:

create table users(
id INT, name VARCHAR(255)
);

通过JDBC 进行 mysql 连接:

JDBC里面提供了两套 API :

  1. DriverManager
  2. DataSource

步骤:

  1. 注册驱动
    (JDBC-Driver)Class.forName(“com.mysql.jdbc.Driver”);

2.获取一条 MySQL 的网络连接对象(TCP 连接)
a) 配置连接 URL(一般大家需要修改的,只有默认数据库)

在这里插入图片描述
在这里插入图片描述

3. 通过连接获取一条语句对象(每个 statement 对象只能用于一条语句)

import java.sql.Statement;

Statement statement = connection.createStatement();
方法一:
```java
import java.sql.Connection;

String "jdbc:mysql://127.0.0.1:3306/java20_0210?useSSL=false&characterEncoding=utf8";
String user = "root";	//连接 mysql 的用户名
String passwd = "";	//连接 mysql 的密码
Connection connection = DriverManager.getConnection(
	url,user,password);



方法二:

```java
package com.edu.Test0531;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;

public class TestJDBC {
    public static void main(String[] args) {
        //1.创建DataSource对象
        DataSource dataSource = new MysqlDataSource();
        //接下来需要针对 DataSource 进行一些配置,以便方便以后能够顺利的访问到数据库服务器

        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java_0531?characterEncoding=utf-8&useSSL=true");
    }
}

在这里插入图片描述

注意:
建立连接(Connection),不能写作建立链接(Link)。

4.执行具体的 增/删/查/改操作

Insert 增

Statement statement = connection.creatrStatement();
String sql = "INSERT INTO users(id,name)VALUES(1,'XXX')";
statement.executeUpdata(sql);	//通过 statement 对象来执行 SQL 语句

Update 改

  1. 创建DataSource 对象
  2. 创建 Connection 对象
Statement statement = connection.createStatement();
String sql = "INSERT INTO users(id,name)VALUES(1,'YYY')";
statement.executeUpdata(sql);

Delete 删

Statement statement = connection.createStatement();
String sql = "Delect FROM users WHERE id = 1";
statement.executeUpdata(sql);

Select 查

1.需要拿到结果集对象
2.从结果集对象中遍历获取数据
rs.next() 会让结果集中的游标下移一行,返回 ture ,表示游标当前行有数据,返回 false ,表示游标已经超过结果范围了
3.销毁结果对象
注意:列的下标不是从 0 开始的

Statement statement = connection.createStatement();
String sql = "SELECT id,name FROM users";
ResultSet resultSet = statement.executeQuery(sql);
List<String>nameList = new ArryList<>();
while(resultSet.next()){
/*
需要不同类型,调用不同方法
int r = resultSet.getInt();
long r = resultSet.getLong();
String r = resultSet.getString();
*/

/*
int id = resultSet.getInt(1);	//下标是1开始,从0
int id = resultSet.getINT("id");//通过字段名称获取
*/

int id = resultSet.getInt(1);
String name = resultSet.getString("name");
//结果集马上需要销毁,所以通过 List 保存结果
nameList.add(name);
System.out.println(id + "," + name);
}

5.销毁

resultSet.close();
statement.close();

总结:
1.注册 Driver
2.获取 Connection 对象
3.获取 Statement 对象
4.执行 CRUD sql(Select 有点特殊,有个结果集问题)
1)Insert/Update/Delete executeUpdate (建议)
2)Select executeQuery (建议)
5.销毁资源(反向顺序)

注意:
Driver 注册只需要一次
Connection 一般也只需要一次(特殊情况下多个连接)
可以获取多个 Statement
每个 Statement 只能执行一条 SQL

检测:
在 cmd 上输入:

Select * FROM users;   //查看表数据

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章