MyBatis的Param注解对JavaBean的使用方法
发表于|更新于|Java
|总字数:196|阅读时长:1分钟|浏览量:
在使用MyBatis时,如果参数列表中传入的是一个JavaBean对象,那么在MyBatis的SQL中应该是如下使用方式。
如果参数中加了@Param,那么既可以使用#{}获取,也可以使用${}获取。
1 | @Select("SELECT id,username from user where age between #{queryParam.minAge} and #{queryParam.maxAge}") |
使用$获取
1 | @Select("SELECT id,username from user where age between ${queryParam.minAge} and ${queryParam.maxAge}") |
如果不使用@Param注解时,参数只能有一个,并且是Javabean。在SQL语句里可以引用JavaBean的属性,而且只能引用JavaBean的属性。
1 | @Select("SELECT id,username from user where age between ${minAge} and ${maxAge}") |
文章作者: Charles
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农笔记!
相关推荐

2016-08-02
MyBatis中selectKey的使用
本篇介绍一下Mybatis中selectKey的使用。 在开发过程中,CRUD是免不了的,在插入数据时,通常我们只需要返回受影响行数即可,但也有些场景需要返回插入数据后的主键ID,在Mybatis中只需要使用selectKey即可实现。 自增主键使用示例通常我们会将SQL写在MyBatis的*Mapper.xml文件中,本次示例也是如此 创建表1234567CREATE TABLE `t_user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'UserId', `username` varchar(80) NOT NULL COMMENT 'username', `password` varchar(80) NOT NULL COMMENT 'password', `create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'create_time...

2018-03-07
MyBatis中大于和小于的编码方法
在使用MyBatis开发过程中,会将SQL编写在XxxMapper.xml中,由于>和<本身也是xml内容的一种,这会将其误认为是标签,所以在SQL中有>、<的时候会提示报错,可以使用下面两种方法去编码。 使用转义序列12< 可以使用 < 代替> 可以使用 > 代替 使用CDATA CDATA 全名:character data。所有 XML 文档中的文本均会被解析器解析,除了 CDATA 区段(CDATA section)中的文本会被解析器忽略。 CDATA的形式如下: <![CDATA[文本内容]]> 。 CDATA的文本内容中不能出现字符串]]>。另外,CDATA不能嵌套。 XML 实例: 在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。 CDATA区域是由<![CDATA[为开始标记,以]]>为结束标记,注意CDATA为大写。 示例: 12< 可以使用 <![CDATA[ < ]]>...

2018-10-06
解决Mybatis不支持JDK1.8日期类型的问题
在之前,我们定义实体类的时候,日期一般都选用的是java.sql.Date、java.sql.Timestamp、java.util.Date等,来映射数据库中的date、timestamp、datetime等类型的字段,虽然使用JDK1.8也近三年多了,但是依旧没有用到JDK1.8的新特性,比如lambda表达式,stream流,以及日期类型。所以现在也是强迫自己能用新特性就用新特性,绝不偷懒,慢慢地也是差不多都掌握了其用法,写起来确实不错,但是在将数据保存到mysql中时,出现了如下异常 123456789101112Caused by: java.lang.IllegalStateException: Type handler was null on parameter mapping for property 'birthday'. It was either not specified and/or could not be found for the javaType / jdbcType combination specified.at org...

2020-07-14
ElasticSearch 7.8.0 破解
在测试ES-SQL的过程中发现当前最新版ES 7.8.0的JDBC是收费的,不过都已经花了时间去搞那么还是需要小小的`测试`一下的。 其实,说ES破解也不太对,主要是ES的增强包X-Pack,这个增强包包含了JDBC、ODBC、安全、告警、机器学习等,所以这个工具的付费还是不错的,可惜目前还未得到能接受付费的回应,那就先试用一下吧。 根据目前我的场景,已经安装好ElasticSearch7.8.0和kibana7.8.0。 下载反编译工具因为要修改期验证license的代码,所以我们需要通过反编译工具来查看代码,这里推荐Luyten,可以去Releases · deathmarine/Luyten · GitHub下载,官方提供了win的安装包已经可执行的jar,所以这里下载jar即可。 查看x-pack-core的源码es我是通过rpm安装的,所以在其安装目录/usr/share/elasticsearch/modules/x-pack-core中下载x-pack-core-7.8.0.jar文件到本地,通过Luyten打开这个jar。 找到以下两个文件: or...

2022-08-01
JKS证书转Nginx证书
本篇介绍如何将jks(java key store)证书转换为nginx格式的证书。 因业务需要,现在需要将所有的服务升级为https的方式访问,不管是对外还是内部网络都需要升级,然后负责安全的运维只丢给我一个压缩包,解压开只有以下文件: 1234xxx.jksxxx.keystorexxx.p12 # 这个文件不提供也可以xxx_password.txt 查看jks文件中的entry1keytool -list -keystore xxx.jks 输出如下信息: 12345678输入密钥库口令:密钥库类型: PKCS12密钥库提供方: SUN您的密钥库包含 1 个条目1, 2022年8月1日, PrivateKeyEntry,证书指纹 (SHA-256): 21:BC:49:11:72:DD:7C:32:32:37:59:6F:62:38:BB:E8:D5:79:ED:D6:27:DA:D3:06:6F:32:E3:A1:CC:23:2D:AC 其中1, 2022年8月1日, PrivateKeyEntry,这一个就是一个entry的信息,1表示这个entry的别名。...

2019-08-06
CentOS安装OpenJDK1.8
因Oracle JDK自1.8.191开始就对企业服务进行付费使用了,那么公司的应对方案要么将JDK锁定在免费服务期的版本,要么就使用OpenJDK替代Oracle JDK,这两者本身出自同一份源码,Oracle JDK只不过比Open JDK多了一些特殊的功能(例如监控),那么我就用OpenJDK来代替OracleJDK。下面记录一下安装OpenJDK 8的步骤。 使用Yum安装OpenJDK 8对于Java来说,通常分为jre运行时环境和JDK开发工具包,高版本的Java已经将他们合二为一了。那么JDK 8还是分开安装的。可使用如下命令安装: 1yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk仅安装了jre,java-1.8.0-openjdk-devel则是JDK环境。 使用如下方式配置环境变量: 12345cat > /etc/profile.d/java8.sh <<EOF export JAVA_HOME=$(dirname $(dirname...
评论
公告
开始忙了,长草期。






