spring入门3

来源:互联网 发布:电脑无线mac地址查询 编辑:程序博客网 时间:2024/06/03 09:42

1. spring jdbc Template 提供jdbc模板, 类似于dbutils工具.

   导入相关三个jar包,


2. 创建一个数据库连接池:
    1. new  drivermanagerdatasource() setdriverclassname()     seturl() setusername           setpassword

    2. new jdbcTemplate().setdatasource(1);  2.execute(sql语句);  


3.在xml中配置: 声明bean drivermanagedatesource, 配置四个属性

  声明 jdbcTemlate;


4.c3po开源连接池配置: 导入c3po相关的jar包.在xml中配置.


5. 映入外部的properties文件  <context:property-placheolder loaction="classpath:bd.properties">

6. 在property标签的value="${属性名}"


7. jdbcTemplate.update("sql语句",参数1,参数2)就可以执行insert update ,delete


8. 返回简单的: jdbcTemplate.queryforobject("sql语句",返回值类型.class,参数)


9. 返回一个复杂domain对象,可以使用queryforobject("sql", new ROWMapper<类名){
       重写的方法.rs.getxxx("成员属性名"), rownum行号;
  }

  查询多个 query()


10. rowmapper 他有一个实现类, beanpropertyrowmapper,  spring2.5提供的.

   实体类无参数的构造,列的名字当前属性对应,

  jdbcTemplate.queryforobject("sql语句",new Beanproperty<>(返回值类型.class),参数)


11. daoimp extends jdbcdaosupprot ,    在xml中,声明daoimp这个bean, 把datasoure注入.

    在daoimp,this.jdbcTemplate


12.spring 事物管理的优点:

  1.提供一致的对于不同的事物管理的API

  2.支持声明式事务管理

  3.优秀的整合与spring的数据访问

  4.事物管理的三个接口: platformtransactionst(事物管理器) transactionstatus(事物运行状态)

    transactiondefinition 事物的一些相关信息 例如隔离 传播 超时,只读

 
13. Platformtransactionmanager: 平台事物管理器 作用: 解决在不同的持久化层技术事物代码不同问题.

    datasourcesactionmanager  用于mybatis

    hibernatesactoinmanager 用于hibernate


14.隔离 transactiondefinition 中定义大量的常量:

         ioslation_defualt 后端数据库默认的隔离级别

         ioslation_read_uncommited: 脏读,不可重复读,虚读都不解决.


  超时 timeout_default 默认值是-1 ,数据库超时


  只读 : 一般用与查询 true/false


  传播: 解决的是两个被事物管理的方法互相调用问题.它与数据库没关系.

  propagation required:  默认值 两个操作处于同一事物,

  PROPAGATION_REQUIRES_NEW 两个操作处于不同的事务

   PROPAGATION_NESTED

   它是一种嵌套事务,它是使用SavePoint来实现的。事务回滚时可以回滚到指定的savepoint

   注意:它只对DataSourceTransactionManager有作用


15.声明式事物管理:  1.编码方案: 不建议使用,具有侵入性,在原有的业务代码基础上去添加事物管里代码

  2.声明式事物控制,基于aop对目标进行代理,添加around环绕通知.


16. 基于xml事物管理:

    添加aop和tx名称空间   1.声明事物管理器:

    2.配置通知 对于增强 ,使用spring <tx:advice id="" transaction-manager=>
 
       <tx:attributes><tx:method name="操作的方法,可以使用通配符"  增强方法到程度选择:

         isolation="隔离级别" propagation="事物传播"

         timeout="超时时间默认值" read-only是否只读

         rollback-for 设置一个异常,产生异常,触发事物回滚 no- rollback-for不会发生事物回滚 >


    3.配置切面:使用传统的spring配置 , 增强哪个方法


17. 基于注解事物管理:  可以使用 @Transaction(属性....) 在类或方法上添加事物管理.

     xml中开启注解事物扫描 <tx:annotation-driven transaction-manage="">



原创粉丝点击