JdbcTemplate(会用)
第一章 JdbcTemplate(会用)
1.1 JdbcTemplate介绍
方法介绍
package cn.itcast.test;import cn.itcast.domain.Account;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;public class JdbcTemplateTest {/*** 练习JdbcTemplate的基本使用*/public static void main(String[] args) {//1、创建DataSourceDruidDataSource dataSource = new DruidDataSource();dataSource.setUsername("root");dataSource.setPassword("root");dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUrl("jdbc:mysql:///heima31");//2、创建JdbcTemplate对象JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);//3、调用方法完成数据库操作//3.1 保存,删除(update)//jdbcTemplate.update("insert into account (name,money) values (?,?)" ,"小王",100f);//3.2 查询数据列表(query)//BeanPropertyRowMapper : 结果集处理器 (查询列表和唯一的时候,都使用同一个)
// List<Account> list = jdbcTemplate.query("select * from account", new BeanPropertyRowMapper<Account>(Account.class));
// for (Account account : list) {
// System.out.println(account);
// }//3.3 根据id查询唯一的对象( queryForObject)Account account = jdbcTemplate.queryForObject("select * from account where id=?", new BeanPropertyRowMapper<Account>(Account.class), 1);System.out.println(account);}
}
1.2 JdbcTemplate案例
使用dbcTemplate完成一个crud和转账的案例,使用xml结合注解的形式配置
(1)准备数据环境
和之前的数据库一模一样,账户操作
(2)创建工程,导入坐标
<dependencies><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.15</version></dependency><!--spring-jdbc--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.6.RELEASE</version></dependency><!--spring-context--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.6.RELEASE</version></dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--spring-test--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.1.6.RELEASE</version></dependency><!--添加切点表达式--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.7</version></dependency></dependencies>
(3)创建实体类
(4)创建dao接口
(5)创建dao实现
(6)创建service接口
(7)创建service实现
(8)加入Spring的配置文件
(9)测试
package cn.itcast.test;import cn.itcast.domain.Account;
import cn.itcast.service.AccountService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class AccountServiceTest {@Autowiredprivate AccountService accountService;@Testpublic void testFindAll() {List<Account> list = accountService.findAll();for (Account account : list) {System.out.println(account);}}@Testpublic void testTransfer() throws Exception {accountService.transfer("小张", "小李",1f);}}