MyBatis多参数传递之注解方式示例——MyBatis学习笔记之十一

若映射器中的方法只有一个参数,则在对应的SQL语句中,可以采用#{参数名}的方式来引用此参数,香港服务器租用,以前的例子多属于此类。但这种方法却不适用于需要传递多个参数的情况,今天就来介绍如何使用注解传递多个参数(示例源码下载地址:)。

一、使用注解实现多参数传递

首先应引入“org.apache.ibatis.annotations.Param”,我们在接口TeacherMapper中引入,并增加一个教师分页查询的方法findTeacherByPage的声明。如下所示:

对应的映射文件TeacherMapper.xml的内容如下:

运行主程序如下:

运行结果如下:

二、可能会遇到的错误

1、关于orderby

一般而言,我们会使用#{参数名}的形式来引用方法中的参数,但这种方式对于orderby子句无效或报错。例如,香港空间,当TeacherMapper.xml的select语句findTeacherByPage中的orderby子句以#{sort}的形式引用方法中的sort参数的值时,是无效的(读者可自行验证);以#{dir}的形式引用方法中的dir参数的值时,会报MySQLSyntaxErrorException,如下图所示:

因此,在这里使用了${参数名}的形式引用了相应的参数值。

2、invalidXMLcharacter错误

这是一个诡异的错误。当在映射文件内的注释中,汉字“错”后紧跟中文的句号时即报此错误,如下图所示:

在Spring的配置文件beans.xml中,也是一样。类似地,汉字“错”后紧跟中文的逗号时也会报此错误。此时若在“错”字后面加一汉字,即不再报错;然而加“啊”字却仍然报错。读者可自行尝试,说不定还能找出其他错误的情形。

报出的异常都是org.xml.sax.SAXParseException(如上面错误图片中红框左边所示),香港服务器,这也许意味着它们都是使用同样的xml解析组件。而这种错误,会不会是此组件的bug?

【MyBatis学习笔记】系列之预备篇一:ant的下载与安装

【MyBatis学习笔记】系列之预备篇二:ant入门示例

【MyBatis学习笔记】系列之一:MyBatis入门示例

【MyBatis学习笔记】系列之二:MyBatis增删改示例

【MyBatis学习笔记】系列之三:MyBatis的association示例

【MyBatis学习笔记】系列之四:MyBatisassociation的两种形式

【MyBatis学习笔记】系列之五:MyBatis与Spring集成示例

【MyBatis学习笔记】系列之六:MyBatis与Spring集成示例续

【MyBatis学习笔记】系列之七:MyBatis一对多双向关联

【MyBatis学习笔记】系列之八:MyBatisMapperScannerConfigurer配置

【MyBatis学习笔记】系列之九:MyBatiscollection的两种形式

【MyBatis学习笔记】系列之十:MyBatis日志之Log4j示例

【MyBatis学习笔记】系列之十一:MyBatis多参数传递之注解方式示例

【MyBatis学习笔记】系列之十二:MyBatis多参数传递之默认命名方式示例

【MyBatis学习笔记】系列之十三:MyBatis多参数传递之Map方式示例

【MyBatis学习笔记】系列之十四:MyBatis中的N+1问题

【MyBatis学习笔记】系列之十五:MyBatis多参数传递之混合方式

【MyBatis学习笔记】系列之十六:Spring声明式事务管理示例

【MyBatis学习笔记】系列之十七:MyBatis多对多保存示例

本文出自 “肖凡的专栏” 博客,请务必保留此出处

我们一直在旅行,一直在等待某个人可以成为我们旅途的伴侣,

MyBatis多参数传递之注解方式示例——MyBatis学习笔记之十一

相关文章:

你感兴趣的文章:

标签云: