Mybatis之typeAlias配置的3种方式小结
程序员文章站
2022-06-17 14:49:16
目录mybatis typealias配置1.定义别名2.扫描包方式3.注解方式springboot加载mybatis的typealias问题为了清晰可见,直接贴代码mybatis typealias...
mybatis typealias配置
1.定义别名
<typealiases> <typealias alias="user" type="cn.lxc.vo.user" /> </typealiases>
2.扫描包方式
<typealiases> <package name="cn.lxc.vo" /> </typealiases>
3.注解方式
package cn.lxc.vo; import org.apache.ibatis.type.alias; @alias("user") public class user { private int id; private string name; private int age; public int getid() { return id; } public void setid(int id) { this.id = id; } public string getname() { return name; } public void setname(string name) { this.name = name; } public int getage() { return age; } public void setage(int age) { this.age = age; } }
springboot加载mybatis的typealias问题
springboot打成jar之后再linux上运行会报找不到 type alias 对应的实体类的问题,这是springboot扫包的问题。
工程上默认使用的是mybatis的defaultvfs进行扫描,但是在springboot的环境下,mybatis的defaultvfs这个扫包会出现问题,所以只能修改vfs,
为了清晰可见,直接贴代码
@bean public sqlsessionfactory sqlsessionfactorybean() throws exception { logger.info("load springbootvfs"); //defaultvfs在获取jar上存在问题,使用springboot只能修改 vfs.addimplclass(springbootvfs.class); sqlsessionfactorybean sqlsessionfactorybean = new sqlsessionfactorybean(); sqlsessionfactorybean.setdatasource(datasource()); pathmatchingresourcepatternresolver resolver = new pathmatchingresourcepatternresolver(); resource[] resources1 = resolver.getresources("classpath*:/mybatis/*.xml"); resource[] resources2 = resolver.getresources("classpath*:/mysql/mapper/*.xml"); resource[] resources = (resource[]) arrayutils.addall(resources1,resources2); sqlsessionfactorybean.setmapperlocations(resources); sqlsessionfactorybean.settypealiasespackage("com.xxx.xx.entity"); return sqlsessionfactorybean.getobject(); }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。