MAPPER接口要使用@Mapper注解,不能用@Compent @Repository,否则没有效果

一、开启事物

在启动类上加

@EnableTransactionManagement //如果mybatis中service实现类中加入事务注解,需要此处添加该注解

在service类上加

@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT,timeout=36000,rollbackFor=Exception.class)

最好加在方法上

加上@Transactional 注解,如果你加在类上,那该类所有的方法都会被事务管理,如果你加在方法上,那仅仅该方法符合具体的事务。当然我们一般都是加在方法上。因为只有增、删、改才会需要事务。

二、注入mapper是注意在启动类上加注解;必须加这个,不加报错,如果不加,也可以在每个mapper上添加@Mapper注释

@MapperScan("cloud.kafka.mapper") //扫描的是mapper.xml中namespace指向值的包位置

(1)方式一:使用@Mapper注解

为了让DemoMapper能够让别的类进行引用,我们可以在DemMapper类上添加@Mapper注解:

Java代码

@Mapper

public interface DemoMapper {

@Insert("insert into Demo(name) values(#{name})")

@Options(keyProperty="id",keyColumn="id",useGeneratedKeys=true)

public void save(Demo demo);

}

直接在Mapper类上面添加注解@Mapper,这种方式要求每一个mapper类都需要添加此注解,麻烦。

(2)方式二:使用@MapperScan注解

通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如:

Java代码

@SpringBootApplication

@MapperScan("com.kfit.*.mapper")

public class App {

  public static void main(String[] args)

      {

       SpringApplication.run(App.class, args);

       }

}

或者:

Java代码

@SpringBootApplication

@MapperScan("com.kfit.mapper")

public class App {

public static void main(String[] args)

  {

    SpringApplication.run(App.class, args);

   }

}

可以根据包的结构指定不同的表达式。

使用@MapperScan注解多个包

可以使用如下的方式指定多个包:

Java代码

@SpringBootApplication

@MapperScan({"com.kfit.demo","com.kfit.user"})

public class App {

public static void main(String[] args) {

SpringApplication.run(App.class, args);

}

}

如果mapper类没有在Spring Boot主程序可以扫描的包或者子包下面,可以使用如下方式进行配置:

Java代码

@SpringBootApplication

@MapperScan({"com.kfit.*.mapper","org.kfit.*.mapper"})

public class App {

  public static void main(String[] args)

  {

    SpringApplication.run(App.class, args);

  }

}

三、使用mybatis要识别pojo的方式

1、mapper.xml中的resultType中经常会用到一些自定义POJO,你可以用完全限定名来指定这些POJO的引用,例如

<select id="getUsers" resultType="com.majing.learning.mybatis.entity.User">,

2、通过在application.properties中指定POJO扫描包来让mybatis自动扫描到自定义POJO,如下:

mybatis.type-aliases-package=com.majing.learning.mybatis.entity
    但是,请千万注意,不要再mybatis.type-aliases-package=后面接classpath这个单词,否则,mybatis会找不到POJO。

SPRINGBOOT配置事物注解和@MAPPER注意的更多相关文章

  1. Mybatis源码解读-SpringBoot中配置加载和Mapper的生成

    本文mybatis-spring-boot探讨在springboot工程中mybatis相关对象的注册与加载. 建议先了解mybatis在spring中的使用和springboot自动装载机制,再看此 ...

  2. 详解SSH注解配置,bean注解、事物注解等

    使用过SSH注解的屌丝们都知道,要想使用注解需要在applicationContext.xml配置文件里面开启注解配置,开启方式如下:1.头部声明需加入xmlns:context="http ...

  3. springboot配置ehcache2.X缓存(@Cacheable等注解和手动操作缓存的工具类 支持element粒度的时间设置)

    本文只写出一些注意事项和源码,请善用官方文档~ 注解实现 @Cacheable @CachePut @CacheEvit 启动类上加@EnableCaching就可以开启缓存 由文档可知,自动检测缓存 ...

  4. Spring-Boot项目中配置redis注解缓存

    Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...

  5. springboot 配置mybatis 配置mapper.xml

    # 插件 进行配置 也可以用yml # 1. 配置 Tomcat 修改端口号 server.port=8848 server.context-path=/zxf #2.配置数据源 spring.dat ...

  6. springboot 配置多数据源

    1.首先在创建应用对象时引入autoConfig package com; import org.springframework.boot.SpringApplication; import org. ...

  7. springboot 配置多数据源 good

    1.首先在创建应用对象时引入autoConfig package com; import org.springframework.boot.SpringApplication; import org. ...

  8. SpringBoot之常用注解

    在spring boot中,摒弃了spring以往项目中大量繁琐的配置,遵循约定大于配置的原则,通过自身默认配置,极大的降低了项目搭建的复杂度.同样在spring boot中,大量注解的使用,使得代码 ...

  9. springBoot的事物管理

    springBoot的事物管理 1:springBoot 整合单数据源事物: Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务 ...

随机推荐

  1. hdu多校第一场 1013(hdu6590)Code 凸包交

    题意: 给定一组(x1,x2,y),其中y为1或0,问是否有一组(w1,w2,b),使得上述的每一个(x1,x2,y)都满足x1*w1+x2*w2+b在y=1时大于0,在y=-1时小于0. 题解: 赛 ...

  2. AutoMapper 在你的项目里飞一会儿

    先说说DTO DTO是个什么东东? DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已. 为什么要用DTO? 1.DTO更注重数据,对领域对 ...

  3. iOS开发NSLayoutConstraint代码自动布局

    1.NSLayoutConstraint简介 适配界面大多用Masonry工具,也是基于NSLayoutConstraint写的!通过使用两个类方法实现自动布局: + (NSArray<__ki ...

  4. Python - 作为浅拷贝的list对象乘法

    运行下面这段代码 # !/usr/bin/env python3 # -*- coding=utf-8 -*- temp_a = [[0]*2]*3 temp_b = [[0]*2 for i in ...

  5. Python对接支付宝支付自实现

    Python对接支付宝支付自实现 # -*- coding: utf-8 -*- import base64 import json import urllib.parse from datetime ...

  6. C#の单例模式

    版本一: /// <summary>/// A simple singleton class implements./// </summary>public sealed cl ...

  7. Halt- Linux必学的60个命令

    1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户. 2.格式 halt [-n] [-w] [-d] [-f] [-i] [-p] 3.主要参数说明 -n:防止sync系统调用,它用在用 ...

  8. jmeter遇到的问题之Windows读取jtl文件出错

    问题描述 ① 使用linux运行jmeter.jmx文件后生成result.jtl文件 jmeter -n -t /tmp/jmeter.jmx -l /tmp/testresult/result.j ...

  9. [JZOJ3168] 【GDOI2013模拟3】踢足球

    题目 描述 题目大意 有两个队伍,每个队伍各nnn人. 接到球的某个人会再下一刻随机地传给自己人.敌人和射门,射门有概率会中. 每次射门之后球权在对方111号选手. 某个队伍到了RRR分,或者总时间到 ...

  10. Linux命令查看文件内容

    cat:一次性顺序显示文件所有内容和 cat filename tac:一次性倒序显示文件所有内容和 tac filename head:显示文件开头的若干行内容 head -n filename t ...