欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mybatis之typeAlias配置的3种方式小结

程序员文章站 2022-03-09 22:09:14
目录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();
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。