fastmybatis 2.1.0 发布,支持多租户、ActiveRecord 模式

fastmybatis 2.1.0 发布,本次更新内容如下:

  • 支持多租户
  • 新增ActiveRecord模式

多租户

fastmybatis支持两种方式实现多租户:通过字段隔离,通过表名隔离

具体实现方式参考文档:多租户

ActiveRecord模式

实体类实现com.gitee.fastmybatis.core.support.Record接口即可拥有ActiveRecord模式

实体类:

/**
 * Active Record
 * 表名:user_info
 * 备注:用户信息表
 */
@Table(name = "user_info")
public class UserInfoRecord implements Record {
    ...
}

测试用例:

    // 保存全部字段
    @Test
    public void save() {
        UserInfoRecord userInfoRecord = new UserInfoRecord();
        userInfoRecord.setUserId(11);
        userInfoRecord.setCity("杭州");
        userInfoRecord.setAddress("西湖");
        boolean success = userInfoRecord.save();
        Assert.assertTrue(success);
    }

    // 保存不为null的字段
    @Test
    public void saveIgnoreNull() {
        UserInfoRecord userInfoRecord = new UserInfoRecord();
        userInfoRecord.setUserId(11);
        userInfoRecord.setCity("杭州");
        userInfoRecord.setAddress("西湖");
        boolean success = userInfoRecord.saveIgnoreNull();
        Assert.assertTrue(success);
    }

    // 修改全部字段
    @Test
    public void update() {
        UserInfoRecord userInfoRecord = new UserInfoRecord();
        userInfoRecord.setId(4);
        userInfoRecord.setUserId(11);
        userInfoRecord.setCity("杭州");
        userInfoRecord.setAddress("西湖");
        boolean success = userInfoRecord.update();
        Assert.assertTrue(success);
    }

    // 修改不为null的字段
    @Test
    public void updateIgnoreNull() {
        UserInfoRecord userInfoRecord = new UserInfoRecord();
        userInfoRecord.setId(5);
        userInfoRecord.setUserId(11);
        userInfoRecord.setCity("杭州");
        userInfoRecord.setAddress("西湖");
        boolean success = userInfoRecord.updateIgnoreNull();
        Assert.assertTrue(success);
    }

    // 保存或修改不为null的字段
    @Test
    public void saveOrUpdateIgnoreNull() {
        UserInfoRecord userInfoRecord = new UserInfoRecord();
        userInfoRecord.setUserId(11);
        userInfoRecord.setCity("杭州");
        userInfoRecord.setAddress("西湖");
        boolean success = userInfoRecord.saveOrUpdateIgnoreNull();
        Assert.assertTrue(success);
        System.out.println("id:" + userInfoRecord.getId());
    }


    // 删除记录
    @Test
    public void delete() {
        UserInfoRecord userInfoRecord = new UserInfoRecord();
        userInfoRecord.setId(8);
        boolean success = userInfoRecord.delete();
        Assert.assertTrue(success);
    }

关于fastmybatis

fastmybatis是一个mybatis开发框架,其宗旨为:简单、快速、有效。

  • 零配置快速上手
  • 无需编写xml文件即可完成CRUD操作
  • 支持mysql、sqlserver、oracle、postgresql、sqlite
  • 支持自定义sql,对于基本的增删改查不需要写SQL,对于其它特殊SQL(如统计SQL)可写在xml中
  • 支持与spring-boot集成,依赖starter即可
  • 支持插件编写
  • 支持ActiveRecord模式
  • 支持多租户
  • 提供通用Service
  • 轻量级,无侵入性,是官方mybatis的一种扩展

猜你喜欢

转载自www.oschina.net/news/187987/fastmybatis-2-1-0-released