MySQL<7> JDBC

// 2.和数据库建立连接 建立连接好了之后,就可以进行后续的操作

// 建立连接的意义 是为了验证当前网络通信是否正常

// 如果不正常会抛出 SQLException的异常

// connection 对象的生命周期是较短的,可以每个请求创建一个新的connection对象

Connection connection = dataSource.getConnection();

3.PrepareStatement 对象拼装具体的 SQL 语句

(相当于客户端中输入SQL的过程)

import java.sql.PreparedStatement;

// 3.拼装 SQL 语句

// 需要用到 PrepareStatement 对象

// 先以 插入数据为例

int id = 1;

String name = “花花”;

int classID = 2;

// ? 表示一个占位符,可以把具体的变量替换到 ? 的位置

String sql = “insert into student values(?,?,?)”;

PreparedStatement statement = connection.prepareStatement(sql);

// 此处的 1 2 3 表示第几个问号 (相当于 ? 的下标)

statement.setInt(1,id);

statement.setString(2,name);

statement.setInt(3,classID);

4.拼装好之后,需要执行 SQL

(客户端中敲下回车,此时SQL就被发到服务器了)

// 4.拼装好之后,需要执行 SQL

// insert delete update 都使用 executeUpdate 方法来执行

// select 就是 executeQuery 来执行

// 返回值表示此次操作修改了多少行

int ret = statement.executeUpdate();

5.执行完毕后,关闭释放相关资源

(退出客户端)

// 5.执行完毕后,关闭释放相关资源

// 后创建的被先释放,顺序不能错

statement.close();

connection.close();

补充:

在这里插入图片描述

插入数据:

