更新時間:2021-02-23 17:25:25 來源:動力節點 瀏覽1904次
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天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習