一、使用注解方式实现aop
第一步:创建对象
第二步:在spring核心配置文件中,开启aop操作
第三步:在增强上面使用注解完成aop操作
二、spring的jdbcTemplate操作(crud操作)
1. spring框架一站式框架
(1)针对javaee三层,每一层都有解决技术
(2)在aop层,实用jdbcTemplate
2.spring对持久化层不同的技术都进行了封装
(1)jdbcTemplate对jdbc进行封装
3.jdbcTemplate实用和dbutils实用很相似,都对数据库进行crud操作。
增加
1.导入jdbcTemplate实用的jar包
数据库的驱动程序jar包
2.创建jdbcTemplate对象,设置数据库信息
3.创建jdbcTemplate对象,设置设置数据源
4.调用jdbcTemplate对象里面的方法实现操作
修改
删除
查询
1.实用jdbcTemplate实现查询
2.查询的具体实现
第一个:查询返回一个值
(1)第一个参数sql语句
(2)第二个参数,返回类型的class
原始的jdbc实现:
//2.jdbc实现代码
@Test
public void testJDBC(){
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//创建链接
conn = DriverManager.getConnection("jdbc:mysql:///spring_day03", "root", "root");
//编写SQL语句
String sql = "select * from user where username=?";
//预编译
psmt = conn.prepareStatement(sql);
//设置参数值
psmt.setString(1, "lucy");
rs = psmt.executeQuery();
//遍历结果集
while(rs.next()){
//得到返回结果值
String username = rs.getString("username");
String password = rs.getString("password");
//放到user对象中
User user = new User();
user.setUsername(username);
user.setPassword(password);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
rs.close();
psmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
第二个:查询返回一个对象(jdbcTemplate实现crud操作,查询对象)
第一个参数是sql语句
第二个参数RowMapper,是接口,类似于dbutils里面的接口
第三个参数是一个可变参数
第三个:查询返回一个list集合(jdbcTmplate操作,查询list集合)
- SQL语句
- RowMapper接口哦,自己写类实现数据封装
- 可变参数
三、 Spring配置连接池和dao实用jdbcTemplate
1.spring配置c3p0连接池
第一步:导入jar包
第二步:配置连接池
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql:///spring_day03");
dataSource.setUser("root");
dataSource.setPassword("root");
(1)把代码在配置文件中进行配置
2.dao使用jdbcTemplate
(1)创建勒service和dao,配置service和dao对象,在service注入dao对象
(2)创建jdbcTemplate对象,把模版对象注入到dao里面
(3)在jdbcTemplate对象里注入dataSource
四、spring的事务管理
1.什么是事务;
2.事务特性;
3.不考虑隔离性产生读问题;
4.解决读问题
(1)设置隔离级别
Spring事务管理api
1.spring事务管理两种方式
第一种 变成是事务管理(因为需要写代码,一般不用写)
第二种 声明式事务管理
(1)基于xml配置文件实现
(2)基于注解实现
2.spring事务管理的api介绍
接口:PlatformTransactionManager,事务管理器
(1)spring针对不同的dao层框架,提供接口不同的实现类
(2)首先配置事务管理器
搭建转账环境
1.创建数据库表,添加数据。
2.创建service和dao类,完成注入关系
(1)service层又叫业务逻辑层
(2)dao层,单纯对数据库操作,在dao层不添加业务。
(3)需求:小王转账1000给小马
分析:小王少1000,小马多1000;
3.产生问题:
(1)如果小王少了1000之后,出现异常,小马不会多10000,钱丢了。
4.解决
(1)添加事物解决,出现异常进行回滚操作。
声明式事物管理(xml配置)
- 配置文件方式使用aop思想配置。
第一步:配置事物管理器
第二步 配置事物增强
第三部 配置切面
声明式事物管理(注解)
第一步:配置事务管理器
第二步:配置事务注解
第三步:在要使用事务的方法上面添加注解