附全部代码:

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

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class TestJDBC {

public static void main(String[] args) throws SQLException {

// 1.创建 DataSource 对象 (DataSource对象的是生命周期是跟随整个程序的)

DataSource dataSource = new MysqlDataSource();

// 接下来需要针对 DataSource 进行一些配置,以便后边能够正确的访问到 数据库服务器

// 主要配置 3 方面信息: URL,User,Password (需要进行向下转型)

((MysqlDataSource) dataSource).setURL(“jdbc:mysql://127.0.0.1:3306/Date20211028?characterEncoding=utf-8&useSSL=true”);

((MysqlDataSource) dataSource).setUser(“root”);

((MysqlDataSource) dataSource).setPassword(“自己设置的密码”); //密码得输入正确才可执行

// 2.和数据库建立连接 建立连接好了之后,就可以进行后续的操作

// 建立连接的意义 是为了验证当前网络通信是否正常

// 如果不正常会抛出 SQLException的异常

// connection 对象的生命周期是较短的,可以每个请求创建一个新的connection对象

Connection connection = dataSource.getConnection();

// 3.拼装 SQL 语句

// 需要用到 PrepareStatement 对象

// 先以 插入数据为例

int id = 1;

String name = “花花”;

int classID = 2;

// ? 表示一个占位符,可以把具体的变量替换到 ? 的位置

String sql = “insert into student values(?,?,?)”;

PreparedStatement statement = connection.prepareStatement(sql);

// 此处的 1 2 3 表示第几个问号 (相当于 ? 的下标)

statement.setInt(1,id);

statement.setString(2,name);

statement.setInt(3,classID);

System.out.println("statement: " + statement);

// 4.拼装好之后,需要执行 SQL

// insert delete update 都使用 executeUpdate 方法来执行

// select 就是 executeQuery 来执行

// 返回值表示此次操作修改了多少行

int ret = statement.executeUpdate();

System.out.println("ret: " + ret);

// 5.执行完毕后,关闭释放相关资源

// 后创建的被先释放,顺序不能错

statement.close();

connection.close();

}

}

输出结果:

在这里插入图片描述

查看数据库中的结果:

在这里插入图片描述

查询数据:

select 操作示例:

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

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class TestJDBCSelect {

public static void main(String[] args) throws SQLException {

// 1.创建 DataSource 对象

DataSource dataSource = new MysqlDataSource();

// 配置三方面信息

((MysqlDataSource) dataSource).setURL(“jdbc:mysql://127.0.0.1:3306/Date20211028?characterEncoding=utf-8&useSSL=true”);

((MysqlDataSource) dataSource).setUser(“root”);

((MysqlDataSource) dataSource).setPassword(“自己设置的密码”);

// 2.创建 connection 对象,和数据库建立连接

Connection connection = dataSource.getConnection();

// 3.拼装 SQL 语句

String sql = “select * from student”;

PreparedStatement statement = connection.prepareStatement(sql);

// 4.执行 SQL

ResultSet resultSet = statement.executeQuery();

// 5.遍历结果集 遍历过程和迭代器遍历集合类有点像

// 结果集相当于一张表,这个表里有很多行,每一行是一个记录(又包含很多列)

// next: 一方面判定当前是否存在下一行; 另一方面如果存在下一行,就获取到这一行

while(resultSet.next()){

// resultSet 的"光标"指向当前行,就可以把当前行中的的列的数据都获取到

// 当前表中的每一行包含三列: id, name, classID

// 可以根据列名获取对应的列数据

int id = resultSet.getInt(“id”);

String name = resultSet.getString(“name”);

int classID = resultSet.getInt(“classID”);

// 上述三个 参数中的列名必须和 数据库中的列名完全一致

System.out.println("id: " + id + " name: " + name + " classId: " + classID);

}

// 6.执行完毕后,关闭释放相关资源

resultSet.close();

statement.close();

connection.close();

}

}

输出结果:

在这里插入图片描述

删除数据:

删除操作实例:

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

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.Scanner;

public class TestJDBCDelete {

public static void main(String[] args) throws SQLException {

Scanner scan = new Scanner(System.in);

System.out.println("请输入要删除的学生姓名: ");

String name = scan.next();

//1.创建 DataSource 对象

DataSource dataSource = new MysqlDataSource();

((MysqlDataSource) dataSource).setURL(“jdbc:mysql://127.0.0.1:3306/Date20211028?characterEncoding=utf-8&useSSL=true”);

((MysqlDataSource) dataSource).setUser(“root”);

((MysqlDataSource) dataSource).setPassword(“自己设置的密码”);

// 2.创建Connection 对象,和数据库建立连接

Connection connection = dataSource.getConnection();

// 3.拼装SQL

String sql = “delete from student where name = ?”;

PreparedStatement statement = connection.prepareStatement(sql);

statement.setString(1,name);

// 4.执行 SQL

int ret = statement.executeUpdate();

if(ret == 1){

System.out.println(“删除成功!”);

}

else{

System.out.println(“删除失败!”);

}

// 5.关闭并释放资源

statement.close();

connection.close();

}

}

输出结果:

在这里插入图片描述

数据库中检验:

在这里插入图片描述

修改数据:

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

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.Scanner;

public class TestJDBCUpdate {

public static void main(String[] args) throws SQLException {

Scanner scan = new Scanner(System.in);

System.out.println("请输入要修改的学生id: ");

int id = scan.nextInt();

System.out.println("请输入要修改的学生姓名: ");

String name = scan.next();

//1.创建 DataSource 对象

DataSource dataSource = new MysqlDataSource();

((MysqlDataSource) dataSource).setURL(“jdbc:mysql://127.0.0.1:3306/Date20211028?characterEncoding=utf-8&useSSL=true”);

((MysqlDataSource) dataSource).setUser(“root”);

((MysqlDataSource) dataSource).setPassword(“自己设置的密码”);

// 2.创建Connection 对象,和数据库建立连接

Connection connection = dataSource.getConnection();

// 3.拼装SQL

String sql = “update student set name = ? where id = ?”;

PreparedStatement statement = connection.prepareStat1ement(sql);

statement.setString(1,name);

statement.setInt(2,id);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值