• MYSQL——JBDC实现增删改查


     

     💟💟前言

    友友们大家好,我是你们的小王同学😗😗

    今天给大家带来的是MYSQL——JBDC实现增删改查

    希望能给大家带来有用的知识

    觉得小王写的不错的话 麻烦动动小手 点赞👍 收藏⭐  评论📄

    小王的主页:小王同学🚗

    小王的gitee:小王同学🏩

    小王的github:小王同学💦

     

    目录🤶🏼

    API概述🎅🏼

    建立连接🎅🏼

    新增(create)🎅🏼

    代码附上:🎅🏼

     查询(select)🎅🏼

    代码附上:🎅🏼

    更新(update)🎅🏼

    代码附上🎅🏼

     删除(delete)🎅🏼

    代码附上🎅🏼


     小王同学先给大家简单的介绍下咱们的jdbc

    Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

    API概述🎅🏼

    JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现):

    DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。可以产生用以执行SQL的Statement。Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。CallableStatement:用以调用数据库中的存储过程。SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误)。

    数据类型的映射

    建立连接🎅🏼

    建立连接的五大步骤:

    • 加载(注册)数据库
    •  建立链接
    •  执行SQL语句
    •  处理结果集
    • 关闭数据库

    首先小王同学先去公共仓库去下载我们的jdbc driver jar包!~

    👉🏼公共仓库的地址

     

    在搜索栏搜索mysql~

     

     点第一个mysql connector

     

      里面有各种各样的版本 小王同学的mysql是8版本系列的所以也要下载同样版本系列的驱动包~

     

    点击下载jar包 下载解压完 👉🏼 

     右键ctrl c 复制 我们的jar包

    然后打开我们的IDEA

    创建一个jdbc的项目

    创建一个lib文件夹 右键ctrl v  

    然后

     Add as Library 就把我们的jar 包导入进去了!~

    接下来就是最精彩的CRUD辣~

     

     

    我们先在任务管理器创建一个学生表

     接着在IDEA实现 往表里插入一行数据~

    新增(create)🎅🏼

    代码附上:🎅🏼

    1. import com.mysql.cj.jdbc.MysqlDataSource;
    2. import javax.sql.DataSource;
    3. import java.sql.Connection;
    4. import java.sql.PreparedStatement;
    5. import java.sql.SQLException;
    6. import java.util.Scanner;
    7. public class JDBCInsert {
    8. public static void main(String[] args) throws SQLException {
    9. DataSource dataSource=new MysqlDataSource();
    10. // 1. 创建数据源对象. 数据源对象就描述了要访问的数据库是啥, 在哪.
    11. ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/wxz_03?characterEncoding=utf8&useSSL=false");
    12. ((MysqlDataSource)dataSource).setUser("root");
    13. ((MysqlDataSource)dataSource).setPassword("root");
    14. // 2. 让代码和数据库服务器建立连接.
    15. Connection connection=dataSource.getConnection();
    16. // [用户输入] 通过用户输入的数据, 来确定插入的值.
    17. Scanner sc=new Scanner(System.in);
    18. System.out.println("请输入要查找的学号: ");
    19. int id=sc.nextInt();
    20. System.out.println("请输入要查找的姓名: ");
    21. String name=sc.next();
    22. // 3. 构造要执行的 SQL 语句~~ [构造请求]
    23. String sql="insert into student values(?,?)";
    24. PreparedStatement statement = connection.prepareStatement(sql);
    25. statement.setInt(1, id);
    26. statement.setString(2, name);
    27. System.out.println("statement: " + statement);
    28. // 4. 执行 SQL [发送请求 & 读取响应]
    29. // 执行方法, 有两个
    30. // executeUpdate 对应插入删除修改语句. 返回值表示这次 SQL 操作影响到的行数.
    31. // executeQuery 对应查询语句. 返回值则是返回的临时表数据.
    32. int n = statement.executeUpdate();
    33. System.out.println("n = " + n);
    34. // 5. 完成之后, 就需要关闭释放相关资源.
    35. statement.close();
    36. connection.close();
    37. }
    38. }

    插入成功 我们进入cmd 查看一下表里的数据吧~

     

    成功辣~

    接着是我们的查询

     查询(select)🎅🏼

    代码附上:🎅🏼

    1. import com.mysql.cj.jdbc.MysqlDataSource;
    2. import javax.sql.DataSource;
    3. import java.sql.Connection;
    4. import java.sql.PreparedStatement;
    5. import java.sql.ResultSet;
    6. import java.sql.SQLException;
    7. public class JDBCSelect {
    8. public static void main(String[] args) throws SQLException {
    9. // 1. 创建数据源
    10. DataSource dataSource = new MysqlDataSource();
    11. ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/wxz_03?characterEncoding=utf8&useSSL=false");
    12. ((MysqlDataSource)dataSource).setUser("root");
    13. ((MysqlDataSource)dataSource).setPassword("root");
    14. // 2. 建立连接
    15. Connection connection = dataSource.getConnection();
    16. // 3. 构造 SQL
    17. String sql = "select * from student where id = ?";
    18. PreparedStatement statement = connection.prepareStatement(sql);
    19. statement.setInt(1, 1);
    20. // 4. 执行 SQL
    21. // 查询语句要使用 executeQuery 来完成了.
    22. // 返回的结果是 ResultSet . 结果集. 里面是一个 "表" 这样的数据结构.
    23. // 一个表里有很多行, 每一行有很多列~~
    24. ResultSet resultSet = statement.executeQuery();
    25. // 5. 遍历结果集合
    26. while (resultSet.next()) {
    27. // 每次循环, 就能够获取到 resultSet 中的一行. 进一步的就可以拿到每一列!!
    28. // getXXX 也是有一系列方法的. 会根据要取的数据的类型, 来灵活决策.
    29. int id = resultSet.getInt(1);
    30. String name = resultSet.getString(2);
    31. System.out.println("id = " + id + ", name =" + name);
    32. }
    33. // 6. 释放资源
    34. resultSet.close();
    35. statement.close();
    36. connection.close();
    37. }
    38. }

     我们在控制台成功的查询到了前面插入的一条数据~

     接着是更新数据

    更新(update)🎅🏼

    代码附上🎅🏼

    1. import com.mysql.cj.jdbc.MysqlDataSource;
    2. import javax.sql.DataSource;
    3. import java.sql.Connection;
    4. import java.sql.PreparedStatement;
    5. import java.sql.SQLException;
    6. import java.util.Scanner;
    7. // 通过 JDBC 修改数据
    8. public class JDBCUpdate {
    9. public static void main(String[] args) throws SQLException {
    10. // 1. 创建数据源
    11. DataSource dataSource = new MysqlDataSource();
    12. ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/wxz_03?characterEncoding=utf8&useSSL=false");
    13. ((MysqlDataSource)dataSource).setUser("root");
    14. ((MysqlDataSource)dataSource).setPassword("root");
    15. // 2. 建立连接
    16. Connection connection = dataSource.getConnection();
    17. // 3. 构造 SQL
    18. Scanner scanner = new Scanner(System.in);
    19. System.out.println("请输入要修改的同学学号: ");
    20. int id = scanner.nextInt();
    21. System.out.println("请输入要修改的同学姓名: ");
    22. String name = scanner.next();
    23. String sql = "update student set name = ? where id = ?";
    24. PreparedStatement statement = connection.prepareStatement(sql);
    25. statement.setString(1, name);
    26. statement.setInt(2, id);
    27. // 4. 执行 SQL
    28. int n = statement.executeUpdate();
    29. System.out.println("n = " + n);
    30. // 5. 关闭释放资源
    31. statement.close();
    32. connection.close();
    33. }

     我们在控制台查询一下看看更新了没

    果然更新了 我们的update 也成功了 接着是最后的一个delete环节~

     删除(delete)🎅🏼

    代码附上🎅🏼

    1. import com.mysql.cj.jdbc.MysqlDataSource;
    2. import javax.sql.DataSource;
    3. import java.sql.Connection;
    4. import java.sql.PreparedStatement;
    5. import java.sql.SQLException;
    6. import java.util.Scanner;
    7. public class JDBCDelete {
    8. public static void main(String[] args) throws SQLException {
    9. // 1. 创建数据源
    10. DataSource dataSource = new MysqlDataSource();
    11. ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/wxz_03?characterEncoding=utf8&useSSL=false");
    12. ((MysqlDataSource) dataSource).setUser("root");
    13. ((MysqlDataSource) dataSource).setPassword("root");
    14. // 2. 和数据库建立连接
    15. Connection connection = dataSource.getConnection();
    16. // 3. 构造 SQL 语句
    17. Scanner scanner = new Scanner(System.in);
    18. System.out.println("请输入要删除的学号: ");
    19. int id = scanner.nextInt();
    20. String sql = "delete from student where id = ?";
    21. PreparedStatement statement = connection.prepareStatement(sql);
    22. statement.setInt(1, id);
    23. // 4. 执行 SQL
    24. int n = statement.executeUpdate();
    25. System.out.println("n = " + n);
    26. // 5. 释放资源
    27. statement.close();
    28. connection.close();
    29. }
    30. }

    小王同学去控制台看看学号为1的同学删除了没有!

     

     成功辣~~

    以上就是小王同学带给大家的通过jdbc连接IDEA来实现 CRUD 是不是很方便呢

    如果觉得小王同学写的不错的话 麻烦动动小手给个三连(doge)

    码字不易 感谢大家的支持!

     

     

  • 相关阅读:
    内存映射与物理内存结构
    Jenkins Job的Migrate之旅
    女孩姓管取独特的名字大全
    Java并发 | 01.进程与线程概述
    【动手学深度学习PyTorch版】15 池化层
    【毕业设计】远程智能浇花灌溉系统 - stm32 单片机 嵌入式 物联网
    nodejs+vue+elementui高校新闻管理系统
    【毕业设计】基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(毕业论文+程序源码)——村镇旅游网站
    不推荐“溜溜球节食法”的10个理由
    c语言入门---预处理
  • 原文地址:https://blog.csdn.net/weixin_59796310/article/details/126261059