Mybatis参数传递
来源:互联网 发布:开源cms 编辑:程序博客网 时间:2024/05/16 15:37
在Mybatis的Mapper文件中的select、insert、update、delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型。可以接受的参数类型有基本类型和复杂类型。
1.当传入的参数是一种,可以不用指定parameterType。如下的parameterType可有可无。
<select id="SelectByIsbn" resultType="int" parameterType="java.lang.String">
select price from book where isbn = #{isbn}</select>
2.当传入的参数是一个类型,比如这里的User类
public class User {
private int id;
private String userName;
private int userAge;
private String userAddress;
.........
}
这个时候就需要使用parameterType="me.focus.batis.model.User"
<select id="selectUserByName" parameterType="me.focus.batis.model.User" resultMap="userresultmap">
select * from users where userName=#{userName}
</select>
3.当传入的参数为多个,并且这些参数的类型为多种,这个时候就可以传入map类型,直接通过#{keyname}就可以引用到键对应的值。使用@param注释的多个参数值也会组装成一个map数据结构,和直接传递map进来没有区别。
例如:我要通过用户名更新账户,需要传入用户名和账户余额
<update id="updateAccountByUsername" parameterType="map">
update account set balance=#{balance} where username=#{username}
</update>
这样只需要在Mapper接口函数的每个参数中加入@Param("UserKey")就可以了。
public void updateAccountByUsername(@Param("username")String username, @Param("balance")int balance);
当然也可以用另外一种比较麻烦的办法,就是在新建一个参数类型,将这些需要的参数封装起来,然后直接这个新的数据类型就可以了。
例如:这里是自己新建了一种数据类型LimitMap
public List<User> selectBylimit(LimitMap lm);
xml中查询配置:offset和limit参数是不同类型
<select id="selectBylimit" resultType="me.focus.batis.model.User" parameterType="me.focus.batis.model.LimitMap" >
SELECT *
FROM users ORDER BY id LIMIT #{offset},#{limit}
</select>
4.集合类型:
在传递一个List或Array类型的对象作为参数,MyBatis会自动的将List或Array对象包装到一个Map对象中,List类型对象会使用list作为键名,而Array对象会用array作为键名。
集合类型通常用于构造IN条件,sql映射文件中使用foreach元素来遍历List或Array元素。
<insert id="insert" parameterType="java.util.List" >
insert users(id,userName,userAge,userAddress)
values
<foreach collection="list" item="item" separator=",">
(#{item.id},#{item.userName},#{item.userAge},#{item.userAddress})
</foreach>
</insert>
Mapper接口:public void insert(List<User> users);
返回结果为集合同理,加上resultType就可以了。
在这个世界上我只确定一件事。那就是人确定的事情越少越好。 —— 毛姆
- MyBatis-----MyBatis传递数组参数
- mybatis传递多种参数
- mybatis 之参数传递
- mybatis传递参数
- mybatis传递参数
- mybatis多参数传递
- Mybatis参数传递记录
- Mybatis参数传递总结
- MyBatis多参数传递
- Mybatis参数传递
- MyBatis参数传递
- Mybatis参数传递
- Mybatis参数传递
- mybatis传递参数总结
- Mybatis参数传递
- Mybatis 传递参数示例
- mybatis参数传递
- MyBatis中的参数传递
- 用Javascript获取页面元素的位置
- xib 控件属性 使用
- vi 命令
- CSS完成各种图形的制作
- php 的 cURL库
- Mybatis参数传递
- Robolectric介绍
- java复制文件或文件夹
- 安全组支持跨项目跨地域克隆
- 虚继承基类构造顺序
- 18.XML CDATA
- c++第一次实验—
- SVN服务器搭建和使用(三)
- Hive 操作(一)