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访问操作数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何使用 Spring Boot 搭建 WebSocket 服务器实现多客户端连接
本文介绍如何使用SpringBoot快速搭建WebSocket服务器,实现多客户端连接和消息广播,WebSocket协议提供全双工通信,SpringBoot通过@ServerEndpoint简化配置,支持实时消息推送,适用于聊天室或通知系统等应用场景2024-11-11IDEA提示内存不足 low memory的完美解决方法(亲测好用)
这篇文章主要介绍了IDEA提示内存不足 low memory的完美解决方法(亲测好用),这里以IDEA2022版本为例,在IDE中 帮助(help)–>change memory setting(改变内存设置),具体设置办法文中给大家详细讲解,需要的朋友可以参考下2023-01-01Spring Cloud 专题之Sleuth 服务跟踪实现方法
这篇文章主要介绍了Spring Cloud 专题之Sleuth 服务跟踪,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-08-08java.io.EOFException产生原因及解决方法(附代码)
java.io.EOFException表示在读取数据时突然遇到了文件或流的末尾,也就是说客户端或服务器已经关闭了连接,但是你还在尝试读取数据,这篇文章主要给大家介绍了关于java.io.EOFException产生原因及解决的相关资料,需要的朋友可以参考下2023-09-09Java中toString()、String.valueOf、(String)强转区别
相信大家在日常开发中这三种方法用到的应该很多,本文主要介绍了Java中toString()、String.valueOf、(String)强转区别,感兴趣的可以了解一下2021-09-09
最新评论