Bootstrap

Spring Boot中的JdbcTemplate与MySQL集成

如何在Spring Boot项目中使用JdbcTemplate与MySQL进行数据库操作

1. 创建一个简单的Spring Boot项目。

 

  

2. 配置项目的依赖,包括Spring Boot和MySQL连接驱动。

          使用JbdcTemplate前要添加JDBC starter 依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

        再引入Mysql依赖包

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
</dependency>

3. 使用JdbcTemplate创建一个MySQL数据表,并插入相关信息。

        在资源文件夹resources中新建一个包里面存放sql语句

      这里已经创建好了,下面schema.sql是用于创建数据表的,data.sql是用于插入数据表数据

4. 编写Spring Boot的配置文件,配置JdbcTemplate与MySQL的连接信息。

         首先先在Mysql中创建一个数据库

         在项目的配置文件中,配置MySQL数据库的连接信息

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

  sql:
    init:
      schema-locations: classpath:db/schema.sql
      mode: always
      continue-on-error: true
      data-locations: classpath:db/data.sql

        这个时候我们试着运行一下发现数据库已经成功创建一个名为user的数据表,并带有若干数据

5. 在项目中创建一个DAO类,使用JdbcTemplate完成对数据库的增删改查操作。

        先创建一个user类,并添加@Data注解

@Data
public class User {
    private Integer id;
    private String name;
}

        在DAO类里面创建一个JdbcTemplate对象,在调用JdbcTemplate对象前先使用@Autowired注解来完成自动装配

JdbcTemplate template;
@Autowired
public DAO(JdbcTemplate template){
    this.template=template;
}

下面来完成对数据库的增删查改操作

// 根据id获取用户信息
public User getById(Integer id){
    String sql="select * from user where id=?";
    return template.queryForObject(sql
            ,new Object[]{id}
            ,new BeanPropertyRowMapper<>(User.class));
}
// 插入用户数据
public int add(User entity){
    String sql="insert into user(name) values(?)";
    return template.update(sql,entity.getName());
}
// 修改用户数据
public int update(User entity){
    String sql="update user set name=? where id=?";
    return template.update(sql,entity.getName(),entity.getId());
}
// 删除用户数据
public int delete(Integer id){
    String sql="delete from user where id=?";
    return template.update(sql,id);
}

6. 在项目中创建一个Controller类,提供相应的接口访问数据库操作。

        1.使用@RequestMapping映射

        2.实现增删查改操作

@RestController
@RequestMapping("/user")
public class Controller {
    DAO dao;
    @Autowired
    public Controller(DAO dao){
        this.dao=dao;
    }
    //用户信息列表
    @RequestMapping("/list")
    public List<User> getAll(){
        return dao.getAll();
    }
    // 根据id获取用户信息
    @RequestMapping("/getById/{userId}")
    public User findById(@PathVariable("userId")Integer id){
        return dao.getById(id);
    }
    // 插入用户数据
    @RequestMapping("/insert")
    public String insert(){
        User entity=new User();
        entity.setName("测试用户名");
        return dao.add(entity)>0?"新增数据成功!":"Fail";
    }
    // 修改用户数据
    @RequestMapping("/edit")
    public String edit(){
        User entity=new User();
        entity.setId(9);
        entity.setName("测试用户名-update");
        return dao.update(entity)>0?"修改数据成功!":"Fail";
    }
    // 删除用户数据
    @RequestMapping("/delete/{userId}")
    public String delete(@PathVariable("userId") Integer id){
        return dao.delete(id)>0?"删除数据成功!":"找不到该数据";
    }
}

然后就可以在浏览器上试试是否完成增删查改数据

        1.根据ID查找用户信息

2.增加用户信息

再查看数据表发现已经添加了一条数据

3.删除用户数据

再看数据表发现之前的ID为9数据已经不见了

4.根据id修改用户信息

再回头看数据表发现已经修改好了

这样就实现了对数据表数据的增删查改操作

;