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