Spring第八篇【JdbcTemplate】
阿新 • • 發佈:2020-08-18
匯入座標
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>JdbcTemplate</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.2.8.RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency> </dependencies> </project>
Spring配置類
package com.example.demo.config; import com.mchange.v2.c3p0.ComboPooledDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; import java.beans.PropertyVetoException; @Configuration @PropertySource("classpath:jdbc.properties") public class SpringConfiguration { @Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.user}") private String user; @Value("${jdbc.password}") private String password; @Bean public DataSource getDataSource() throws PropertyVetoException { ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource(); comboPooledDataSource.setDriverClass(driver); comboPooledDataSource.setJdbcUrl(url); comboPooledDataSource.setUser(user); comboPooledDataSource.setPassword(password); return comboPooledDataSource; } @Bean public JdbcTemplate getJdbcTemplate(DataSource comboPooledDataSource) { JdbcTemplate jdbcTemplate = new JdbcTemplate(); jdbcTemplate.setDataSource(comboPooledDataSource); return jdbcTemplate; } }
測試
import com.example.demo.config.SpringConfiguration; import com.example.demo.domain.Account; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import javax.sql.DataSource; import java.util.List; @RunWith(SpringRunner.class) @ContextConfiguration(classes = SpringConfiguration.class) public class JdbcTemplateTest { @Autowired private JdbcTemplate jdbcTemplate; //插入 @Test public void insertTest() { int row = jdbcTemplate.update("insert into account values (?,?)", "張三", 10000); System.out.println(row); } //更新 @Test public void updateTest() { int row = jdbcTemplate.update("update account set money = ? where name = '張三'",50000); System.out.println(row); } //刪除 @Test public void deleteTest() { int row = jdbcTemplate.update("delete from account where name = '張三'"); System.out.println(row); } //查詢所有 @Test public void selectAllTest(){ List<Account> accountList = jdbcTemplate.query("select * from account", new BeanPropertyRowMapper<Account>(Account.class)); System.out.println(accountList); } //查詢一個 @Test public void selectOneTest() { Account account = jdbcTemplate.queryForObject("select * from account where name = ?", new BeanPropertyRowMapper<Account>(Account.class), "張三"); System.out.println(account); } //聚合函式查詢 @Test public void selectOtherTest() { Integer row = jdbcTemplate.queryForObject("select count(*) from account",Integer.class); System.out.println(row); } }