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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js获取当前年月日时分秒_js获取当前系统时间年月日

    js获取当前年月日时分秒_js获取当前系统时间年月日vardate=newDate();date.getYear();//获取当前年份(2位)date.getFullYear();//获取完整的年份(4位)date.getMonth();//获取当前月份(0-11,0代表1月)date.getDate();//获取当前日(1-31)date.getDay();//获取当前星期X(0-6,0代表星期天)date.getT…

    2022年9月24日
    4
  • 如何制作一个简单的HTML登录页面(附代码)

    如何制作一个简单的HTML登录页面(附代码)几乎每个网站都会有登录页面,那你知道如何写HTML登录页面吗?这篇文章就和大家分享一个HTML简单登录界面的代码,有一定的参考价值,感兴趣的朋友可以看看。实例:制作一个HTML登录页面,包含邮箱,登录密码,立即注册,忘记密码等,代码如下:HTML部分:<divclass=”dowebok”><divclass=”logo”></div><divclass=”form-item”><inputid=”username”t

    2022年6月13日
    34
  • ArrayList扩容机制以及线程安全性

    ArrayList扩容机制以及线程安全性List扩容实现步骤总的来说就是分两步:1、扩容​ 把原来的数组复制到另一个内存空间更大的数组中2、添加元素​ 把新元素添加到扩容以后的数组中性能分析ArrayList作为动态数组,其内部元素以数组形式顺序存储的,所以非常适合随机访问的场合。除了尾部插入和删除元素,往往性能会相对较差,比如我们在中间位置插入一个元素,需要移动后续所有元素。源码分析先把ArrayList中定义的…

    2022年6月12日
    41
  • c语言中cstring头文件不能用,因为cstring头文件里面有一个神器 strstr「建议收藏」

    c语言中cstring头文件不能用,因为cstring头文件里面有一个神器 strstr「建议收藏」Output32GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATAGATACTAGATA…

    2025年11月7日
    5
  • 虚拟 显示器_win7检测不到第二个显示器

    虚拟 显示器_win7检测不到第二个显示器这里写自定义目录标题虚拟显示器概述虚拟显示器原理方案虚拟显示器概述最近因工作需要,需要在物理显卡上虚拟出一个显示器,我是用的操作系统是win7,查询了下官方文档和网络资源,没有现成的框架,所以需要自己研究如何一步步实现。虚拟显示器用途挺多的,我们其实在一些场景中有用到过,比如displaylink,我们网上买的一些USB转HDMI的连接线,在使用过程中我们需要安装displaylink的驱…

    2022年8月21日
    10
  • arrayqueue源码_thinkphp源码分析

    arrayqueue源码_thinkphp源码分析愉快地聊一聊ArrayDeque的特点吧~(以下都是基于jdk1.8)一棵树ArrayDeque的继承树如下图:基本特点(1)双端队列,可从两端添加、删除元素。作为队列使用时,性能优于LinkedList。作为栈使用时,性能优于Stack。(2)底层使用可变数组Object[]elements,数组容量按需增长(3)不能存储null(4)支持双向迭代器遍历(5)线程不安全…

    2026年1月31日
    5

发表回复

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

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