Spring Boot JDBC 连接数据库示例

yizhihongxing

介绍一下"Spring Boot JDBC 连接数据库示例"的完整攻略。

1. 环境准备

首先,我们需要准备JDK和Maven环境。确保已安装JDK环境,可以在命令行终端中输入以下命令进行验证:

java -version

验证通过后,下载和安装Maven。同样在终端中输入以下命令进行验证:

mvn -v

验证通过后,环境准备工作就做完了。

2. 添加依赖

在pom.xml文件中添加以下依赖项:

<!-- Spring Boot 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>

添加完依赖之后,进行Maven编译。

3. 配置文件

在src/main/resources目录下创建application.properties文件,添加MySQL数据库的相关配置信息:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root

4. 创建数据库表

在MySQL数据库中创建一个表,作为示例表,用来测试Spring Boot JDBC连接数据库的功能:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) NOT NULL,
  `age` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

5. 编写代码

5.1. 创建实体类

创建一个User实体类,用来映射user表:

public class User {
    private int id;
    private String name;
    private int age;

    // 省略setter/getter方法
}

5.2. 编写DAO类

在src/main/java目录下,创建一个名为com.example.demo.dao的包,在这个包下创建UserDao接口,用来定义CRUD操作:

public interface UserDao {
    void addUser(User user);
    void updateUser(User user);
    void deleteUserById(int id);
    User findUserById(int id);
    List<User> findAllUsers();
}

然后,在com.example.demo.dao包下创建UserDaoImpl类,这个类需要实现UserDao接口中定义的方法:

@Repository
public class UserDaoImpl implements UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void addUser(User user) {
        String sql = "INSERT INTO user(name, age) VALUES (?, ?)";
        jdbcTemplate.update(sql, user.getName(), user.getAge());
    }

    @Override
    public void updateUser(User user) {
        String sql = "UPDATE user SET name = ?, age = ? WHERE id = ?";
        jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
    }

    @Override
    public void deleteUserById(int id) {
        String sql = "DELETE FROM user WHERE id = ?";
        jdbcTemplate.update(sql, id);
    }

    @Override
    public User findUserById(int id) {
        String sql = "SELECT * FROM user WHERE id = ?";
        RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class);
        return jdbcTemplate.queryForObject(sql, rowMapper, id);
    }

    @Override
    public List<User> findAllUsers() {
        String sql = "SELECT * FROM user";
        RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class);
        return jdbcTemplate.query(sql, rowMapper);
    }
}

5.3. 编写Controller类

在src/main/java目录下,创建一个名为com.example.demo.controller的包,在这个包下创建UserController类,用来定义路由和请求处理方法:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserDao userDao;

    @PostMapping("/")
    public String addUser(User user) {
        userDao.addUser(user);
        return "add user success";
    }

    @PutMapping("/")
    public String updateUser(User user) {
        userDao.updateUser(user);
        return "update user success";
    }

    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable("id") int id) {
        userDao.deleteUserById(id);
        return "delete user success";
    }

    @GetMapping("/{id}")
    public User findUserById(@PathVariable("id") int id) {
        return userDao.findUserById(id);
    }

    @GetMapping("/")
    public List<User> findAllUsers() {
        return userDao.findAllUsers();
    }
}

6. 测试代码

启动应用程序,访问http://localhost:8080/user/,通过Postman或其他工具测试CRUD操作。以下是两个测试示例。

6.1. 添加用户

发送POST请求http://localhost:8080/user/,请求体为json格式:

{
    "name": "张三",
    "age": 23
}

返回结果:

add user success

6.2. 获取用户列表

发送GET请求http://localhost:8080/user/,返回结果:

[
    {
        "id": 1,
        "name": "张三",
        "age": 23
    }
]

至此,"Spring Boot JDBC 连接数据库示例"的完整攻略就完成了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot JDBC 连接数据库示例 - Python技术站

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

相关文章

  • spring+Jpa多数据源配置的方法示例

    首先,我们需要了解一下Spring中多数据源配置的基本原理。Spring中,我们可以使用AbstractRoutingDataSource实现多数据源的配置。该类是抽象类,我们需要根据不同的业务需求去实现其抽象方法determineCurrentLookupKey(),来实现不同数据源动态切换的需求。 下面是Spring+Jpa多数据源配置的方法示例: 引入…

    Java 2023年5月20日
    00
  • Java定时器通信协议管理模块Timer详解

    Java定时器通信协议管理模块Timer详解 Java中的Timer类可以用于执行定时任务,其执行方式是基于线程池的,也就是说可以同时执行多个任务,并且不影响彼此之间的执行。 Timer类的基本用法 Timer类提供了两种主要的创建方式: 直接创建Timer java Timer timer = new Timer(); 指定线程名称创建Timer java…

    Java 2023年5月20日
    00
  • Java Servlet生成JSON格式数据并用jQuery显示的方法

    下面是 Java Servlet 生成 JSON 格式数据并用 jQuery 显示的方法的完整攻略。 什么是 JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写。 Servlet 生成 JSON 1. 添加依赖 首先需要添加一个 JSON 库,常用的有 Gson 和 FastJSON。这里…

    Java 2023年5月26日
    00
  • java Gui实现肯德基点餐收银系统

    Java Gui实现肯德基点餐收银系统 1. 简介 本攻略旨在介绍如何使用Java Gui实现肯德基点餐收银系统。 2. 技术框架 本文使用如下技术框架: Java: JDK 1.8及以上版本 Swing: Java的GUI组件库 Eclipse: Java开发IDE 3. 实现步骤 3.1. 搭建开发环境 首先,需要在计算机上安装JDK和Eclipse。 …

    Java 2023年5月30日
    00
  • java 中断线程的几种方式 interrupt()详解

    Java 中断线程的几种方式 interrupt()详解 在 Java 中,一条线程可以通过另一条线程中断,可以说是线程通信的一种方式。本文将会详细的讲解 Java 中线程中断的几种方式以及如何检测线程是否被中断。 interrupt() 方法 Java 提供了 interrupt() 方法作为一种中断线程的方式,在线程启动后,可以使用该方法将线程设置为中断…

    Java 2023年5月18日
    00
  • Spring Security Oauth2.0 实现短信验证码登录示例

    下面就为您详细讲解“Spring Security Oauth2.0 实现短信验证码登录示例”的完整攻略。 准备工作 搭建Spring Boot环境 添加Spring Security依赖 添加Spring Security Oauth2依赖 添加MySQL数据库及驱动依赖 创建用户表、客户端表、验证码表 示例1:实现短信验证码登录 自定义继承于Abstra…

    Java 2023年5月20日
    00
  • springboot参数传中文乱码的解决方案

    下面我将详细讲解Spring Boot参数传中文乱码的解决方案。需要注意的是,中文乱码问题主要是因为字符集编码不一致导致的,所以我们需要在Spring Boot配置中添加字符编码过滤器来解决该问题。 1. 配置字符编码过滤器 在Spring Boot中添加字符编码过滤器可以通过在Web应用的启动入口类上添加@Bean注解来实现。具体的实现代码如下所示: im…

    Java 2023年5月20日
    00
  • 浅析Mybatis Plus和Mybatis的区别

    下面就来详细讲解 “浅析Mybatis Plus和Mybatis的区别”的完整攻略。 什么是Mybatis? Mybatis 是一款基于 Java 的持久层框架,它封装了 JDBC 操作,简化了 JDBC 操作繁琐的过程,使得开发者能够将精力集中到 SQL 的编写上面。 Mybatis 的特点: 操作简单、方便,对开发者友好 灵活度高,可以定制化 SQL 提…

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