# learning-spring-boot-mysql **Repository Path**: venfu/learning-spring-boot-mysql ## Basic Information - **Project Name**: learning-spring-boot-mysql - **Description**: 基于springboot+spring-data-jpa抽取的基类实现 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-01-18 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #learning-spring-boot-mysql http://localhost:8090/ admin/admin #@Transactional(isolation=Isolation.DEFAULT) 事务的使用 /** * 事务的隔离级别:Isolation.DEFAULT * DEFAULT:这是默认值,表示使用底层数据库的默认隔离级别。对大部分数据库而言,通常这值就是:READ_COMMITTED。 * READ_UNCOMMITTED:该隔离级别表示一个事务可以读取另一个事务修改但还没有提交的数据。该级别不能防止脏读和不可重复读,因此很少使用该隔离级别。 * READ_COMMITTED:该隔离级别表示一个事务只能读取另一个事务已经提交的数据。该级别可以防止脏读,这也是大多数情况下的推荐值。 * REPEATABLE_READ:该隔离级别表示一个事务在整个过程中可以多次重复执行某个查询,并且每次返回的记录都相同。即使在多次查询之间有新增的数据满足该查询,这些新增的记录也会被忽略。该级别可以防止脏读和不可重复读。 * SERIALIZABLE:所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。但是这将严重影响程序的性能。通常情况下也不会用到该级别 * * * 事务的传播行为:Propagation.REQUIRED REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。 * SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。 * MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。 * REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。 * NOT_SUPPORTED:以非事务方式运行,如果当前存在事务,则把当前事务挂起。 NEVER:以非事务方式运行,如果当前存在事务,则抛出异常。 * NESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于REQUIRED。 * */ #混用springdata-jpa和springdata-mongo数据源 spring: data: mongodb: uri: mongodb://localhost/test port: 27017 #mysql 1.yml配置: datasource: url: jdbc:mysql://localhost/test username: root password: root driver-class-name: com.mysql.jdbc.Driver jpa: show-sql: true hibernate: ddl-auto: update #create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。 #create-drop:每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。 #update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。 #validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。 #-- o.s.jdbc.datasource.init.ScriptUtils:初始化执行data.sql文件 # 整合redis的使用 1.引入springboot跟redis的整合依赖 org.springframework.boot spring-boot-starter-redis 2.