SpringBoot整合JdbcTemplate的示例代码

针对SpringBoot整合JdbcTemplate的示例代码,我提供以下完整攻略:

简介

Spring Boot 是一个快速开发框架,而 JdbcTemplate 是 Spring 框架中用来简化 JDBC 操作的工具类。在 Spring Boot 中使用 JdbcTemplate,能够帮助我们更加简单快捷地完成数据库访问操作。

背景

为了演示SpringBoot整合JdbcTemplate,我们在此假定,需要写代码来实现简单的查询和更新数据的功能,数据存储在MySQL数据库中。

环境

在开始示例之前,需要搭建Java开发环境和MySQL数据库,可以在官网下载相应的安装包或使用Docker容器部署环境。

为了更好地演示,我们这里建议使用IntelliJ IDEA作为开发工具,在其Maven项目中,添加以下依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

示例 1:查询数据

工程结构

示例1的工程结构如下:

src
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           ├── JdbcTemplateDemoApplication.java               # SpringBoot入口启动类
│   │           └── dao
│   │               └── UserDao.java                               # 数据访问对象
│   └── resources
│       ├── application.properties                                 # 配置文件
│       └── schema.sql

配置文件

在 application.properties 中增加以下内容:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

数据库表定义

在 schema.sql 文件中定义用户表:

CREATE TABLE USER(
    ID BIGINT(20) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    NAME VARCHAR(40) NOT NULL,
    AGE INT(10)
);

查询代码实现

在 UserDao 中定义查询代码实现:

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<User> findAll() {
        return jdbcTemplate.query("SELECT * FROM USER",
                (resultSet, i) -> new User(resultSet.getLong("id"),
                        resultSet.getString("name"), resultSet.getInt("age")));
    }
}

此处使用 JdbcTemplate 的 query() 方法查询用户表中所有用户,将查询结果映射成 User 类型的对象后返回。

启动类

在 JdbcTemplateDemoApplication 中进行 SpringBoot 启动,示例代码如下:

@SpringBootApplication
public class JdbcTemplateDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(JdbcTemplateDemoApplication.class, args);
    }

}

测试

启动应用程序,在浏览器中访问 http://localhost:8080/users,可以看到返回的用户信息列表如下:

[{"id":1,"name":"Tom","age":21},{"id":2,"name":"Jerry","age":22}]

示例 2:更新数据

更新代码实现

在 UserDao 中定义更新代码实现:

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public int update(User user) {
        String sql = "UPDATE USER SET NAME = ?, AGE = ? WHERE ID = ?";
        return jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
    }
}

此处使用 JdbcTemplate 的 update() 方法更新用户表中指定用户的信息。

控制器

在 UserController 中定义控制器实现:

@RestController
public class UserController {

    @Autowired
    private UserDao userDao;

    @GetMapping("/users/{id}")
    public User getUser(@PathVariable("id") Long id) {
        return userDao.findById(id);
    }

    @PutMapping("/users/{id}")
    public String updateUser(@PathVariable("id") Long id, @RequestBody User user) {
        user.setId(id);
        int result = userDao.update(user);
        return result == 1 ? "SUCCESS" : "ERROR";
    }
}

此处使用 SpringBoot 的 @RestController 注解定义控制器,并在其中进行更新操作。其中,getUser() 方法用于返回指定用户信息,updateUser() 方法则用于为指定用户更新信息。

测试

启动应用程序,在 Postman 中进行如下请求:

  1. GET http://localhost:8080/users/1,获取 ID 为 1 的用户信息,结果为 {"id":1,"name":"Tom","age":21}
  2. PUT http://localhost:8080/users/1,将 ID 为 1 的用户更新为 {"name":"Tommy","age":23},结果为 "SUCCESS";
  3. GET http://localhost:8080/users/1,再次获取 ID 为 1 的用户信息,结果为 {"id":1,"name":"Tommy","age":23}

