mybatis中set标签使用场景(Mybatis中parameterType属性的作用)

parameterType: dao层接口中方法参数的类型, 类型的完全限定名或别名这个属性是可选的,因为 MyBatis 可以推断出具体传入语句的参数,默认值为未设置 (unset)接口中方法的参数从 java 代码传入到 mapper 文件的 sql 语句<select>,<insert>,<update><delete>都可以使用 parameterType 指定类型,今天小编就来说说关于mybatis中set标签使用场景?下面更多详细答案一起来看看吧!

mybatis中set标签使用场景(Mybatis中parameterType属性的作用)

mybatis中set标签使用场景

parameterType: dao层接口中方法参数的类型, 类型的完全限定名或别名。这个属性是可选的,因为 MyBatis 可以推断出具体传入语句的参数,默认值为未设置 (unset)。接口中方法的参数从 java 代码传入到 mapper 文件的 sql 语句。<select>,<insert>,<update><delete>都可以使用 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属性;

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页