Java——JDBC连接数据库,并进行数据的增删改查

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 上一篇博文中,向大家介绍了Java——JDBC连接数据库,那么,现在,我们再来谈谈通过JDBC连接数据库之后,对数据的增删改查操作!!!

上一篇博文中,向大家介绍了Java——JDBC连接数据库,那么,现在,我们再来谈谈通过JDBC连接数据库之后,对数据的增删改查操作!!!


1. 数据的查询(SELECT)


import java.sql.*;
public class JDBC {
  public static void main(String[] args) {
    String driver="com.mysql.cj.jdbc.Driver";//数据库驱动类所对应的字符串
    String URL="jdbc:mysql://localhost:3306/school?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";   
    //URL语法格式如下
    //jdbc:mysql:是固定的写法,后面跟主机名localhost,3306是默认的MySQL端口号
    //serverTimezone=UTC是指定时区时间为世界统一时间
    //useUnicode=true是指是否使用Unicode字符集,赋值为true
    //characterEncoding=utf-8是指定字符编码格式为UTF8
    try {
      Class.forName(driver);//加载MySQL数据库驱动    
    }catch(ClassNotFoundException e) {//如果找不到这个类,执行下面的异常处理
      e.printStackTrace();//在命令行打印异常信息在程序中出错的位置及原因
    }
    try {
      Connection conn=DriverManager.getConnection(URL,"root","123123");
      //Connection接口代表Java程序和数据库的连接对象,只有获得该连接对象后,才能访问数据库,并操作数据表
      //DriverManager.getConnection()方法是建立和数据库的连接,并返回表示连接的Connection对象
      Statement state=conn.createStatement();
      //Statement是Java执行数据库操作的一个重要接口,它用于执行静态的SQL语句,并返回一个结果对象
      //Statement接口对象可以通过Connection实例对象的createStatement()方法获得,然后返回数据库的处理结果
      String sql="SELECT stu_name FROM student WHERE stu_sex='女'";    
      ResultSet rs=state.executeQuery(sql);
      //ResultSet接口用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中
      //execute(String sql)用于执行任意的SQL语句
      //executeQuery(String sql)用于执行查询语句,返回ResultSet结果集对象
      //executeUpdate(String sql)主要用于执行DML(数据操作语言)和DDL(数据定义语言)语句
      /*在ResultSet接口内部有一个指向表格数据行的游标(或指针),ResultSet对象初始化时,游标在表格的第一行之前,
          调用next()方法可将游标移动到下一行。如果下一行没有数据,则返回false
          在程序中经常使用next()方法作为while循环的条件来迭代ResultSet结果集*/
      while(rs.next()) {      
        System.out.println(rs.getString(1));//用于获取指定字段的String类型的值,参数1代表字段的索引    
      }//字段的索引是从1开始编号的,这个和数组有所不同
      //每次操作数据库结束后都要关闭数据库连接,释放资源,以重复利用资源
      //通常资源的关闭顺序与打开顺序相反,具体的关闭顺序如下:
      rs.close();
      state.close();
      conn.close();
    }catch(SQLException e) {//处理数据库异常
      e.printStackTrace();//在命令行打印异常信息在程序中出错的位置及原因
    }
  }
}


在这里,我为大家详细的总结了JDBC连接数据库之后,进行数据的查询的代码注释,内容非常详细,如果你想搞懂JDBC连接数据库的一些简单的增删改查操作,一定要认真看上面代码块中的注释,下面的 UPDATE、INSERT、DELETE 和SELECT中的注释都是类似的,没什么区别,就不再给出注解了,精华内容全在以上代码注释中!!!👆👆👆


运行结果如下:  



还有一点要说明的是:在 SELECT 模块中,我使用了 try---catch 语句来捕获并且处理异常,如果你觉得麻烦,可以不这样写,直接按照下面三块代码中的 throwsException 将异常抛出就可以了,有些人可能会发现,你在 SELECT 中处理的不是ClassNotFoundException 和 SQLException 这两个异常吗?为什么抛出异常的时候变成了 Exception,答案其实很简单,Java 中的异常 Exception 其实是一个类,而 ClassNotFoundException 和 SQLException 这两个异常就是 Exception 类的子类,所以抛出了父类,自然就抛出了子类呀!!!


