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有所帮助!!!😊😊😊  


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
XML Java 数据库连接
性能提升秘籍:如何高效使用Java连接池管理数据库连接
在Java应用中,数据库连接管理至关重要。随着访问量增加,频繁创建和关闭连接会影响性能。为此,Java连接池技术应运而生,如HikariCP。本文通过代码示例介绍如何引入HikariCP依赖、配置连接池参数及使用连接池高效管理数据库连接,提升系统性能。
71 5
|
2月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
171 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
2月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
73 2
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
54 1
|
21天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
47 3
|
21天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
54 3
|
21天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
72 2
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
227 15
|
28天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
1月前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。