spring_day03

一、使用注解方式实现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集合)

  1.  SQL语句
  2. RowMapper接口哦,自己写类实现数据封装
  3. 可变参数

三、 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配置)

  1. 配置文件方式使用aop思想配置。

    第一步:配置事物管理器

第二步 配置事物增强

第三部 配置切面

声明式事物管理(注解)

第一步:配置事务管理器

第二步:配置事务注解

第三步:在要使用事务的方法上面添加注解

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值