当前位置: 首页 > news >正文

网站建设 提供源码产品ui设计公司

网站建设 提供源码,产品ui设计公司,唐山企业网络推广培训,如何免费建立自己的网页前言 Mybatis Plus入门进阶#xff1a;特殊符号、动态条件、公共语句、关联查询、多租户插件 隐藏问题#xff1a;批量插入saveBatch 文章目录 前言注意点动态条件xml公共语句关联查询动态表名使用自定义函数主键生成策略saveBatch插件#xff1a;多租户TenantLineInnerInte…前言 Mybatis Plus入门进阶特殊符号、动态条件、公共语句、关联查询、多租户插件 隐藏问题批量插入saveBatch 文章目录 前言注意点动态条件xml公共语句关联查询动态表名使用自定义函数主键生成策略saveBatch插件多租户TenantLineInnerInterceptor 注意点 mapper.xml中大于、小于需要使用特殊符号 lt; 小于号 gt; 大于号 amp; 和 apos; 单引号 quot; 双引号 lt; 小于等于 gt; 大于等于如果需要拼接 br/ 字符串可以使用 CDATA 包裹起来让解析器将其视为文本而非标签 sql idexampleSql![CDATA[SELECT column1,column2,CONCAT(column3, br/, column4) AS combinedColumnFROM your_table]] /sql动态条件 使用if对参数值进行判断非空才查询 if testroleName ! null and roleName ! AND r.role_name like concat(%, #{roleName}, %) /if参考 多个条件判断 使用多个if if test /if if test /if使用when/otherwise choosewhen teststatus 2create_time DESC/whenotherwisecreate_time/otherwise /choosexml公共语句 定义 sql idxxxselect a from b /sql使用 select id yyyinclude refIdxxx/includewhere name mango /select关联查询 一对一 正常的查询sql定义返回的结果类型resultMap select idselectRoleAll resultMapSysRoleResultselect * from A left join B ... /selectresultMap typeSysRole idSysRoleResultid propertyroleId columnrole_id /result propertyroleName columnrole_name / /resultMap一对多 A表与B表关联查询其中A表与B表为一对多的关系则查询结果使用collection resultMap id xxx typecom.xxxxid columnid propertyid /collection propertyyyy ofTypezzzresult propertyno columnno//collection /resultMap列名重复问题 使用别名 分页存在问题不建议分页时使用 使用select 相关参考文章 Mybatis Plus内置的分页查询 collection分页问题总结 collection查询一对多分页数据的Bug collection分页问题 动态表名 当我们想要传的参数是表格的名称或是列名的时候#{}这种方式就不生效了需要使用${} 使用自定义函数 在xml中使用了数据库自定义的函数则需要带上模式名或者在当前的模式下创建函数 自定义的函数达梦数据库默认是在sysdba下 主键生成策略 TableId注解定义了主键生成的类型具体查看枚举类IdType.java AUTO 数据库 ID自增这种情况下将表中主键设置为自增否则没有设置主动设置id值进行插入时会报错 NONE 无状态该类型为未设置主键类型注解里等于跟随全局全局里默认 ASSIGN_ID注意这里官网文档有误 INPUT insert 前自行 set 主键值在采用IKeyGenerator类型的ID生成器时必须为INPUT ASSIGN_ID 分配ID (主键类型为number或string默认实现为雪花算法 ASSIGN_UUID 分配 UUID 详细参考 saveBatch 特性及问题 拼接sql如果集合中的某个实体和它的上/下一个不一样就不会拼接到insert中而是会单独执行插入语句所以多个实体不一样某个字段为null会拼出多个插入语句 事务事务回滚如果在某一个拼接语句中存在一条数据报错那么整批会报错如果上一批语句已经执行过了则事务不会回滚已经成功的仍旧是成功 解决方案 使用其他的批量插入this.baseMapper.insertBatchSomeColumn(list); 存在问题数据库字段默认值不生效需要手动对对象设值或者对实体字段设值默认如果为雪花算法可使用IdWorker 自定义批量插入 设置插入字段策略 局部字段忽略控制TableField(fill FieldFill.INSERT,insertStrategy FieldStrategy.IGNORED) 全局 mybatis-plus:global-config:db-config:insert-strategy: ignored参考 插件多租户TenantLineInnerInterceptor 处理逻辑类BaseMultiTableInnerInterceptor 忽略某个方法需要重写TenantLineInnerInterceptor中的beforeQuery 相关文章参考 引入及使用租户 忽略多租户隔离自定义注解(未验证) 新增租户配置信息 # 租户配置信息 tenant:# 是否开启租户模式enable: true# 需要排除的多租户的表exclusionTable: sys_config,sys_dict_data# 租户字段名称column: tenant_id对应增加配置类TenantProperties Configuration Getter public class TenantProperties {/*** 是否开启租户模式*/Value(${tenant.enable})private Boolean enable;/*** 多租户字段名称*/Value(${tenant.column})private String column;/*** 需要排除的多租户的表*/Value(${tenant.exclusionTable})private ListString exclusionTable; }注入重载的租户配置 Configuration RequiredArgsConstructor(onConstructor_ Autowired) AutoConfigureBefore(MyBatisPlusConfig.class) public class TenantConfig {private final TenantProperties tenantProperties;Beanpublic TenantLineInnerInterceptor tenantLineInnerInterceptor() {return new TenantLineInnerInterceptor(new TenantLineHandler() {Overridepublic Expression getTenantId() {try {String tenantId SecurityUtils.getLoginUser().getTenantId();if (tenantId ! null) {return new StringValue(tenantId);}} catch (ServiceException e) {e.printStackTrace();}return new NullValue();}Overridepublic String getTenantIdColumn() {return tenantProperties.getColumn();}Overridepublic boolean ignoreTable(String tableName) {return tenantProperties.getExclusionTable().stream().anyMatch((t) - t.equalsIgnoreCase(tableName));}Overridepublic boolean ignoreInsert(ListColumn columns, String tenantIdColumn) {return TenantLineHandler.super.ignoreInsert(columns, tenantIdColumn);}});} }Mybatis Plus配置增加租户配置 Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();// 多租户插件if (tenantProperties.getEnable()) {interceptor.addInnerInterceptor(tenantLineInnerInterceptor);}return interceptor;}
http://www.zqtcl.cn/news/41629/