至此,一个简单的 SpringBoot 整合 JdbcTemplate 的示例已经实现,包括了查询和更新数据的操作。通过这个示例,大家可以深入了解 JdbcTemplate 的相关操作方法,同时也了解了基于 SpringBoot 框架实现数据库操作的基本过程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合JdbcTemplate的示例代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java实现联系人管理系统

    Java实现联系人管理系统完整攻略 系统简介 联系人管理系统,是一个用于管理个人或组织内部联系人的工具。一般包含添加联系人、编辑联系人、删除联系人、查看联系人等功能。本文介绍如何使用Java语言实现一个简单的联系人管理系统。 开发环境 JDK 8 Eclipse 或者 IntelliJ IDEA Tomcat 7 MySQL 5.7 所需技术 Servlet…

    Java 2023年5月30日
    00
  • Java程序结构与常量变量难点解析

    Java程序结构与常量变量难点解析 Java程序的结构 主函数 Java程序的结构是比较灵活的,但最基本的结构必须要有一个主函数(main function)。主函数是程序的入口,也就是程序从这里开始执行。 主函数的格式如下: public static void main(String[] args) { // 这里是主函数的代码 } 其中,public表…

    Java 2023年5月30日
    00
  • 使用java打印心型、圆形图案的实现代码

    以下是使用 Java 打印心型、圆形图案的实现代码攻略。 准备工作 首先,我们需要安装 Java 编程环境。可以在 Oracle 官网 下载 JDK,并按照官方文档进行安装。安装完成后,我们需要选择一款编辑器或者 IDE 来编写代码,常用的有 IntelliJ IDEA、Eclipse、VS Code等。 打印心型图案 要打印心型图案,我们可以使用嵌套循环来…

    Java 2023年5月26日
    00
  • OGC标准接口学习

    OGC 全称 Open Geospatial Consortium,是一个非盈利的、国际化的、自愿协商的标准化组织,它的主要目的就是制定与空间信息、基于位置服务相关的标准 DescribeFeatureType 返回WFS服务支持的字段类型的描述 入参 参数 是否必须 示例 描述 SERVICE 是 WFS 服务类型 REQUEST 是 DescribeFe…

    Java 2023年4月27日
    00
  • SpringMVC上传图片与访问

    SpringMVC上传图片与访问攻略 SpringMVC是一个非常流行的Java Web框架,它提供了很多方便的功能,包括文件上传和图片访问。在本文中,我们将详细讲解如何在SpringMVC中上传图片并访问它们。 上传图片 在Web应用程序中,文件上传是一个非常常见的需求。SpringMVC提供了很多方便的方式来处理文件上传,包括使用MultipartFil…

    Java 2023年5月18日
    00
  • Java Properties作为集合三个方法详解

    当我们使用Java进行编程时,经常需要使用配置文件来存储一些关键的配置信息,于是Java提供了一个名为Properties的类来处理这个问题。Properties是一个Map集合,其中的key和value都必须是字符串类型。下面将详细讲解Java Properties作为集合的三个常用方法:getProperty、setProperty和load。 getP…

    Java 2023年6月15日
    00
  • 用js屏蔽被http劫持的浮动广告实现方法

    要屏蔽被 HTTP 劫持的浮动广告,可以通过以下步骤实现: 步骤一:获取浮动广告元素 首先需要获取浮动广告元素的选择器。在浏览器中打开被劫持的网站,并打开浏览器的开发者工具。在 Elements 面板中,选择被劫持的广告元素,在该元素上右键单击,选择 Copy ▸ Copy selector(复制元素的选择器)。这样就可以获得该广告元素的选择器。例如: #a…

    Java 2023年6月16日
    00
  • JSP对JavaBean的各种常用操作方法总结

    JSP对JavaBean的各种常用操作方法总结 JavaBean是一种符合特定规范的Java类,通常用于在JavaWeb开发中,封装数据和提供相关操作方法。在JSP中,可以通过引入JavaBean类,方便获取和操作数据。本文将总结JSP对JavaBean的各种常用操作方法。 一、JavaBean的使用 JavaBean通常具有以下特点: 公共的无参构造方法 …

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部