spring boot 系列之三:spring boot 整合JdbcTemplate

前面两篇文章我们讲了两件事情:这篇文章我们来看下怎么通过JdbcTemplate进行数据的持久化。废话不多说,直接上干货。一、代码实现packagecom.study.entity;pub

大家好,又见面了,我是全栈君。

前面两篇文章我们讲了两件事情:

  1. 通过一个简单实例进行spring boot 入门
  2. 修改spring boot 默认的服务端口号和默认context path

这篇文章我们来看下怎么通过JdbcTemplate进行数据的持久化。

废话不多说,直接上干货。

一、代码实现

  1. 修改pom文件,引入相关依赖
    <!-- 引入jdbc 依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <!-- 引入 mysql 数据库连接依赖-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>

  2. 配置数据库信息,在application.properties中添加如下内容:
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/test
    spring.datasource.username=root
    spring.datasource.password=root

  3. 创建实体类并创建数据库
    1. 实体类
      spring boot 系列之三:spring boot 整合JdbcTemplate
      spring boot 系列之三:spring boot 整合JdbcTemplate

      package com.study.entity;
      
      public class User {
      
          private Integer id;
          private String userName;
          private String password;
      
          public Integer getId() {
              return id;
          }
      
          public void setId(Integer id) {
              this.id = id;
          }
      
          public String getUserName() {
              return userName;
          }
      
          public void setUserName(String userName) {
              this.userName = userName;
          }
      
          public String getPassword() {
              return password;
          }
      
          public void setPassword(String password) {
              this.password = password;
          }
      
      }

      View Code

    2. 数据库
      1. spring boot 系列之三:spring boot 整合JdbcTemplate
  4. 实现dao层
    @Repositorypublic class UserDao {    @Autowired    JdbcTemplate jdbcTemplate;    public void save(User user) {        String sql = "insert into t_user(user_name, password) values(?,?)";        jdbcTemplate.update(sql, user.getUserName(), user.getPassword());    }}

  5. 实现service层
    1. 接口
      public interface UserService {
      
          public void save(User user);
      }

    2. 实现类
      @Service
      public class UserServiceImpl implements UserService {
      
          @Autowired
          UserDao userDao;
          
          public void save(User user){
              userDao.save(user);
          }
          
      }

  6. 实现controller层
    @RestController
    public class UserController {
        @Autowired
        UserService service;
    
        @RequestMapping("/saveUser")
        public String saveUser(User user) {
    
            service.save(user);
            return "save user successful";
        }
    }

  7. 测试
    1. 页面正确返回信息spring boot 系列之三:spring boot 整合JdbcTemplate
    2. 数据库正确保存spring boot 系列之三:spring boot 整合JdbcTemplate

二、总结

由此我们发现,spring boot 只是简化了xml的配置麻烦,并没有减少我们java代码的编写量。

spring boot 不是spring 功能的增强,而是提供了一种快速使用spring 的方式:开箱即用,没有代码生成,也无需XML配置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120914.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月16日 上午7:00
下一篇 2022年2月16日 上午7:00


相关推荐

  • 别让你的敏感词过滤系统把正常的文字过滤了!

    别让你的敏感词过滤系统把正常的文字过滤了!昨天csdn上发了一段文字评论(绝对非常规矩的文字),结果提示有敏感词,然后直接把我的博客和谐掉了。访问博客时提示:我们不去探讨过滤所谓敏感词的必要性和意义。既然做了这个系统,就要保证过滤质量,该过滤的过滤,不该过滤的词汇就不要过滤。如下这段话,作者实在没看出那里有不和谐因素。请读者指教啊:PS:会不会因为发了这篇文章博客再次被关闭啊!补充:经

    2022年5月10日
    38
  • java 中鼠标事件_Java中的鼠标事件

    java 中鼠标事件_Java中的鼠标事件任何组件上都可以发生鼠标事件 如 鼠标进进组件 退出组件 在组件上方单击鼠标 拖动鼠标等都发生鼠标事件 也就是说 组件可以成为发生鼠标事件的事件源 1 使用 MouseListene 接口处理鼠标事件使用 MouseListene 接口可以处理 5 种操纵发生的鼠标事件 1 在事件源上按下鼠标键 mousePressed MouseEvent 2 在事件源上开释鼠标键 mouseRelease M

    2026年3月17日
    2
  • 科大讯飞离线语音命令词识别的使用说明

    科大讯飞离线语音命令词识别的使用说明

    2026年3月14日
    4
  • 能向入口函数传入多个参数的 QueueUserWorkItem

    能向入口函数传入多个参数的 QueueUserWorkItem不啰嗦了,花一周时间也没赶上std::async和std::thread的设计,标准库的设计真的,很优秀。我记下这段时间里做了什么;这里包含了把函数拆成两步调用的方法,第一步传参,第二步执行;SplitInvoke;如果我能把第一步放到A线程,第二步放到B线程,就能解决std::thread潜在的两次拷贝和对象(Windows的窗口对象等)绑定到线程问题,就能制造一个优于std::…

    2026年3月6日
    5
  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月29日
    8
  • layui的layer弹出层和form表单

    layui的layer弹出层和form表单文章目录弹出层layerform表单增删改查所有代码如果想用layui来完成增删改查,那么要会用弹出层和form表单这两个组件是必须的,所以今天就来介绍一些如何用layui完成基本的增删改查弹出层layer因为layui的特性,每次不管使用哪个组件,都要先把它的模块加载出来比如我要用layer和form那么就需要先这样定义,你的操作都是在这个里面进行,当然页可以一次性加载所有模块,详情…

    2022年7月13日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号