MyBatis使用动态表或列代码解析

作者:流烟默 时间:2023-06-13 07:57:40 

有时候会不可避免使用动态表或者列进行业务处理。下面学习几种动态表/列的使用方式:

【1】使用预编译

即,默认值。


<select id="hisNumber" parameterType="hashmap" resultType="hashmap" >
  select number from ${oldTableName}
<!--这里使用"$"!!!-->
where name=#{name} and date = #{date}
<!--这里使用"#"-->
<select>

预编译,即首先会生成select number from ? where name=? and date=? 这样使用”?”作为占位符的语句,然后进行参数解析。

【2】使用非预编译


<select id="hisNumber" parameterType="hashmap" resultType="hashmap" statementType="STATEMENT" >
  select number from ${oldTableName}
<!--这里使用"$"!!!-->
where name='${name,jdbcType=VARCHAR}' and date = '${date,jdbcType=TIMESTAMP}'
<select>

注意后面name和date的取值,使用了'${name}' 格式,这样会对参数进行数据类型转换,有助于mysql查询时提升性能。

【3】仍旧使用非预编译


<select id="hisNumber" parameterType="hashmap" resultType="hashmap" statementType="STATEMENT" >
  select number from ${oldTableName}
<!--这里使用"$"!!!-->
where name=${name} and date = ${date}
<select>

注意后面name和date的取值,使用了${name} 格式,将会直接取参数值,不进行数据类型转换。当参数为数值类型且格式如“00124”时,将会出现数据错读(会将0124、124等都读出来)。

故建议使用第一种方式!!

来源:http://blog.csdn.net/j080624/article/details/70196848

标签:mybatis,动态,列
0
投稿

猜你喜欢

  • Android 获取手机信息实例详解

    2021-08-21 00:22:34
  • Android编程实现应用自动更新、下载、安装的方法

    2021-11-15 11:21:39
  • C#图像处理之图像平移的方法

    2021-12-16 08:38:37
  • java教学笔记之对象的创建与销毁

    2023-08-14 02:00:39
  • springmvc视图解析流程代码实例

    2023-02-14 04:33:39
  • 详解Java线程堆栈

    2021-06-29 03:37:38
  • maven环境变量配置以及失败原因解析

    2023-09-15 22:43:28
  • 1秒钟实现Springboot 替换/写入 word文档里面的文字、图片功能

    2022-05-08 18:35:48
  • Android技巧一之启动屏+新功能左右导航逻辑

    2021-12-27 16:08:20
  • Android Studio中debug功能详解

    2022-05-22 08:16:01
  • 完美解决关于禁止ViewPager预加载的相关问题

    2021-07-05 11:50:50
  • Java利用自定义注解、反射实现简单BaseDao实例

    2022-09-06 05:29:30
  • Java编程实现提取文章中关键字的方法

    2022-10-10 22:08:42
  • C#关于Func和Action委托的介绍详解

    2022-10-13 04:43:14
  • Android中GridView插件的使用方法

    2021-07-26 16:46:28
  • Java List的remove()方法踩坑

    2021-05-27 05:17:58
  • java使用jaxb操作xml示例

    2023-11-05 15:02:18
  • C++数组指针和二维数组详情

    2022-03-31 21:11:07
  • springboot注册bean的三种方法

    2023-11-22 21:57:12
  • java springmvc实现验证码功能

    2022-09-07 12:12:41
  • asp之家 软件编程 m.aspxhome.com