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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 使用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结果



                            相关实践学习
                            基于CentOS快速搭建LAMP环境
                            本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
                            全面了解阿里云能为你做什么
                            阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
                            目录
                            相关文章
                            |
                            13天前
                            |
                            SQL 存储 数据库
                            数据库开发表操作案例的详细解析
                            数据库开发表操作案例的详细解析
                            7 0
                            |
                            6月前
                            |
                            XML 开发框架 前端开发
                            J2EE之自定义框架知识(下篇 综合运用增删改查)
                            J2EE之自定义框架知识(下篇 综合运用增删改查)
                            40 0
                            |
                            9月前
                            |
                            Java Spring
                            Spring Boot入门 (十九) 之 CURD实验 员工列表的公共页抽取 以及公共代码的抽取
                            Spring Boot入门 (十九) 之 CURD实验 员工列表的公共页抽取 以及公共代码的抽取
                            |
                            10月前
                            |
                            SQL XML Java
                            项目实战典型案例27——单表的更新接口有9个之多
                            项目实战典型案例27——单表的更新接口有9个之多
                            62 0
                            |
                            10月前
                            |
                            SQL Java 关系型数据库
                            【项目实战典型案例】27.单表的11个Update接口--MyBatis
                            【项目实战典型案例】27.单表的11个Update接口--MyBatis
                            |
                            SQL Java 数据库连接
                            Spring学习(九):JdbcTemplate操作数据库实现增加功能
                            Spring学习(九):JdbcTemplate操作数据库实现增加功能
                            Spring学习(九):JdbcTemplate操作数据库实现增加功能
                            |
                            前端开发 JavaScript Java
                            JavaWeb之用户信息综合案例
                            JavaWeb之用户信息综合案例
                            JavaWeb之用户信息综合案例
                            |
                            SQL Java 数据库连接
                            《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
                            《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
                            84 0
                            《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
                            |
                            数据库
                            9_数据的增删改查(重点)
                            9_数据的增删改查(重点)
                            67 0
                            |
                            Java 数据库连接 数据库
                            【SSM框架】测试 修改.删除.查询功能
                            1.创建sqlSession工具类 2.测试修改功能 3.测试删除功能 4.测试查询功能
                            【SSM框架】测试 修改.删除.查询功能