案例09 基于JdbcTemplate的学生信息维护案例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 使用Spring JdbcTemplate实现学生信息的新增、修改、删除、查询单个、查询所有功能,并实现MySQL数据库的操作。

 使用Spring JdbcTemplate实现学生信息的新增、修改、删除、查询单个、查询所有功能,并实现MySQL数据库的操作。

学生信息,有主键、姓名、年龄信息。

1. 数据初始化

    • 创建student数据库
    create database student default charset utf8 collate utf8_general_ci;

    image.gif

      • 创建t_student表
      createtable t_student ( id varchar(32)notnull, name varchar(255), age int);

      image.gif

        • 初始化数据
        insertinto t_student values("1","lucy",19);insertinto t_student values("2","lili",20);

        image.gif

        2. 创建项目

        创建Java项目,项目名称为spring-jdbc。

        3. 导入Spring相关jar包

        spring-jdbc项目下创建lib目录,在lib目录下导入Jar包:

          • 核心包

          spring-core-5.3.25.jar、

          spring-beans-5.3.25.jar、

          spring-context-5.3.25.jar、

          spring-expression-5.3.25.jar

            • AOP包

            spring-aop-5.3.25.jar

              • 数据库包

              spring-jdbc-5.3.25.jar

              spring-tx-5.3.25.jar

              mysql-connector-java-8.0.27.jar

              druid-1.2.8.jar

                • 测试包

                junit-4.6.jar

                  • 依赖包

                  commons-logging-1.2.jar

                  4. 创建Spring配置文件

                  src下创建applicationContext.xml文件。

                  <?xmlversion="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--开启注解--><context:component-scanbase-package="com.wfit"/><!--配置数据源--><beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"><!--mysql驱动--><propertyname="driverClassName"value="com.mysql.cj.jdbc.Driver"/><!--连接数据库的url--><propertyname="url"value="jdbc:mysql://localhost:3306/student"/><!--用户名--><propertyname="username"value="root"/><!--密码--><propertyname="password"value="123456"/></bean><!--配置JdbcTemplate--><beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate"><!--注入dataSource--><propertyname="dataSource"ref="dataSource"/></bean></beans>


                  5. 创建Student实体类

                  src目录下创建com.wfit.entity包,此包目录下目录下创建Student.java类。

                  publicclassStudent {
                  //主键idprivateStringid;
                  //姓名privateStringname;
                  //年龄privateintage;
                  publicStringgetId() {
                  returnid;
                      }
                  publicvoidsetId(Stringid) {
                  this.id=id;
                      }
                  publicStringgetName() {
                  returnname;
                      }
                  publicvoidsetName(Stringname) {
                  this.name=name;
                      }
                  publicintgetAge() {
                  returnage;
                      }
                  publicvoidsetAge(intage) {
                  this.age=age;
                      }
                  @OverridepublicStringtoString() {
                  return"Student{"+"id='"+id+'\''+", name='"+name+'\''+", age="+age+'}';
                      }
                  }


                  6. 创建StudentDao类

                  src目录下创建com.wfit.dao包,此包目录下目录下创建StudentDao.java类。

                  @RepositorypublicclassStudentDao {
                  /*注入jdbcTemplate*/@AutowiredprivateJdbcTemplatejdbcTemplate;
                  /*** 新增* @param student*/publicvoidaddStudent(Studentstudent){
                  Stringsql="insert into t_student values(?,?,?)";
                  Object[] args= {student.getId(), student.getName(), student.getAge()};
                  jdbcTemplate.update(sql,args);
                  System.out.println("新增数据成功!");
                      }
                  /*** 修改* @param student*/publicvoidupdateStudent(Studentstudent){
                  Stringsql="update t_student set name = ?,age = ? where id = ?";
                  Object[] args= {student.getName(),student.getAge(),student.getId()};
                  jdbcTemplate.update(sql,args);
                  System.out.println("修改数据成功!");
                      }
                  /*** 删除* @param id*/publicvoiddelStudent(Stringid){
                  Stringsql="delete from t_student where id = ?";
                  jdbcTemplate.update(sql,id);
                  System.out.println("删除数据成功!");
                      }
                  /*** 查询单个* @param id* @return*/publicStudentqueryStudent(Stringid){
                  Stringsql="select * from t_student where id = ?";
                  Studentstudent=null;
                  try{
                  student=jdbcTemplate.queryForObject(sql,
                  newBeanPropertyRowMapper<Student>(Student.class), id);
                          }catch(Exceptione){
                  System.out.println("查询异常:"+e.getMessage());
                          }
                  returnstudent;
                      }
                  /*** 查询所有* @return*/publicList<Student>queryStudentAll(){
                  Stringsql="select * from t_student";
                  List<Student>studentList=jdbcTemplate.query(sql,
                  newBeanPropertyRowMapper<Student>(Student.class));
                  returnstudentList;
                      }
                  }


                  7. 创建StudentService接口

                  src目录下创建com.wfit.service包,此包目录下创建StudentService.java接口。

                  publicinterfaceStudentService {
                  publicvoidaddStudent(Studentstudent);
                  publicvoidupdateStudent(Studentstudent);
                  publicvoiddelStudent(Stringid);
                  publicStudentqueryStudent(Stringid);
                  publicList<Student>queryStudentAll();
                  }


                  8. 创建StudentServiceImpl类

                  src目录下创建com.wfit.service.impl包,此包目录下创建StudentServiceImpl.java类实现StudentService接口。

                  @ServicepublicclassStudentServiceImplimplementsStudentService {
                  @AutowiredprivateStudentDaostudentDao;
                  /*** 新增* @param student*/@OverridepublicvoidaddStudent(Studentstudent) {
                  studentDao.addStudent(student);
                      }
                  /*** 修改* @param student*/@OverridepublicvoidupdateStudent(Studentstudent) {
                  studentDao.updateStudent(student);
                      }
                  /*** 删除* @param id*/@OverridepublicvoiddelStudent(Stringid) {
                  studentDao.delStudent(id);
                      }
                  /*** 查询单个* @param id* @return*/@OverridepublicStudentqueryStudent(Stringid) {
                  returnstudentDao.queryStudent(id);
                      }
                  /*** 查询所有* @return*/@OverridepublicList<Student>queryStudentAll() {
                  returnstudentDao.queryStudentAll();
                      }
                  }


                  9. 编写测试类

                  src目录下创建com.wfit.test包,此包目录下创建StudentTest.java类。

                  publicclassStudentTest {
                  privateStudentServicestudentService;
                  @Beforepublicvoidinit(){
                  ApplicationContextcontext=newClassPathXmlApplicationContext("applicationContext.xml");
                  studentService=context.getBean("studentServiceImpl", StudentService.class);
                      }
                  /*** 测试新增*/@TestpublicvoidtestAdd(){
                  Studentstudent=newStudent();
                  student.setId("3");
                  student.setName("zhangsan");
                  student.setAge(20);
                  studentService.addStudent(student);
                      }
                  /*** 测试修改*/@TestpublicvoidtestUpdate(){
                  Studentstudent=newStudent();
                  student.setId("3");
                  student.setName("lisi");
                  student.setAge(19);
                  studentService.updateStudent(student);
                      }
                  /*** 测试删除*/@TestpublicvoidtestDel(){
                  Stringid="3";
                  studentService.delStudent("3");
                      }
                  /*** 测试查询*/@TestpublicvoidtestQuery(){
                  Studentstudent=studentService.queryStudent("1");
                  System.out.println(student);
                      }
                  /*** 测试查询所有*/@TestpublicvoidtestQueryAll(){
                  List<Student>studentList=studentService.queryStudentAll();
                  System.out.println(studentList);
                      }
                  }


                  10. 执行结果

                    • 执行testAdd结果



                      • 执行testUpdate结果



                        • 执行testDel结果



                          • 执行testQuery结果


                            • 执行testQueryAll结果



                            相关实践学习
                            如何在云端创建MySQL数据库
                            开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
                            全面了解阿里云能为你做什么
                            阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
                            目录
                            相关文章
                            |
                            4月前
                            |
                            SQL 存储 数据库
                            数据库开发表操作案例的详细解析
                            数据库开发表操作案例的详细解析
                            31 0
                            |
                            4月前
                            |
                            SQL XML Java
                            |
                            11月前
                            |
                            计算机视觉
                            挣值管理案例
                            挣值管理案例。
                            59 1
                            |
                            1月前
                            |
                            SQL 数据库
                            Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
                            这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
                            Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
                            |
                            1月前
                            |
                            XML 数据库 数据格式
                            Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
                            这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
                            Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
                            |
                            3月前
                            |
                            SQL Java 数据库连接
                            Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
                            Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
                            25 0
                            |
                            3月前
                            |
                            SQL 前端开发 API
                            SSMP整合案例第一步 制作分析模块创建与开发业务实体类
                            SSMP整合案例第一步 制作分析模块创建与开发业务实体类
                            22 0
                            |
                            3月前
                            |
                            存储 数据库连接 数据库
                            逆向学习数据库篇:表设计和数据库操作的核心概念与流程
                            逆向学习数据库篇:表设计和数据库操作的核心概念与流程
                            23 0
                            |
                            4月前
                            |
                            小程序 JavaScript Java
                            学生信息|基于Springboot的学生信息管理系统设计与实现(源码+数据库+文档)
                            学生信息|基于Springboot的学生信息管理系统设计与实现(源码+数据库+文档)
                            266 0
                            |
                            4月前
                            |
                            存储 数据可视化 JavaScript
                            基于springboot的精品在线试题库系统设计与实现(程序+数据库+文档)
                            基于springboot的精品在线试题库系统设计与实现(程序+数据库+文档)