您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關SpringBoot如何使用JdbcTemplate訪問操作數據庫的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Spring
對數據庫的操作在jdbc上s面做了深層次的封裝,使用spring的注入功能,可以把DataSource
注冊到JdbcTemplate
之中。
JdbcTemplate
在Spring-jdbc
包下面,還需要Spring-tx
包支持,里面包含事務和異常控制.
創建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;
<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>
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
@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; } }
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(); }
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; } }
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訪問操作數據庫”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。