首页 > 其他分享 >一款新的超强的ORM框架 mybatis-mp !!!

一款新的超强的ORM框架 mybatis-mp !!!

时间:2024-07-30 10:51:17浏览次数:6  
标签:join String private ORM SysUser mybatis eq class mp

官网 :https://mybatis-mp.cn

1. 单表查询

SysUser sysUser = QueryChain.of(sysUserMapper)
        .eq(SysUser::getId, 1)
        .eq(SysUser::getUserName,'admin')
        .get();

2.VO 映射

@Data
@ResultEntity(SysUser.class)
public class SysUserVo {

    private Integer id;

    private String userName;

    //字段名字不一样时
    @ResultEntityField(property = "password")
    private String pwd;

}
SysUserVO sysUserVO = QueryChain.of(sysUserMapper)
        .eq(SysUser::getId, 1)
        .eq(SysUser::getUserName,'admin')
        .returnType(SysUserVO.class)
        .list();

join 查询

@Data
@ResultEntity(SysUser.class)
public class SysUserVo {

    private Integer id;

    private String userName;

    //字段名字不一样时
    @ResultEntityField(property = "password")
    private String pwd;
    
    //映射一个对象 1对1
    @NestedResultEntity(target = SysRole.class)
    prviate SysRole sysRole;
    
    //映射多个对象 1对多
    @NestedResultEntity(target = SysRole.class)
    prviate List<SysRole> sysRoles;

}
List<SysUserRoleVO> list = QueryChain.of(sysUserMapper)
        .from(SysUser.class)
        .join(SysUser.class, SysRole.class)
        .returnType(SysUserRoleVO.class)
        .list();

还有很多很多超级方便有趣的写法,欢迎大家来使用 https://mybatis-mp.cn

例如

1 . 多表 join A 内嵌 B B 内嵌 C 都可以

2 . 不使用 join 使用 @Fetch 注解 + fetchFilter 方法实现 将 A JOIN B 变成 query A + query B

3 . 使用 @Paging 注解 实现你的 xml 自动分页

4 . 使用 SQL 模板,让你 ORM 更简单更容易扩展,再也不怕被框架限制了

还有很多 欢迎进群 讨论 QQ 群:121908790

标签:join,String,private,ORM,SysUser,mybatis,eq,class,mp
From: https://www.cnblogs.com/udid/p/18331858

相关文章

  • Winform程序控制网络继电器(康耐德,泥人..)运用Socket,TCP协议
    //继电器官网查看命令https://www.konnad.com/service/download/product-model/sdd4040-ad3staticbyte[]DOON=newbyte[]{0x00,0x01,0x00,0x00,0x00,0x06,0xFF,0x05,0x00,0x64,0xFF,0x00};//控制继电器打开(DO-1灯亮)staticbyte[]DOOFF=new......
  • Pandas 和 Numpy 版本的问题
    我认为有很多冲突。我试图在笔记本中运行一些代码并收到以下消息:ImportError:此版本的pandas与numpy<1.16.5不兼容你的numpy版本是1.16.2。请将numpy升级到>=1.16.5以使用此pandas版本我安装了pandas1.2.2版本。我运行了condaupdaten......
  • ImportError:无法从“langchain_core.utils”导入名称“pre_init”
    当我想从requirements.txt安装langchain库时,我得到ImportError:cannotimportname'pre_init'from'langchain_core.utils'我尝试使用这些命令从终端安装库:pipinstallgigachainpipinstallgigachatpipinstall-Ulangchain-community并且它正在工作,所以我使......
  • ImportError:无法导入名称“_priv_parser”,循环依赖
    我在Pycharm上遇到了这个错误,我正在使用BotCity框架,当出现以下错误时,它并没有开始运行脚本进程:>Traceback(mostrecentcalllast):>>File"<frozenimportlib._bootstrap>",line1176,in_find_and_load>File"<frozenimportlib._bootstrap>"......
  • 在窗口中尝试 pybind11:对 __imp_PyGILState_Check 的未定义引用
    我正在尝试让pybind11在Windows中工作。我已经使用conda-forge安装了pybind11,然后执行最简单的代码:#include"pybind11/pybind11.h"namespacepy=pybind11;用:g++-std=c++17-O2-mavx-IC:/Users/beng_/anaconda3/Lib/site-packages/pybind11/include-IC:......
  • 如何在包含嵌套列表列表的 json 上使用 json_normalize
    我正在用Python处理一个复杂的JSON字符串,并且在将数据放入Pandas数据帧时遇到问题。示例数据、当前输出和预期输出全部如下。我正在尝试使用json_normalize,但它没有完全标准化,留下了几列包含JSON列表。我的最终目标是将其插入到SQLDB中,但是json字符串由于其长度而......
  • 06_Calendar类_SimpleDateFormat类_System类
    一、Calendar类Calendar的构造方法是protectedCalendar(),由于修饰符是protected,所以无法直接创建该对象,需要使用Calendar.getInstance();创建。其他方法:代码示例:importjava.util.Calendar;publicclassdemo01{publicstaticvoidmain(String[]args){......
  • PostgreSQL 之 to_timestamp函数
    to_timestamp是PostgreSQL中的一个函数,用于将字符串或数字转换为时间戳。以下是关于to_timestamp的详细介绍:引入版本to_timestamp函数在PostgreSQL7.3版本中引入。语法to_timestamp有两种主要的用法:1.将字符串转换为时间戳to_timestamp(text,text)第一......
  • JCR一区级 | Matlab实现SO-Transformer-LSTM多变量回归预测(蛇群算法优化)
    JCR一区级|Matlab实现SO-Transformer-LSTM多变量回归预测(蛇群算法优化)目录JCR一区级|Matlab实现SO-Transformer-LSTM多变量回归预测(蛇群算法优化)效果一览基本介绍程序设计参考资料效果一览基本介绍1.【JCR一区级】Matlab实现SO-Transformer-LSTM多变量......
  • 编写java程序,自动监控程度,dump内存文件
    步骤1:编写Java程序首先,编写一个Java程序,当内存使用达到11GB时生成heapdump文件,并以日期命名。将以下代码保存为MemoryMonitor.java文件:importcom.sun.management.HotSpotDiagnosticMXBean;importjavax.management.MBeanServer;importjava.lang.managemen......