整合Mybatis
- 在pom.xml添加相关的jar包依赖
<!-- 加载mybatis整合springboot的依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- MySQL的jdbc驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
-
在配置文件中配置mysql的链接信息
-
在mapper类上面加上@Mapper 将其变成spring容器中的bean
或者在运行入口添加@MapperScan(“com.mybatis.mapper”)注解进行扫描 -
如果将mapper.xml文件放到resources中,则需要在application.properties文件中加上mybatis.mapper-locations=classpath:mapper/*.xml进行指定文件位置
事务管理
- 在启动入口类中使用注解@EnableTransactionManagement 表示开启事务支持
- 在service方法上添加注解
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-
propagation 表示事务的规则
- PROPAGATION_REQUIRED:如果存在一个事务,则支持当前事务。如果没有事务则开启。
- PROPAGATION_SUPPORTS:如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。
- PROPAGATION_MANDATORY:如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。
- PROPAGATION_REQUIRES_NEW:总是开启一个新的事务。如果一个事务存在,则将这个存在的事务挂起。
- PROPAGATION_NOT_SUPPORTED:总是非事务地执行,并挂起任何存在的事务。
- PROPAGATION_NEVER:总是非事务地执行,如果存在一个活动事务,则抛出异常。
- PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中,如果没有活动事务,则按TransactionDefinition.PROPAGATION_REQUIRED属性执行
-
查询的注解
@Transactional(readOnly = true,propagation= Propagation.NOT_SUPPORTED)
此注解表示只读,没有事务
-
- rollbackFor 回滚抛出异常