相关文章:

  • 做网站的好公司有哪些外贸网站建设维护
  • 网站建设 资质要求中国建设官网信息查询
  • 做网站之前要怎样准备图片济南城市建设集团有限公司网站
  • wordpress商城手册seo的范畴是什么
  • 建设工程国检中心网站百度号码认证平台个人号码申诉
  • 中龙建电力建设股份有限公司网站地宝网 网站建设
  • 网站 优化 件制作网页游戏的软件
  • 网站哪里有做的深圳市住建局网站官网
  • 企业网站规划与开发简单网页制作模板图片
  • 北京网站优化哪家好官方app下载
  • 家具东莞网站建设家电网站制作
  • 网站怎么上线餐饮网站建设怎样
  • 百度网站建设优化厦门市集美区建设局网站
  • 关于网站建设的英文文章wordpress 底部模板
  • 上海市建设网站网站设计公司排名前十
  • 北京东城网站建设公司asp故障解答网站模板
  • 网站建设费用都选网络wordpress 验证百度网盟
  • 怎么做盈利的网站网站备案要如何取消
  • php wap网站源码湛江模板做网站
  • 爱站网挖掘词网站开发使用软件
  • 网站维护中页面代码烟台网站建设 制作 推广
  • 无锡加盟网站建设wordpress article
  • 上杭网站定制网站建设 支持多种语言
  • 长沙岳麓区做网站淘宝联盟推广可以做网站吗
  • 绵阳 网站设计服务器租用是什么意思
  • 北京做网站优化多少钱网站建设方式可行性分析
  • 网站建设与设计饰品安全的网站建设推广
  • 网站的制作步骤现在的网站怎样做推广
  • 网站域名证书威海网络营销
  • 自学织梦做网站要多久网站开发学校