MyBatis学习笔记(三)mybatis-config.xml都有哪些配置之typeAliases与plugins

类型别名(typeAlicases)

在mybatis-config.xml配置文件中加入类描述

  <typeAliases>
        <typeAlias type="org.mybatis.example.User" alias="User" />
    </typeAliases>

或者添加要扫描的包名

    <typeAliases>
       <package name="org.mybatis.example" />
        <!--<typeAlias type="org.mybatis.example.User" alias="User" />-->
    </typeAliases>

 并在实体类添加注解@Alias

package org.mybatis.example;

import org.apache.ibatis.type.Alias;

@Alias("User")
public class User {

    public User(String userName) {
        this.userName = userName;
    }

    public User() {
    }

    private String userName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}

然后在映射文件xml中就可以用别名了

<select id="findAll"   resultType="User" parameterType="String">
        SELECT  `userName` FROM `jc_user` LIMIT 1
    </select>

插件(plugins)

在mybatis-config.xml配置文件中加入插件类的配置

    <plugins>
        <plugin interceptor="org.mybatis.example.ExamplePlugin">
        </plugin>
    </plugins>

只需实现 Interceptor 接口,并指定想要拦截的方法签名即可,目前项目中遇到的是拿这个插件功能做了查询分页

package org.mybatis.example;

import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.plugin.*;

import java.util.Properties;

@Intercepts({@Signature(
        type= Executor.class,
        method = "query",
        args = {MappedStatement.class,Object.class})})
public class ExamplePlugin implements Interceptor {
    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        return invocation.proceed();
    }

    @Override
    public Object plugin(Object target) {
        return Plugin.wrap(target, this);
    }

    @Override
    public void setProperties(Properties properties) {

    }
}

猜你喜欢

转载自blog.csdn.net/baitianmingdebai/article/details/84945963