Mybatis Mapper

Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案

怎甘沉沦 提交于 2019-11-30 09:47:59
相信使用Mybaits的小伙伴们一定会经常编写类似如下的代码: 可以看到 userMapper 下有个红色警告。虽然代码本身并没有问题,能正常运行,但有个警告总归有点恶心。本文分析原因,并列出解决该警告的几种方案。 原因 众所周知,IDEA是非常智能的,它可以理解Spring的上下文。然而 UserMapper 这个接口是Mybatis的,IDEA理解不了。 而 @Autowired 注解,默认情况下要求依赖对象(也就是 userMapper )必须存在。而IDEA认为这个对象的实例/代理是个null,所以就 友好地给个提示 。 解决方案 方法1:为 @Autowired 注解设置required = false 使用 @Autowired 注解时,若希望允许null值,可设置required = false,像这样: @Autowired(required = false) private UserMapper userMapper; 这样就不会有警告了。原因很好理解:IDEA认为userMapper是个null,给了警告;加上required = false后,使用 @Autowired 注解不再去校验userMapper是否存在了。也就不会有警告了。 总结 :这种方式有点蛋疼。一个庞大的既有项目,可能到处都在引用Mapper,总不能到处都补上 required = false

Intellij Idea 使用日常记录

假装没事ソ 提交于 2019-11-30 03:15:45
作者使用的Idea版本: 1.去除Mybatis Mapper Xml文件中Sql语句块绿色背景 问题描述:idea中使用mybatis开发,mapper的xml中SQL语句快背景是绿色的,看起来很不舒服,如下图所示: 解决办法:按照File—>Settings—>Editor—Color Scheme—>general打开xml背景色设置窗口,点开Code项目,选择第三个Injected Language Fragment ,然后去掉Background的颜色的钩 2.关闭单词拼写检查 问题描述:在idea中我们写的单词或者一些我们自定义的缩写词,idea默认开启了拼写检查,idea不认识就会报出一个小提醒(下划绿色波浪线),如下图所示: 解决办法:按照File—>Settings—> Editor—> Inspections 打开设置窗口,在搜索框输入Spelling,然后取消typo选项的勾应用保存即可 3.解决Freemarker标签在Html页面不解析的问题 问题描述:在springboot项目中引入Freemarker,然后设置Freemarker解析.html,但是在html页面中使用Freemarker的标签不能被识别,但是能正常使用,问题如下图: 解决办法:按照File—>Settings—> Editor—> File Type 打开设置窗口

Mybatis Mapper.xml 配置文件中 resultMap 节点的源码解析

ε祈祈猫儿з 提交于 2019-11-28 23:20:30
相关文章 Mybatis 解析配置文件的源码解析 Mybatis 类型转换源码分析 Mybatis 数据源和数据库连接池源码解析(DataSource) Mybatis Mapper 接口源码解析(binding包) Mybatis 解析 SQL 源码分析一 前言 在上篇文章 Mybatis 解析 SQL 源码分析一 介绍了 Maper.xml 配置文件的解析,但是没有解析 resultMap 节点,因为该解析比较复杂,也比较难理解,所有单独拿出来进行解析。 在使用 Mybatis 的时候,都会使用resultMap节点来绑定列与bean属性的对应关系,但是一般就只会使用其简单的属性,他还有一些比较复杂的属性可以实现一些高级的功能,在没查看源码之前,我也只会简单的使用,很多高级的用法都没有使用过,通过这次学习,希望能在工作使用,能够写出简洁高效的SQL。 resultMap的定义 先来看看 resultMap 节点的官方定义: 简单的使用: <resultMap id="userResultMap" type="User"> <id property="id" column="user_id" /> <result property="username" column="user_name"/> <result property="password" column="hashed

Mybatis mapper接口与xml文件路径分离

≡放荡痞女 提交于 2019-11-27 07:21:18
为什么分离 对于Maven项目,IntelliJ IDEA默认是不处理src/main/java中的非java文件的,不专门在pom.xml中配置<resources>是会报错的,参考 这里 。 所以src/main/java中最好不要出现非java文件。实际上,将mapper.xml放在src/main/resources中比较合适。 如何分离 首先,mapper肯定是不能配在mybatis-config.xml的<Mappers>里了,因为里面的方式都需要接口和xml在统一文件夹下 <!-- 将sql映射注册到全局配置中--> <mappers> <!-- mapper 单个注册(mapper如果多的话,不太可能用这种方式) resource:引用类路径下的文件 url:引用磁盘路径下的资源 class,引用接口 package 批量注册(基本上使用这种方式) name:mapper接口与mapper.xml所在的包名 --> <!-- 第一种:注册sql映射文件--> <mapper resource="com/spldeolin/mapper/UserMapper.xml" /> <!-- 第二种:注册接口 sql映射文件必须与接口同名,并且放在同一目录下--> <!--<mapper class="com.spldeolin.mapper.UserMapper" />--