SpringBoot使用JdbcTemplate訪問操作數據庫基本用法
Spring
對數據庫的操作在jdbc上s面做瞭深層次的封裝,使用spring的註入功能,可以把DataSource
註冊到JdbcTemplate
之中。
JdbcTemplate
在Spring-jdbc
包下面,還需要Spring-tx
包支持,裡面包含事務和異常控制.
一、建一個rumenz_springboot庫
創建user表:
create table user( id int primary key auto_increment, name varchar(100) not null default '', domain varchar(100) not null default '' )engine=innodb default charset=utf8;
二、加入pom的依賴
<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>
三、SpringBoot配置文件
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/rumenz_springboot spring.datasource.username=root spring.datasource.password=root1234 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
四、創建User實體類
@Builder @Data @AllArgsConstructor public class User implements RowMapper { private Integer id; private String name; private String domain; @Override public Object mapRow(ResultSet rs, int rowNum) throws SQLException { User user=new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setDomain(rs.getString("domain")); return user; } }
五、Service接口
UserService.java
package com.rumenz.lession14.controller.service; import com.rumenz.lession14.controller.entity.User; import java.util.List; /** * @className: UserService * @description: TODO 類描述 * @author: 入門小站 rumenz.com * @date: 2021/12/13 **/ public interface UserService { Integer save(User user); List<User> list(); Integer update(User user); Integer batchSave(); }
六、Service接口實現類
UserServiceImpl.java
package com.rumenz.lession14.controller.service.Impl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.json.JsonMapper; import com.rumenz.lession14.controller.entity.User; import com.rumenz.lession14.controller.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * @className: UserServiceImpl * @description: TODO 類描述 * @author: 入門小站 rumenz.com * @date: 2021/12/13 **/ @Service public class UserServiceImpl implements UserService { @Autowired private JdbcTemplate jdbcTemplate; @Override public Integer save(User user) { int reint = jdbcTemplate.update("insert into user(name,domain) values (?,?)", user.getName(), user.getDomain()); return reint; } @Override public Integer batchSave() { String sql="insert into user(name,domain) values(?,?)"; List<Object[]> par=new ArrayList<>(); for (int i = 0; i < 10; i++) { String[] s=new String[2]; s[0]="入門小站"+i; s[1]="https://rumenz.com/"+i; par.add(s); } int[] ints = jdbcTemplate.batchUpdate(sql, par); System.out.println(ints.toString()); return 0; } @Override public List<User> list() { //User實現RowMapper接口,實現接口裡的mapRow方法。 List<User> list = jdbcTemplate.query("select * from user",new User()); return list; } @Override public Integer update(User user) { Integer reint=jdbcTemplate.update("update user set name=?,domain=? where id=?", user.getName(),user.getDomain(),user.getId()); // return reint; } }
七、Controller測試
RumenzController.java
package com.rumenz.lession14.controller; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.rumenz.lession14.controller.entity.User; import com.rumenz.lession14.controller.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @className: RumenzController * @description: TODO 類描述 * @author: 入門小站 rumenz.com * @date: 2021/12/13 **/ @RestController @RequestMapping("/rumenz") public class RumenzController { @Autowired private UserService userService; //添加數據 @GetMapping("/save") public String save(){ User user=User.builder().name("入門小站").domain("https://rumenz.com").build(); Integer reint = userService.save(user); return reint.toString(); } //批量添加數據 @GetMapping("/batchSave") public String batchSave(){ Integer reint = userService.batchSave(); return reint.toString(); } //查詢數據 @GetMapping("/list") public String list() throws JsonProcessingException { List<User> list = userService.list(); ObjectMapper objectMapper=new ObjectMapper(); String val = objectMapper.writeValueAsString(list); return val; } //更新數據 @GetMapping("/update") public String update() throws JsonProcessingException { User user=User.builder().id(1).name("入門小站-修改").domain("https://tooltt.com").build(); Integer reint = userService.update(user); return reint.toString(); } }
八、總結
常用CURD操作大致使用以下三個方法:
- 1.execute方法,用於直接執行SQL語句
- 2.update方法,用戶新增修改刪除操作
- 3.query方法,用於查詢方法
到此這篇關於SpringBoot使用JdbcTemplate訪問操作數據庫基本用法的文章就介紹到這瞭,更多相關SpringBoot使用JdbcTemplate訪問操作數據庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java Spring5學習之JdbcTemplate詳解
- SpringBoot實現分頁功能
- SpringBoot整合Mybatis簡單實現增刪改查
- Spring框架基於註解開發CRUD詳解
- SpringBoot快速整合通用Mapper的示例代碼