Spring Boot (7) JdbcTemplate
时间:2022-03-15 08:30
使用jdbcTemplate操作数据库
在pom.xml中添加jdbc模块和mysql数据库驱动
<!--jdbc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--mysql数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
application.properties
spring boot的jdbc模块会加载以下参数,并且根据url可以识别并自动加载mysql驱动,自动创建数据库实例,自动实现连接池。
spring.datasource.url=jdbc:mysql://localhost:3306/david2018_db?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=1234
HelloDao.java
jdbc模块还会自动创建一个JdbcTemplate实例,可以在程序中直接注入使用,下面的dao实现了两个方法:
update方法:执行增删改操作
queryForList方法:执行查询操作
params:任意数量的数组,配置sql中的?占位符
package com.david; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class HelloDao { @Autowired JdbcTemplate jdbcTemplate; public int update(){ String sql = "update user set username = ? where userid = ?"; Object[] params = new Object[]{"boot",1}; return jdbcTemplate.update(sql,params); } public List queryForList(){ String sql = "select * from user"; return jdbcTemplate.queryForList(sql); } }
helloService.java
spring boot同样自动配置好了事务,在service上 直接加一个注解即可。
package com.david; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Transactional //开启事务 @Service public class HelloService { @Autowired private HelloDao dao; public int update(){ return dao.update(); } public List queryForList(){ return dao.queryForList(); } }
helloController.java
package com.david; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController public class HelloController { @Autowired private HelloService service; @GetMapping("/update") public String update(){ service.update(); return "update"; } @GetMapping("/list") public String list(){ service.queryForList(); return "list"; } }
输入 localhost:/update list 进行测试