继承 Crud Mapper 的 mybatis-mapper

码农软件 · 软件分类 · ORM/持久层框架 · 2019-09-23 17:12:35

软件介绍

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();
    }
}

本文地址:https://codercto.com/soft/d/15241.html

C#入门经典

C#入门经典

[美] Karli Watson、Christian Nagel / 齐立波、黄静 / 清华大学出版社 / 2008-12 / 118.00元

这是一本成就无数C#程序员的经典名著,厚而不“重”,可帮助您轻松掌握C#的各种编程知识,为您的职业生涯打下坚实的基础,《C#入门经典》自第1版出版以来,全球销量已经达数万册,在中国也有近8万册的销量,已经成为广大初级C#程序员首选的入门教程,也是目前国内市场上最畅销的C#专业店销书,曾两次被CSDN、《程序员》等机构和读者评选为“最受读者喜爱的十大技术开发类图书”!第4版面向C#2008和.NET......一起来看看 《C#入门经典》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试