springboot系列文章点击阅读原文直达
上一篇文章中我们使用spring-data-jpa实现了操作MySQL数据库,完成了对数据的增删改查,这一篇我们学习使用JdbcTemplate来实现同样的操作。
JdbcTemplate是Spring框架自带的对JDBC操作的封装,目的是提供统一的模板方法使对数据库的操作更加方便、友好,效率也不错。但是功能还是不够强大,在实际应用中通常和hibernate、mybaties等框架混合使用。
新建一个MySQL数据库,这里数据库名为springboot,建立user_info数据表,作为我们示例操作的表对象。
user_info信息如下:
DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user_info
-- ----------------------------
INSERT INTO `user_info` VALUES ('1', 'Java之音', '12345');
INSERT INTO `user_info` VALUES ('2', '张无忌', '123');
数据库及表创建成功后,回到我们的工程中
第零步,引入JdbcTemplate的依赖包:
org.springframework.boot
spring-boot-starter-jdbc
mysql
mysql-connector-java
第一步,在yml配置文件中配置数据库连接信息:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: 1011
第二步,创建一个实体类:
package com.javazhiyin;
/**
* Created by 57783 on 2018/7/4.
*/
public class UserInfo {
private Integer id;
private String username;
private String password;
public Integer getId(){
return id;
}
public void setId(Integer id){
this.id = id;
}
public String getUsername(){
return username;
}
public void setUsername(String username){
this.username = username;
}
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password = password;
}
public UserInfo(){
}
}
第三步,新建一个Controller,实现对数据库的增删改查操作:
package com.javazhiyin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
/**
* Created by 57783 on 2018/7/4.
*/
@RestController
public class UserInfoController {
@Autowired
private JdbcTemplate jdbcTemplate;
/**
* 查
* @return
*/
@GetMapping(value = "/list")
public List> getUserList(){
String sql = "select * from user_info";
List> list = jdbcTemplate.queryForList(sql);
return list;
}
/**
* 增
* @param username
* @param password
* @return
*/
@PostMapping(value = "/addUser")
public String addUser(@RequestParam("username") String username,
@RequestParam("password") String password){
String sql = "insert into user_info (username,password) value (?,?)";
Object args[] = {username,password};
int temp = jdbcTemplate.update(sql, args);
if(temp > 0) {
return "新增成功";
}
return "新增失败";
}
/**
* 改
* @param id
* @param username
* @param password
* @return
*/
@PutMapping(value = "updUser/{id}")
public UserInfo updUser(@PathVariable("id") Integer id,
@RequestParam("username") String username,
@RequestParam("password") String password){
String sql = "update user_info set username = ?,password = ? where id = ?";
Object args[] = {username,password,id};
int temp = jdbcTemplate.update(sql, args);
UserInfo user = new UserInfo();
if(temp > 0) {
user.setId(id);
user.setUsername(username);
user.setPassword(password);
return user;
}
return user;
}
/**
* 删
* @param id
*/
@DeleteMapping(value = "delUser/{id}")
public String delUser(@PathVariable("id") Integer id){
UserInfo user = new UserInfo();
user.setId(id);
String sql = "delete from user_info where id = ?";
Object args[] = {id};
int temp = jdbcTemplate.update(sql, args);
if(temp > 0) {
return "删除成功";
}
return "删除出现错误";
}
}
测试上述代码,这里我们使用postman测试,非常方便:
查询测试:
新增测试:
更新测试:
删除测试:
我们可以看到可以全部测试通过,完成了springboot使用JdbcTemplate进行增删改查的操作。
关注后端技术精选,提供优质价值阅读