三大框架汤阳光spring2.5课程_第1页
三大框架汤阳光spring2.5课程_第2页
三大框架汤阳光spring2.5课程_第3页
三大框架汤阳光spring2.5课程_第4页
三大框架汤阳光spring2.5课程_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据Spring+JDBC组合开准备测试用的数据库与createdatabaseidINTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,nameVARCHAR(45),ageINTEGERUNSIGNED,PRIMARYKEY(`id`))配置数据源c3p0c3p0的jar包添加到工程中。我们在配置时把数据库连接信perties文件中。使用外部的properties ceholderlocation="classpath:perties"定义c3p0<beanid="dataSource" boPooledDataSource"><propertyname="jdbcUrl"<propertyname="driverClass"<propertyname="user"<propertyname="password"<!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default3<propertyname="initialPoolSize"<!--连接池中保留的最小连接数。Default3<propertyname="minPoolSize"<!--连接池中保留的最大连接数。Default15<propertyname="maxPoolSize"<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default3<propertyname="acquireIncrement"<!--最大空闲时间,1800秒内未使用则连接被丢弃,若为0则永不丢弃。Default0<propertyname="maxIdleTime"jdbcUrljdbcUrl=jdbc:mysql://localhost:3306/jdbcdriverClass=com.mysql.jdbc.Driverusername=rootpassword=配置 <!--<!--定义 te--<bean te" <propertyname="dataSource" teexecute(..)方publicpublicvoidaddUser(finalUseruser) te.execute(newConnectionCallback()public nConnection(ConnectionthrowsSQLException, ceptionStringsql="insertintot_user(name,age)values(?,?)";PreparedStatementps=con.prepareStatement(sql);ps.setString(1,user.getName());ps.setInt(2,user.getAge());return}}使用 te做增删改操insertpublicvoidaddUser(finalUseruser) te.update("insertintot_user(name,age)newObject[user.getName()user.getAge(有null}updatepublicvoidupdateUser(Useruser) te.update("updatet_usersetname=?,age=?whereid=?",newObject[]{user.getName(),user.getAge(),user.getId()}deletepublicvoiddeleteUser(Integerid) te.update("deletefromt_userwhereid=?",newObject[]{id} 使用 te做查询操publicUserqueryById(finalIntegerid)Stringsql="selectname,agefromt_userwherereturn te.queryForObject(sql,newObject[]{id},new{publicObjectmapRow(ResultSetrs,introwNum)throwsSQLException{Stringname=rs.getString("name");intage=returnnewUser(id,name,}}publicList<User>queryAll()Stringsql="selectid,name,agefromreturn te.query(sql,newRowMapper()publicObjectmapRow(ResultSetrs,introwNum)throwsSQLException{Integerid=rs.getInt(1);Stringname=rs.getString(2);Integerage=rs.getInt(3);returnnewUser(id,name,age);}}publicintqueryCount()Stringsql="selectcount(*)fromreturn 事务管事务的此过程种出现了差错,比一条SQL语句没有执行成功,那么这一组操作都将全部回仅用四个词解释事务Isolate(性):用户间操作不相数据库系统的四种事务级允许在并发事务已经提交后。可防止脏读,但幻读和不对相同字段的多次是一致的除非数据被事务本身改变完全服从ACID的级别,确保不发生脏、幻、不可重复读这在所有的级别中是最慢的,它是典型的通过完全锁定在 ReadCommited:读已提交数据(会出现不可重复读和幻读RepeatableRead:可重复读(会出现幻读脏读不可重复读到另一事务已提交的更新数据。相反,“可重复读”在同一事务中多次数据时,能够保证幻读不同的级别采用不同的锁类型来实现,在四种级别中,Serializable的 mited的级别最低。大多数据库默认的级别为ReadCommited,如当然也有少部分数据库默认的级别为Repeatable_Read,如Oracle数据库支持READCOMMITTED和SERIALIZABLE两种事务性级别,不支持READMITTED和REPEATABLEREAD这两种性级别。虽然SQL标准定义的默认事务性级别是SERIALIZABLE,但是Oracle数据库默认使用的事务性READCOMMITTED.标准中定义4种,MySQL支持4种,Oracle2种。默认值也不一样Spring对事务管理的支Spring提供了两种事务管理方式:你可以通过程序代码来控制你的事务何时开始,何时结束等,与后面介绍的式事务管理式事务管理如果你并不需要细粒度的事务控制,你可以使用式事务,在g中,你只需要gg件中移除该设置如果使用Spring,我们就不再需要手工控制事务事务规则(行为行意(默认值如果没有活动事务,则按REQUIRED属性执行.它使用了一个单独的事务,DataSourceTransactionManager事务事务管在单一的ce中的管理当持久化机 e当持久化机制是Jdo使用一个JTA实现来管理事务。在一个事务多个资源时必须使当ojb用作持久化机制式事务管理——基于XML配<<beansxmlns=""""""1,配置事务管理器(应根据情况使用合适的事务管理器)<beanid="transactionManager"<propertyname="dataSource"2,配置管理事务的“通知<tx:adviceid="txAdvice"transaction-指定所有以add,delete,update开头的方法都使用事务,默认read-only="false"--><tx:methodname="add*"<tx:methodname="delete*"<tx:methodname="update*"指定所有以query<tx:methodname="query*"read-only="true"3<!--指 所有Dao中的方法--<aop:advisoradvice-ref="txAdvice"pointcut="execution(*<tx:adviceid="txAdvice"transaction-<!--thetransactionalsemantics...--<!--allmethodsstartingwith'get'areread-only--<tx:methodname="get*"read-<!--othermethodsusethedefaulttransactionsettings(seebelow)--<tx:method1.2.7.式事务管理——基于注解配////publicvoidaddUser(finalUseruser) te.update("insertintot_user(name,age)newObject[]{user.getName(),user.getAge()}//@Transactional(readOnly=publicintqueryCount()Stringsql="selectcount(*)fromreturn }方法的事务设置将被优先执行。例如:UserServiceImpl类在类的级别上被注解为只@Transactional注解可以被继承,即:在父类上了这个注解,则子类中的所Hibernate3整分别添加Hibernate3Spring的开发环Spring中配置配置SessionFactory<beanid="sessionFactory"<propertyname="configLocation"<property<bean <propertyname="jdbcUrl"<propertyname="driverClass"<propertyname="user"<propertyname="password"<propertyname="initialPoolSize"<propertyname="maxPoolSize"<propertyname="minPoolSize"<propertyname="acquireIncrement"<propertyname="maxIdleTime"在Spring中配置式事务管自动扫描与装配bean ponent-scanbase-<!--对象<beanid="transactionManager"<propertyname="sessionFactory"<tx:annotation-driventransaction-manager="transactionManager"方法一:使用 <!--<!--配置 te--<bean <propertyname="sessionFactory"略方法二:使用注入的SessionFactory(推荐//在类上 publicclassUserDaoImplimplementsUserDao注入sessionFactoryprivateSessionFactory//publicvoidsave(Useruser){}//publicvoiddelete(Longid)Objectobj=getSession().get(User.class,}////@Tran

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论