目录
1 导入依赖
在pom.xml中添加对JdbcTemplate的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2 连接数据库
在application.properties文件配置mysql的驱动类,数据库地址,数据库账号、密码信息。
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/spring?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
3 新建数据库表 及 对应的实体类
首先新建一个简单的数据表:
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
然后建立对应的实体类:
package com.example.demo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User implements Serializable {
private Integer id;
private String name;
private Integer age;
}
4 测试
package com.example.demo.controller;
import com.example.demo.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(value = "/user")
public class JdbcTemplateController {
@Autowired
private JdbcTemplate jdbcTemplate;
@RequestMapping("/add")
public int addUser(User user) {
//新增数据
String sql = "insert into user (id, name, age) value (?,?,?)";
return jdbcTemplate.update(sql, user.getId(), user.getName(), user.getAge());
}
@RequestMapping("/del/{id}")
public int delUser(@PathVariable Long id) {
// 根据主键ID删除用户信息
String sql = "DELETE FROM user WHERE id = ?";
return jdbcTemplate.update(sql, id);
}
@RequestMapping("/update/{id}")
public int updateUser(@PathVariable Long id, User user) {
// 根据主键ID修改用户信息
String sql = "UPDATE user SET name = ? ,age = ? WHERE id = ?";
return jdbcTemplate.update(sql, user.getName(), user.getAge(), id);
}
@RequestMapping("/getData")
public List<User> queryUser() {
// 查询所有用户
String sql = "select * from user";
return jdbcTemplate.query(sql, new Object[]{}, new BeanPropertyRowMapper<>(User.class));
}
@RequestMapping("/get/{id}")
public User getUser(@PathVariable Long id) {
// 根据主键ID查询用户
String sql = "select * from user where id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));
}
}
新增数据:在postman测试工具中输入localhost:8080/user/add
我们可以看到,新增已经成功了。
其余删除,更新操作与新增代码不变,只是sql的变化,这里不做演示。
参考
springboot使用JdbcTemplate完成对数据库的增删改查