本节学习在boot工程中使用jdbc,直接使用jdbc理论上性能比其它的都要好。
首先导入相关包,如下:
compile('org.springframework.boot:spring-boot-starter-jdbc')
compile('mysql:mysql-connector-java')
配置数据库连接,如下:
spring:
datasource:
url: jdbc:mysql://localhost:3306/xfdb?useUnicode=true&characterEncoding=UTF-8
password: root
username: root
创建controller,并注入JdbcTemplate,加上注解@RestController
和@RequestMapping
@RestController
@RequestMapping("/user")
public class JdbcController {
@Autowired
private JdbcTemplate jdbcTemplate;
查询所有接口
查询所有t_user表的数据,返回list列表数据。
@GetMapping
public List<User> queryUsers() {
String sql = "select * from t_user";
return jdbcTemplate.query(sql, new Object[]{}, new BeanPropertyRowMapper<>(User.class));
}
BeanPropertyRowMapper是将查出的数据封装成User对象。
根据id查询
根据id查询指定的user数据
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
String sql = "select * from t_user where id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));
}
@PathVariable这个注解是指从url中取对应的id
上面的get操作,可以直接在浏览器中测试,如:localhost:8081/chapter04/user/2,但下面的post, put, del就需要相应的工具,如postman
添加数据
往数据库添加一条数据
@PostMapping
public int addUser(@RequestBody User user) {
// 添加用户
String sql = "insert into t_user(name, age) values(?, ?)";
return jdbcTemplate.update(sql, user.getName(), user.getAge());
}
注意,这里使用的是post,@RequestBody注解表示只能接受json对象,它将json对象转换成User对象。
修改数据
对已存在的数据修改
@PutMapping("/{id}")
public int editUser(@PathVariable Long id, @RequestBody User user) {
String sql = "UPDATE t_user SET name = ? ,age = ? WHERE id = ?";
return jdbcTemplate.update(sql, user.getName(), user.getAge(), id);
}
根据主键ID修改用户信息,这里使用restful方式,所以用put,其实用post也是可以的。
这是的传参要注意,它使用了2种方式。
删除数据
根据id删除数据
@DeleteMapping("/{id}")
public int delUser(@PathVariable Long id) {
String sql = "DELETE FROM t_user WHERE id = ?";
return jdbcTemplate.update(sql, id);
}
这是一些基础的操作,掌握也很简单。