mybatis-mapper Mybatis-mapperMyBatis 的 sql 默认加载规则mapper 调整后的 sql 加载规则约定规则测试用例 继承 Crud Mapper 的

程序名称:mybatis-mapper Mybatis-mapperMyBatis 的 sql 默认加载规则mapper 调整后的 sql 加载规则约定规则测试用例

授权协议: Apache

操作系统: 跨平台

开发语言: Java

mybatis-mapper Mybatis-mapperMyBatis 的 sql 默认加载规则mapper 调整后的 sql 加载规则约定规则测试用例 介绍

Mybatis-mapper

Mapper 继承 CrudMapper 后,无需编写 mapper.xml 文件,即可获得 CRUD 功能

MyBatis 的 sql 认加载规则

MyBatis通过xml、sqlProvider两种方式获取sql,xml的优先级高于sqlProvider,且xml、sqlProvider中的sql不允许出现同名

mapper 调整后的 sql 加载规则

  1. sql的优先级:xml > sqlProvider > crudsql

  2. xml、sqlProvider、crudsql允许出现同名的sql,优先级高的有效

约定规则

  1. 实体类类名驼峰转下划线即为数据库表名,如类User、UserGroups对应的数据库表名为user、user_groups

  2. 实体类属性认与数据库表字段名一一对应,忽略transient修饰的属性

  3. 实体类属性id(Long、long、Integer、int类型)认对应数据库表主键;如果使用了其他的属性名或主键策略,可以使用注解@PK进行标识

  4. 既没采用认id作为主键,也没使用@PK标识主键,则认为数据库表没有单一主键;根据主键操作的删除修改、查找方法不会被注入

测试用例

public class UserMapperTest {
    public static void main(String[] args) {
        String resource = "mybatis.xml";
        InputStream in = UserMapperTest.class.getClassLoader().getResourceAsstream(resource);

        // 此处采用MybatisSessionFactoryBuilder构建sqlSessionFactory,目的是引入CrudMapper功能
        sqlSessionFactory sessionFactory = new MybatisSessionFactoryBuilder().build(in);
        sqlSession session = sessionFactory.openSession();
        UserMapper userMapper = session.getMapper(UserMapper.class);

        // 此处的selectByPK被UserMapper.xml中的selectByPK覆盖了
        User user = userMapper.selectByPK(2);
        System.out.println(user);

        user.setName("update_" + user.getName());
        // updateByPK是从CrudMapper中继承而来的,UserMapper.xml中并没有申明该sql
        userMapper.updateByPK(user);

        // 此处的selectByPK被UserMapper.xml中的selectByPK覆盖了
        user = userMapper.selectByPK(user.getPk());
        System.out.println(user);

        session.commit();
    }
}

mybatis-mapper Mybatis-mapperMyBatis 的 sql 默认加载规则mapper 调整后的 sql 加载规则约定规则测试用例 官网

http://git.oschina.net/jrl/mybatis-mapper

相关编程语言

BlazeDS 是一个基于服务器的Java 远程控制(remoting...
OVal 是一个可扩展的Java对象数据验证框架,验证的规...
Volta 是一套开发工具,专为开发分布式、实时系统应...
OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG...
JADE (Java Agent DEvelopment Framework) 是一个完...
FastMM ,在D2006和2007中已代替了原来的内存管理器。