2. 数据的删除(DELETE)


import java.sql.*;
public class JDBC {
  public static void main(String[] args) throws Exception {
    String driver="com.mysql.cj.jdbc.Driver";
    String URL="jdbc:mysql://localhost:3306/school?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
    Class.forName(driver);
    Connection conn=DriverManager.getConnection(URL,"root","123123");
    Statement state=conn.createStatement();
    String sql="DELETE FROM score WHERE stu_id='201805050102'";
    state.executeUpdate(sql);
    state.close();
    conn.close();
  }
}


在这里,我们将score表中,学号为“201805050102”号学生的成绩全部删除。


3. 数据的更新(UPDATE)


import java.sql.*;
public class JDBC {
  public static void main(String[] args) throws Exception {
    String driver="com.mysql.cj.jdbc.Driver";
    String URL="jdbc:mysql://localhost:3306/school?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
    Class.forName(driver);
    Connection conn=DriverManager.getConnection(URL,"root","123123");
    Statement state=conn.createStatement();
    String sql="UPDATE student SET stu_age=20 WHERE stu_sex='女'";
    state.executeUpdate(sql);
    state.close();
    conn.close();
  }
}


在这里,我们将student表中,性别为“女”的学生的年龄全部修改为20。


4. 数据的插入(INSERT)


import java.sql.*;
public class JDBC {
  public static void main(String[] args) throws Exception {
    String driver="com.mysql.cj.jdbc.Driver";
    String URL="jdbc:mysql://localhost:3306/school?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
    Class.forName(driver);
    Connection conn=DriverManager.getConnection(URL,"root","123123");
    Statement state=conn.createStatement();
    String sql="INSERT INTO student VALUES('201805050232','张三','男',20,'软工','信工学院')";
    state.executeUpdate(sql);
    state.close();
    conn.close();
  }
}


在这里,我们在student表中,插入一条数据,相应的字段名对应的值如代码所示。


后面的三个操作,不再给出运行截图了,大家可以通过JDBC连接到数据库之后,在自己数据库的表中进行相应的操作。


那么,以上就是博主对数据增删改查列举的几个简单例子,希望对大家学习数据库和Java有所帮助!!!😊😊😊  


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Java 关系型数据库 数据库连接
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
37 8
|
21天前
|
存储 关系型数据库 MySQL
【Java面试题汇总】MySQL数据库篇(2023版)
聚簇索引和非聚簇索引、索引的底层数据结构、B树和B+树、MySQL为什么不用红黑树而用B+树、数据库引擎有哪些、InnoDB的MVCC、乐观锁和悲观锁、ACID、事务隔离级别、MySQL主从同步、MySQL调优
【Java面试题汇总】MySQL数据库篇(2023版)
|
2月前
|
SQL Java 关系型数据库
探索Java数据库连接的奥秘:JDBC技术全攻略
探索Java数据库连接的奥秘:JDBC技术全攻略
44 8
|
1月前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
37 0
|
5月前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之在使用JDBC连接MySQL数据库时遇到报错,识别不到jdbc了,怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
49 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
2月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
69 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
5月前
|
Java 关系型数据库 MySQL
JDBC实现往MySQL插入百万级数据
JDBC实现往MySQL插入百万级数据
|
2月前
|
前端开发 关系型数据库 MySQL
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别
这篇文章讨论了`com.mysql.jdbc.Driver`和`com.mysql.cj.jdbc.Driver`两个MySQL驱动类的区别,指出`com.mysql.jdbc.Driver`适用于MySQL 5的`mysql-connector-java`版本,而`com.mysql.cj.jdbc.Driver`适用于MySQL 6及以上版本的`mysql-connector-java`。文章还提到了在实际使用中如何根据MySQL版本选择合适的驱动类。
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别
|
2月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
31 6
下一篇
无影云桌面