当前位置: 首页 > news >正文

福州cms建站上海到北京飞机几小时

福州cms建站,上海到北京飞机几小时,网站设计怎么做视频,赚钱软件的套路目录 Spring ORM#xff08;Object-Relational Mapping#xff09;作用核心组件使用步骤事务管理代码演示优点挑战总结 Spring Transaction#xff08;Spring事务管理#xff09;事务的基本概念Spring事务管理的类型声明式事务管理事务的传播行为#xff08;PropagationObject-Relational Mapping作用核心组件使用步骤事务管理代码演示优点挑战总结 Spring TransactionSpring事务管理事务的基本概念Spring事务管理的类型声明式事务管理事务的传播行为Propagation事务的隔离级别Isolation事务的回滚规则编程式事务管理事务管理器事务管理的配置总结 Spring ORMObject-Relational Mapping Spring ORM是Spring框架中用于简化JPAJava Persistence API、Hibernate、JDOJava Data Objects和其他ORM工具与Spring框架集成的模块。它提供了一套统一的API使得开发者可以轻松地与各种ORM工具进行集成而不需要直接处理底层的ORM框架细节。下面我将详细介绍Spring ORM的关键概念和工作机制。 作用 Spring ORM模块的主要作用是简化和规范数据访问层的开发。它通过提供模板类和DAOData Access Object支持使得开发者可以专注于业务逻辑的实现而不必关注数据访问层的复杂性。Spring ORM模块不仅支持标准的JPA还支持流行的ORM框架如Hibernate和JDO。 核心组件 LocalSessionFactoryBean: 这是一个用于配置Hibernate的工厂bean它创建一个SessionFactorySessionFactory是Hibernate中的核心接口负责提供数据库的会话对象Session。在Spring中你可以通过XML或Java配置来定义这个bean。 HibernateTemplate: 它是Spring提供的一个简化Hibernate数据访问的模板类。通过这个类开发者可以避免冗长的Hibernate会话管理代码直接执行CRUD创建、读取、更新、删除操作。 JpaTemplate: 类似于HibernateTemplate但用于JPA。它简化了JPA EntityManager的使用。 JpaTransactionManager: 这是一个Spring提供的事务管理器用于管理JPA的事务。它使得JPA事务管理与Spring的声明式事务管理相结合简化了事务的配置和使用。 使用步骤 配置ORM工具: 首先你需要配置你选择的ORM工具如Hibernate或JPA。这通常涉及到配置数据库连接信息、实体类以及其他相关设置。 定义实体类: ORM工具依赖于实体类来映射数据库表。在Spring ORM中实体类是普通的Java类并使用注解或XML来标记它们与数据库表的关系。 配置Spring与ORM的集成: 使用Spring配置文件或Java配置类将Spring与ORM工具集成。例如配置LocalSessionFactoryBean对于Hibernate或EntityManagerFactory对于JPA。 使用模板类执行数据操作: 在DAO层可以使用HibernateTemplate或JpaTemplate类执行数据操作。Spring ORM模板类简化了与数据库的交互处理了会话的打开和关闭、事务的启动和提交等细节。 事务管理: 使用Spring的事务管理器如JpaTransactionManager管理事务。通过Spring的声明式事务管理你可以通过注解或XML配置来指定哪些方法需要事务支持。 事务管理 Spring ORM与Spring的事务管理紧密集成。你可以使用Spring的声明式事务管理通过在服务层方法上使用Transactional注解来声明事务。Spring将会自动处理事务的开启、提交和回滚确保数据的一致性。 代码演示 展示了如何使用Spring ORM与Hibernate集成 Configuration EnableTransactionManagement public class HibernateConfig {Beanpublic DataSource dataSource() {DriverManagerDataSource dataSource new DriverManagerDataSource();dataSource.setDriverClassName(com.mysql.cj.jdbc.Driver);dataSource.setUrl(jdbc:mysql://localhost:3306/mydb);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}Beanpublic LocalSessionFactoryBean sessionFactory() {LocalSessionFactoryBean sessionFactory new LocalSessionFactoryBean();sessionFactory.setDataSource(dataSource());sessionFactory.setPackagesToScan(com.example.entity);sessionFactory.setHibernateProperties(hibernateProperties());return sessionFactory;}Beanpublic HibernateTransactionManager transactionManager() {HibernateTransactionManager transactionManager new HibernateTransactionManager();transactionManager.setSessionFactory(sessionFactory().getObject());return transactionManager;}private Properties hibernateProperties() {Properties properties new Properties();properties.put(hibernate.dialect, org.hibernate.dialect.MySQLDialect);properties.put(hibernate.show_sql, true);return properties;} }在这个配置类中我们配置了数据源、Hibernate的SessionFactory以及Spring的事务管理器。通过这种方式我们可以在Spring的服务层轻松地使用Hibernate进行数据库操作并利用Spring的声明式事务管理确保数据一致性。 优点 简化数据访问层的开发: Spring ORM提供了一致的API简化了数据访问层的开发。集成了事务管理: Spring ORM与Spring的事务管理无缝集成支持声明式事务。支持多种ORM框架: Spring ORM不仅支持JPA还支持Hibernate、JDO等多种ORM工具。 挑战 学习曲线: 对于我们初学者来说理解Spring ORM与各种ORM工具的集成和配置可能需要一些时间。与ORM框架的依赖: 尽管Spring ORM简化了ORM框架的使用但在使用具体的ORM框架时开发者仍需要熟悉该框架的工作原理和配置。 总结 Spring ORM通过简化ORM工具与Spring框架的集成帮助开发者专注于业务逻辑的实现同时提供了强大的事务管理和统一的数据访问API。 Spring TransactionSpring事务管理 该模块是Spring框架的核心模块之一它提供了一种强大而灵活的事务管理机制可以在Java应用中处理复杂的事务场景。Spring的事务管理抽象了底层的事务处理逻辑支持声明式和编程式的事务管理方式使开发者可以专注于业务逻辑而不用处理繁琐的事务管理细节。 事务的基本概念 事务是一组要么全部执行成功、要么全部失败的操作单元。在数据库操作中事务保证数据的一致性、隔离性、持久性和原子性即ACID属性。 原子性Atomicity: 事务中的操作要么全部完成要么全部不完成。一致性Consistency: 事务开始和结束时数据都必须处于一致状态。隔离性Isolation: 事务的执行过程不会被其他事务干扰。持久性Durability: 事务一旦提交结果就会永久保存。 Spring事务管理的类型 编程式事务管理: 开发者在代码中显式管理事务的开始、提交和回滚。这种方式提供了最大的灵活性但也增加了代码的复杂性。 声明式事务管理: 使用注解或XML配置来声明事务的边界Spring容器会自动管理事务的开始、提交和回滚。声明式事务管理是Spring事务管理中最常用的方式。 声明式事务管理 声明式事务管理是通过Transactional注解实现的。这个注解可以应用在类或者方法上用来标记该类或方法需要事务支持。 Service public class MyService {Transactionalpublic void performTransaction() {// 业务逻辑代码} }在上面的示例中Transactional注解声明performTransaction()方法在执行时会启动一个事务。如果方法执行过程中抛出一个未捕获的运行时异常RuntimeException事务将会自动回滚。如果方法执行成功事务将会提交。 事务的传播行为Propagation 事务传播行为定义了一个事务方法在调用另一个事务方法时应该如何进行事务管理。Spring支持以下几种传播行为 REQUIRED: 默认传播行为表示当前方法必须在一个事务中运行。如果当前已经存在一个事务则加入该事务否则新建一个事务。 REQUIRES_NEW: 总是新建一个事务。如果当前存在一个事务则挂起该事务。 NESTED: 如果当前已经存在事务则嵌套在该事务中运行否则新建一个事务。嵌套事务可以独立于外部事务进行回滚。 MANDATORY: 当前方法必须在一个已有事务中运行如果没有事务则抛出异常。 NOT_SUPPORTED: 当前方法不需要事务。如果当前存在事务则挂起该事务。 NEVER: 当前方法不需要事务。如果当前存在事务则抛出异常。 SUPPORTS: 如果当前存在事务则加入该事务如果不存在事务则以非事务方式运行。 事务的隔离级别Isolation 事务的隔离级别控制了事务之间的可见性。Spring支持以下几种隔离级别 DEFAULT: 使用底层数据库的默认隔离级别。 READ_UNCOMMITTED: 最低的隔离级别允许读取尚未提交的数据可能导致脏读。 READ_COMMITTED: 只允许读取已提交的数据避免脏读。 REPEATABLE_READ: 确保在同一个事务中多次读取的数据一致防止不可重复读。 SERIALIZABLE: 最高的隔离级别完全隔离事务串行执行防止脏读、不可重复读和幻读。 事务的回滚规则 默认情况下Spring只在遇到未捕获的运行时异常RuntimeException或错误Error时才回滚事务。如果希望在捕获的异常或检查异常CheckedException下也回滚可以通过Transactional注解的rollbackFor属性来指定。 Transactional(rollbackFor Exception.class) public void performTransaction() throws Exception {// 业务逻辑代码if (someCondition) {throw new Exception(触发回滚);} }编程式事务管理 编程式事务管理使用Spring提供的TransactionTemplate或PlatformTransactionManager来手动管理事务。虽然这种方式提供了更灵活的控制但一般情况下不建议使用除非有特殊的需求。 Service public class MyService {Autowiredprivate PlatformTransactionManager transactionManager;public void performTransaction() {TransactionTemplate template new TransactionTemplate(transactionManager);template.execute(status - {try {// 业务逻辑代码} catch (Exception e) {status.setRollbackOnly();}return null;});} }事务管理器 Spring支持多种事务管理器根据使用的持久化技术选择合适的事务管理器 DataSourceTransactionManager: 用于JDBC的事务管理。JpaTransactionManager: 用于JPA的事务管理。HibernateTransactionManager: 用于Hibernate的事务管理。JtaTransactionManager: 用于分布式事务的事务管理。 事务管理的配置 Spring事务管理可以通过XML或Java配置。以下是Java配置的示例 Configuration EnableTransactionManagement public class TransactionConfig {Beanpublic DataSourceTransactionManager transactionManager(DataSource dataSource) {return new DataSourceTransactionManager(dataSource);} }EnableTransactionManagement注解启用了Spring的声明式事务管理。 总结 Spring事务管理通过抽象底层的事务处理逻辑使开发者可以专注于业务逻辑而不必处理复杂的事务管理细节。声明式事务管理提供了一种方便且强大的方式来管理事务而Spring对事务传播行为、隔离级别和回滚规则的支持使得它能够应对各种复杂的事务场景。
http://www.dnsts.com.cn/news/104055.html

