mybatis.type-aliases-package之巨坑的解决
mybatis.type-aliases-package之巨坑
mapper.xml中的resultType中经常会用到一些自定义POJO,你可以用完全限定名来指定这些POJO的引用
例如:
<select id="getUsers" resultType="com.majing.learning.mybatis.entity.User">,
又或者你可以通过在application.properties中指定POJO扫描包来让mybatis自动扫描到自定义POJO
如下:
mybatis.type-aliases-package=com.majing.learning.mybatis.entity
但是,请千万注意,不要再mybatis.type-aliases-package=后面接classpath这个单词,否则,mybatis会找不到POJO。
mybatis.type-aliases-package作用和用法
在mapper.xml文件中的resultMap的type或者parameterType会用到自定义的POJO。
例如:
<mapper namespace="com.example.demo.mapper.UserMapper"> <select id="findAll" resultType="User"> select * from User </select> <select id="findByName" resultType="User"> select * from User where username=#{username} </select> <select id="findPswByName" resultType="String"> select password from user where username = #{username} </select> <insert id="save"> insert into user(username,password) value (#{username},#{password}) </insert> </mapper>
其中resultType=“User”中,User就是自定义的POJO,此时可以使用完全限定名来指定这些POJO的引用
例如:
<select id="findByName" resultType="com.example.entity.User">
第二种方法就是使用mybatis.type-aliases-package来指定POJO扫描包来让mybatis自动扫描到自定义的POJO。
在application.propertites配置文件中配置如下信息:mybatis.type-aliases-package=com.example.entity
mybatis.type-aliases-package=com.example.demo.entity
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
SpringBoot整合Mybatis,解决TypeAliases配置失败的问题
问题描述 在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来. 在Mybatis的文档明确写出,如果你没有明确定义实体类的Aliase,框架会自动将Class Name自动作为别名. 那么问题来了,当使用java -jar xxx.jar&启动的时候,会报出以下错误, Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'XXXXX'.
-
mybatis升级mybatis-plus时踩到的一些坑
前言 最近使用RuoYi-Vue来做后台管理脚手架.RuoYi-Vue 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot.Spring Security.MyBatis.Jwt.Vue),内置模块如:部门管理.角色用户.菜单及按钮授权.数据权限.系统参数.日志管理.代码生成等.在线定时任务配置:支持集群,支持多数据源.其官方文档如下 http://doc.ruoyi.vip/ 感兴趣的朋友,可以点链接查看.这个平台目前的orm框架是mybatis,而项目组的o
-
Springboot+Mybatis中typeAliasesPackage正则扫描实现方式
Mybatis typeAliasesPackage正则扫描 mybatis默认配置typeAliasesPackage是不支持正则扫描package的,因此需要手动继承org.mybatis.spring.SqlSessionFactoryBean,自己实现正则扫描,方法和传统的spring+mybatis没什么区别,不同的是一个需要继承类一个是使用的扫描实现. 对于两个或多个扫描路径,例: cn.com.onethird.integration.entity cn.com.onethird.
-
Mybatis中typeAliases的使用
最近写接口的时候,关于返回值resultType="com.whiteme.po.User"之类的东西想来觉得有简化的方法,再看看一些代码发现果然有,于是写了这篇博客记录一下,这样的好处可能是以后包名换了比较好改(虽然可能性低),但是他解决了写全路径的问题,简化开发 typeAliases 单个定义 <typeAliases> <typeAlias alias="users" type="com.whiteme.po.Users&quo
-
详解MyBatis配置typeAliases的方法
0x00:前言参考 之前的<MyBatis 中 SqlMapConfig 配置文件详解>记了一下 MyBatis 中的核心配置文件各个标签的作用和使用场景,这篇文章细说一下配置文件中 typeAliases 标签的详细使用. 0x01:标签介绍 在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType.resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声明该类型的全路径,java.lang.String,或者 cn
-
mybatis.type-aliases-package之巨坑的解决
mybatis.type-aliases-package之巨坑 mapper.xml中的resultType中经常会用到一些自定义POJO,你可以用完全限定名来指定这些POJO的引用 例如: <select id="getUsers" resultType="com.majing.learning.mybatis.entity.User">, 又或者你可以通过在application.properties中指定POJO扫描包来让mybatis自动扫描到自
-
MyBatis中使用foreach循环的坑及解决
目录 使用foreach循环的坑 正确写法为 忽现的Mybatis foreach失效记录 解决方案 使用foreach循环的坑 我们首先看一段MyBatis中使用foreach循环的sql: SELECT * FROM table where id in <foreach item="item" collection="ids1" open="(" close=")" index="0" separ
-
mybatis中 if-test 数字判断的坑及解决
目录 if-test数字判断的坑 mybatis的test判断注意事项 if-test数字判断的坑 在项目中偶然发现一个判断数字的if没有起任何作用,代码如下 <if test="timeType !=null and timeType!='' and timeType == '3'"> AND ... </if> 经过查询资料发现,mybatis是用OGNL表达式来解析的,在OGNL的表达式中,数字’3’会被解析成字符,java是强类型的,ch
-
关于Mybatis动态sql中test的坑点总结
目录 总结Mybatis动态sql中test的坑 判断相等的注意点 判断字符是否相等 动态sql标签的小陷阱 下面先举个正常的例子 总结Mybatis动态sql中test的坑 在mybatis中要实现动态sql,重要方式就是使用test,通过其中表达式返回的true.false来达到动态sql的拼接.随着业务的复杂,test中的判断将会越来越复杂,所以熟悉test中细节处理对动态sql来说尤为重要. 判断相等的注意点 == 少打一个= 现在我们有一个Integer类型的参数typeId,需要当t
-
Spring整合Mybatis使用<context:property-placeholder>时的坑
背景 最近项目要上线,需要开发一个数据迁移程序.程序的主要功能就是将一个数据库里的数据,查询出来经过一系列处理后导入另一个数据库.考虑到开发的方便快捷.自然想到用spring和mybatis整合一下.甚至用mybatis的自动代码生成,可以省下大量dao层的开发. 整合的坑 之前的项目:以前也有过这种类似的程序,就把spring和mybatis整合的配置直接拿来修改下用.之前的整合配置是这样子的: 1.考虑到数据库url.用户名密码的可配置性,将这些信息放入properties文件.在sprin
-
Laravel5.2使用Captcha生成验证码实现登录(session巨坑)
最近有朋友要我帮忙弄一下laravel的验证码登陆,所以稍稍研究了一下.(本人都快忘了咋使用laravel了) 首先,安装laravel就不用在下赘述了吧,我的版本是5.2.45(注:laravel5.2.6以上的版本中间件可以自动加载),这还是挺重要的. 安装完成之后,你需要使用composer来加载你的Captcha,具体方法就是在你的composer.json中的require数组中加上"gregwar/captcha":"1.*"这行代码.然后嘞,就在你的项
-
关于在LayUI中使用AJAX提交巨坑记录
如下所示: <script> layui.use(['layer', 'form','laydate'], function(){ var layer = layui.layer ,laydate=layui.laydate ,form = layui.form; form.on('submit(go)', function(data){ $.ajax({ url:'/user/addOrUpdate', method:'post', data:data.field, dataType:'JS
-
浅谈Mybatis分页插件,自定义分页的坑
场景:PageHelper 的默认分页方案是 select count(0) from (你的sql) table_count 由于查询数据比较大时,导致分页查询效率低下. 优化:使用自定义的count查询.. 废话不多说,对应代码如下: 这个时候会使用自定义的 count sql进行统计查询. 然后一般分页默认使用 PageHelper.startPage(); 作者优化:如果获取的数量大于实际数量,则进行pageNum优化. 所以 最好建议重载 startPage. 不进行优化!!! 要不然
-
浅谈Mybatis+mysql 存储Date类型的坑
场景: 把一个时间字符串转成Date,存进Mysql.时间天数会比实际时间少1天,也可能是小时少了13-14小时 Mysql的时区是CST(使用语句:show VARIABLES LIKE '%time_zone%'; 查) 先放总结: 修改方法: 1. 修改数据库时区 2. 在jdbc.url里加后缀 &serverTimezone=GMT%2B8 3. 代码里设置时区,给SimpleDateFormat.setTimeZone(...) 例外:new Date() 可以直接存为正确时间,其他
-
JSON.stringify实现深拷贝的巨坑详解
目录 当对象中有时间类型的元素时候-----时间类型会被变成字符串类型数据 当对象中有undefined类型或function类型的数据时 --- undefined和function会直接丢失 当对象中有NaN.Infinity和-Infinity这三种值的时候 --- 会变成null 当对象循环引用的时候 --会报错 总结 当对象中有时间类型的元素时候-----时间类型会被变成字符串类型数据 const obj = { date:new Date() } typeof obj.date ==
随机推荐
- Angular.js中window.onload(),$(document).ready()的写法浅析
- Windows下php+mysql5.7配置教程
- 如何使用jquery修改css中带有!important的样式属性
- Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
- Nginx单向认证的安装配置方法
- 新闻列表的分页查询java代码实现
- java 二分法详解几种实现方法
- Python的爬虫包Beautiful Soup中用正则表达式来搜索
- js禁止浏览器页面后退功能的实例(推荐)
- jQuery移动和复制dom节点实用DOM操作案例
- 封装好的js判断操作系统与浏览器代码分享
- python自定义异常实例详解
- 可简单避免的三个JS发布错误的详细介绍
- Android编程之菜单实现方法
- PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
- JavaScript QueryString解析类代码
- Android编程绘图操作之弧形绘制方法示例
- C#使用yield关键字让自定义集合实现foreach遍历的方法
- C#操作DataTable方法实现过滤、取前N条数据及获取指定列数据列表的方法
- 过滤功能对路由器性能的影响