Mybatis中parameterType属性的作用

parameterType: dao层接口中方法参数的类型, 类型的完全限定名或别名。这个属性是可选的,因为 MyBatis 可以推断出具体传入语句的参数,默认值为未设置 (unset)。接口中方法的参数从 java 代码传入到 mapper 文件的 sql 语句。,,都可以使用 parameterType 指定类型。 说完了parameterType属性的作用,我们看看具体使用情况; 1、一个简单参数:Dao 接口中方法的参数只有一个简单类型(java 基本类型和 String),占 位符 #{ 任意字符 },和方法的参数名无关。 接口方法: Student selectById(int id); mapper 文件: select id,name,email,age from student where id=#{studentId} {studentId} , studentId 是自定义的变量名称,和方法参数名无关。 说直白点就是:当一个dao接口的方法只有一个简单类型参数的时候,那么mapper文件里面对应的sql语句的占位符可以随便写,可以写任意字符; 2、多个简单类型参数 – 使用@Param:当 Dao 接口方法多个参数,需要通过名称使用参数。 在方法形参前面加 入@Param(“自定义参数名”),mapper 文件使用#{自定义参数名}。 例如定义 List selectStudent( @Param(“personName”) String name ) { … } mapper 文件 select * from student where name = #{ personName} List selectMultiParam(@Param(“personName”) String name, @Param(“personAge”) int age); mapper 文件: select id,name,email,age from student where name=#{personName} or age =#{personAge} 3、多个参数-按位置:参数位置从 0 开始, 引用参数语法 #{ arg 位置 } , 第一个参数是#{arg0}, 第二个是#{arg1} 注意:mybatis-3.3 版本和之前的版本使用#{0},#{1}方式, 从 mybatis3.4 开始使用#{arg0}方式。 接口方法: List selectByNameAndAge(String name,int age); mapper 文件 select id,name,email,age from student where name=#{arg0} or age =#{arg1} 这里没有讲解对象和map传值,应为这两个在工作中都是非常常用的,所以大家一定清楚怎么使用的;需要强调的是parameterType这个属性是可以省掉不写的,应为mapper文件中的namespace就是接口的全限定名称,sql语句的id就是接口的方法,那么通过反射机制mybatis完全可以获取到接口参数的类型,所有我们也可以不写parameterType属性;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至22018681@qq.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论