相关文章:

  • 网站更新维护中山有网站建设公司吗
  • icp备案 网站负责人孝义网站开发
  • 网站分站系统手机网站定制方案
  • 自己建立网站教程个人怎么做淘宝客网站
  • 国外网站页面做多大建一个手机网站需要多少钱
  • 网站建设技术开发江苏市场监督管理局旗舰店
  • 电子商务网站建设需要多少钱网站建设的总结200字
  • 建设网站ppt做阿里巴巴网站图片尺寸
  • 新乡市建设路小学网站wordpress 火车发布
  • 为学校建设网站html5手机wap网站模板
  • 找事做网站怎样开网店详细步骤
  • 网站建设设计哪家好昆明做网站那家好
  • 安徽网站建设系统工程预算培训
  • 沧州开发网站多少钱wordpress取消默认图片
  • 网站开发需求确认书查询企业联系方式的软件
  • 保定网络营销网站中联汇科 网站建设
  • 太极馆如何做网站搬瓦工服务器用来做网站
  • 张家口建设部网站中山网站建设咨询
  • 企业高端网站制作凡科互动公司
  • 小清新网站设计深圳哪里有做网站
  • 海口小微企业网站建设阜阳万维网站建设
  • 网站备案幕布照如何做山东建设监理协会网站
  • 网站制作 信科网络品牌网站的建设
  • 网站开发 京东浙江网站推广公司
  • 站长平台怎么做网站wordpress的cdn加速
  • 做网站公司电话wordpress 简洁模板
  • 做百度推广需要自己有个网站吗高清设计网站推荐
  • 做网站展示软件网站建设如何选择域名
  • 网站建设 企业兼容手机的网站
  • 重庆旅游网站建设公司甘肃兰州事件