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

基于MySQL的创建<resultMap>和查询条件<if test>

基于MySQL的创建<resultMap>和查询条件<if test>

基于MySQL的创建<resultMap>和查询条件<if test>



SELECT  
    `ORDINAL_POSITION` as `a`,
-- @Data
-- @Schema(description = "货物管理表")
-- @TableName("lpg_cargo")
-- public class CargoEntity implements Serializable{

--     concat('@Data \n @Schema(description = "',`TABLE_COMMENT`,'") \n  @TableName("',`TABLE_NAME`, '")') as `aaa`,
--     concat('public class ', `TABLE_NAME_NEW`,'Entity  implements  Serializable{ ') as `bbb`,

--    @Schema(description = "货物名称")
--    private String cargoName 

--     `TABLE_COMMENT`,
--     `TABLE_NAME`,
--     `TABLE_NAME_NEW`,
    'SELECT' AS `SELECT`,
    `COLUMN_NAME`,
    'FROM' AS `from`,
    concat(`TABLE_SCHEMA`,'.',`TABLE_NAME`) AS `from_table`,
    `TABLE_SCHEMA`,
    `TABLE_NAME`,
    `COLUMN_NAME`,
    `CamelCaseColumn`,
    `DATA_TYPE`,
   
    /* ========= */
    concat('<result property="', `CamelCaseColumn` ,'" column="', COLUMN_NAME ,'"/>') as resultMap,
    /* ========= */
    CASE WHEN `DATA_TYPE` = 'String'
    	THEN 
    	/* ========= */
    	concat( /**/
	    	'<if test="query.', `CamelCaseColumn`,  '!= null',
		    	/**/
	    		' and query.', `CamelCaseColumn`,' != ''''">\n',
	    		/**/
				' and ',`COLUMN_NAME`,' = #{query.', `CamelCaseColumn`,'}\n' 
			 	/**/
			'</if>' )
    	/* ========= */
    	
    ELSE
    /* ========= */
     concat( /**/
	    	'<if test="query.', `CamelCaseColumn`,  '!= null">\n',
	    		/**/
				' and ',`COLUMN_NAME`,' = #{query.', `CamelCaseColumn`,'}\n' 
			 	/**/
			'</if>' )
    /* ========= */
    END AS `if_test`,
    
    

/* ==============================  */
  1 AS tt
/* ==============================  */
/* ==============================  */
/* ==============================  */
/* ==============================  */
/* ==============================  */    
from
    (
    /**/
    select 
        ORDINAL_POSITION,
        TABLE_COMMENT,
        TABLE_SCHEMA,
        TABLE_NAME,
        COLUMN_NAME,
         replace(replace(replace(replace(replace(replace(replace( replace(replace( replace(replace(replace(replace(replace(replace(  replace(  replace( replace( replace(replace(replace( replace( replace( replace( replace( replace( replace(TABLE_NAME, '_a', 'A'), '_b', 'B'), '_c', 'C'), '_d', 'D'), '_e', 'E'), '_f', 'F'), '_g', 'G')
        , '_h', 'H'), '_i', 'I'), '_j', 'J'), '_k', 'K'), '_l', 'L'), '_m', 'M'), '_n', 'N'), '_o', 'O'), '_p', 'P'), '_q', 'Q'), '_r', 'R'), '_s', 'S'), '_t', 'T'), '_u', 'U')
       , '_v', 'V'), '_w', 'W'), '_x', 'X'), '_y', 'Y'), '_z', 'Z'), '_', '') as `TABLE_NAME_NEW`,
         'private' as `prefix`,    
         replace(replace(replace(replace(replace(replace(replace( replace(replace( replace(replace(replace(replace(replace(replace(  replace(  replace( replace( replace(replace(replace( replace( replace( replace( replace( replace( replace(COLUMN_NAME, '_a', 'A'), '_b', 'B'), '_c', 'C'), '_d', 'D'), '_e', 'E'), '_f', 'F'), '_g', 'G')
        , '_h', 'H'), '_i', 'I'), '_j', 'J'), '_k', 'K'), '_l', 'L'), '_m', 'M'), '_n', 'N'), '_o', 'O'), '_p', 'P'), '_q', 'Q'), '_r', 'R'), '_s', 'S'), '_t', 'T'), '_u', 'U')
       , '_v', 'V'), '_w', 'W'), '_x', 'X'), '_y', 'Y'), '_z', 'Z'), '_', '') as `CamelCaseColumn`,
      
       CASE upper(DATA_TYPE)
          WHEN 'VARCHAR' THEN 'String'
          WHEN 'CHAR' THEN 'String'
          WHEN 'TEXT' THEN 'String'
          WHEN 'INT' THEN 'Integer'
          WHEN 'TINYINT' THEN 'Integer'
          WHEN 'SMALLINT' THEN 'Integer'
          WHEN 'MEDIUMINT' THEN 'Integer'
          WHEN 'BOOLEAN' THEN 'Integer'
          WHEN 'BIGINT' THEN 'Long'
          WHEN 'INTEGER' THEN 'Long'
          WHEN 'ID' THEN 'Long'
          WHEN 'FLOAT' THEN 'Float'
          WHEN 'DOUBLE' THEN 'Double'
          WHEN 'DECIMAL' THEN 'BigDecimal'
          WHEN 'BIT' THEN 'Boolean'
          /*WHEN 'BLOB' THEN 'byte[]'*/
          WHEN 'BLOB' THEN 'byte[]'
          WHEN 'DATE' THEN 'Date'
          WHEN 'YEAR' THEN 'Date'
          WHEN 'TIME' THEN 'Time'
         /* WHEN 'DATETIME' THEN 'Timestamp'*/
         /* WHEN 'TIMESTAMP' THEN 'Timestamp'*/
          WHEN 'DATETIME' THEN 'Date'
          WHEN 'TIMESTAMP' THEN 'Date'
          ELSE 'String ' end as  `DATA_TYPE`,
          ';' as `suffix`,
          COLUMN_COMMENT
    from (
    /* === */
        select 
            `tables`.TABLE_SCHEMA,
            `tables`.TABLE_NAME,
            `tables`.TABLE_COMMENT,
            `columns`.ORDINAL_POSITION,
            -- `columns`.TABLE_NAME,
            `columns`.COLUMN_NAME,
            `columns`.DATA_TYPE,
            `columns`.COLUMN_COMMENT 
        from INFORMATION_SCHEMA.Tables as `tables`
        left join  INFORMATION_SCHEMA.COLUMNS  as `columns`
          on  `columns`.TABLE_NAME = `tables`.TABLE_NAME
/* ==============================  */
/* ==============================  */
/* ==============================  */
/* ==============================  */
        WHERE
             	`tables`.TABLE_SCHEMA = '数据库'
		and `tables`.TABLE_NAME = '表名称'
/* ==============================  */
/* ==============================  */
/* ==============================  */
/* ==============================  */            
        order by `columns`.ORDINAL_POSITION    
    /* === */
    )as tmp
    order by ORDINAL_POSITION    
    /**/
)as ttt
order by ORDINAL_POSITION    









http://www.kler.cn/a/592811.html

相关文章:

  • 函数闭包的学习
  • 分治-快速排序系列一>快速排序
  • ESP8266 与 ARM7 接口-LPC2148 创建 Web 服务器以控制 LED
  • 穿越禁区:前端跨域通信的艺术与实践
  • C语言每日一练——day_7
  • Netty基础—6.Netty实现RPC服务二
  • 痉挛性斜颈护理宝典:重拾生活平衡
  • 2025-03-19 学习记录--C/C++-C语言-单链表的结构体定义 + LNode * 和 LinkList 的区别
  • 如何在 HTML 中实现无障碍访问,列举关键措施?
  • NAT及P2P通信
  • 比较常见的几种排序算法
  • 利用knn算法实现手写数字分类
  • Kafka-QA
  • 前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” !!!
  • 批量删除 PPT 中的所有图片、某张指定图片或者所有二维码图片
  • 链式二叉树概念和结构
  • GPU视频编解码:X86 DeepStream 视频编解码入门(三)
  • PostgreSQL逻辑复制槽功能
  • 华为全流程全要素研发项目管理(81页PPT)(文末有下载方式)
  • 【从零开始学习计算机科学与技术】计算机网络(六)传输层