更新时间:2021-02-23 17:25:25 来源:极悦 浏览1668次
JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。而Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。想要将JDBC整合到Spring Boot框架中就需要我们配置JDBC。本文我们就来介绍一下Spring Boot配置JDBC,帮助我们使用Spring Boot从事开发。
1、数据库表
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
2、实体类
添加简单的User实体类,用于下面jdbc和mybatis的使用和测试。再添加一个toString方法为了测试时看结果比较简单。
public class User {
private Integer id;
private String username;
private String address;
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 getAddress() { return address; }
public void setAddress(String address) { this.address = address; }
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", address='" + address + '\'' +
'}';
}
}
3、Maven配置
mysql版本根据自己数据库版本设置 druid为阿里云提供的数据源(可理解为连接池)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version></dependency><dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>8.0.18</version></dependency>
4、数据库配置
数据库properties配置肯定是少不的啦.
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydatabase
5、Maven依赖
添加Spring Boot提供的JDBC依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId></dependency>
使用
@Servicepublic class UserService {
@Autowired
JdbcTemplate jdbcTemplate;
public Integer addUser(User user) {
return jdbcTemplate.update("insert into user (username,address) values (?,?);",
user.getUsername(), user.getAddress());
}
/**
* 查询方式一
* 当类属性和数据库字段不对应时才这样使用
* @return
*/
public List<User> getAllUserFirst() {
return jdbcTemplate.query("select * from user;", new RowMapper<User>() {
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
User user = new User();
int id = resultSet.getInt("id");
String address = resultSet.getString("address");
String username = resultSet.getString("username");
user.setId(id);
user.setUsername(username);
user.setAddress(address);
return user;
}
});
}
/**
* 查询方式二
* 当类属性和数据库字段对应时就这样使用啦,比上面的简洁很多
*/
public List<User> getAllUserSecond() {
return jdbcTemplate.query("select * from user;", new BeanPropertyRowMapper<>(User.class));
}
}
这里需要记一下,JDBC不论新增,修改,删除都是使用update方法。而查询则是使用query。 如果数据库字段和实体类属性不一致时,则需要使用上面代码中的查询方式一 如果数据库字段和实体类属性全都一致时,则可以使用上面代码中的查询方式二,简单快捷。
6、测试
在我们整理完上述的各种配置之后当然是少不了测试的,测试类如下:
@SpringBootTestclass JdbcApplicationTests {
@Autowired
UserService userService;
@Test
public void addUser() {
User user = new User();
user.setUsername("johnson2");
user.setAddress("colablog.cn");
userService.addUser(user);
}
public void queryUsers() {
List<User> allUserFirst = userService.getAllUserFirst();
System.out.println(allUserFirst);
}
}
如果测试成功的话也就表示我们的Spring Boot配置jdbc是正确的,基本上排除了大的毛病,也不会影响我们正常使用Spring Boot。当然,根据不同的版本,各种配置也会有细微的差别,但是只要稍加注意都不会有大的影响。在本站的JDBC教程中,还有各种JDBC实践应用相关的知识,想要熟练使用JDBC的小伙伴千万不要错过。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习