mybatis传多参数的问题
2014-11-12 15:44
169 查看
问题:在做数据库操作的时候,经常要传多参数进sql语句,以前版本的ibatis,不支持直接传多个参数进来,只能压入对象或者HashMap中,这样实在不是很方便。
在现在的版本,终于有了支持。
官方文档:
你可以传递多个参数给一个映射器方法。如果你这样做了,默认情况下它们将会以它们
在参数列表中的位置来命名,比如:#{0},#{1} (位置从0开始)等。如果你想改变参数的名称(只在多参数情况下),
那么你可以在参数上使用@Param(“paramName”)注解。在用到like进行模糊匹配的sql语句里,用下标的方式会报错,得用给参数重命名的方式才行。
例子:
public AddrInfo getAddrInfo(@Param("corpId")int corpId,@Param("addrId")int addrId);
xml配置这样写:
<select id="getAddrInfo" resultMap="com.xxx.xxx.AddrInfo">
SELECT * FROM addr__info where addr_id=#{addrId} and corp_id=#{corpId}
</select>
以前在<select>语句中要带parameterType的,如:
问题:在做数据库操作的时候,经常要传多参数进sql语句,以前版本的ibatis,不支持直接传多个参数进来,只能压入对象或者HashMap中,这样实在不是很方便。
在现在的版本,终于有了支持。
官方文档:
你可以传递多个参数给一个映射器方法。如果你这样做了,默认情况下它们将会以它们
在参数列表中的位置来命名,比如:#{0},#{1} (位置从0开始)等。如果你想改变参数的名称(只在多参数情况下),
那么你可以在参数上使用@Param(“paramName”)注解。在用到like进行模糊匹配的sql语句里,用下标的方式会报错,得用给参数重命名的方式才行。
例子:
public AddrInfo getAddrInfo(@Param("corpId")int corpId,@Param("addrId")int addrId);
xml配置这样写:
<select id="getAddrInfo" resultMap="com.xxx.xxx.AddrInfo">
SELECT * FROM addr__info where addr_id=#{addrId} and corp_id=#{corpId}
</select>
以前在<select>语句中要带parameterType的,如:
parameterType 可以是别名或完全限定名 ,map->java.util.Map,这两个都是可以的
-->
<selectid=
"selectBlogByMap"
parameterType=
"map"
resultType=
"Blog"
>
SELECT t.ID, t.title, t.content
FROM blog t
WHERE t.title = #{h_title}
AND t.content =#{h_content}
</select>
/** * 通过Map传递多个参数 */ @Test public void testSelectByMap() { SqlSession session = sqlSessionFactory.openSession(); Map<String, Object> param= new HashMap<String, Object>(); param.put( "h_title" , "oracle" ); param.put( "h_content" , "使用序列!" ); Blog blog = (Blog)session.selectOne( "cn.enjoylife.BlogMapper.selectBlogByMap" ,param); session.close(); System.out.println( "blog title:" +blog.getTitle()); } |
相关文章推荐
- Mybatis 传参数的问题
- mybatis传多参数的问题
- MyBatis传入多个参数的问题
- mybatis 传入多个参数的问题
- MyBatis 动态SQL的单参数不执行问题
- Mybatis多参数传入问题
- [转]MyBatis传入多个参数的问题 - mingyue1818
- MyBatis传入多个参数的问题
- mybatis查询参数为0且类型不是string的小问题
- 关于mybatis中,批量增删改查以及参数传递的问题
- MyBatis传入多个参数的问题
- mybatis 参数为Integer型数据并赋值0的问题
- MyBatis传入多个参数的问题
- MyBatis传入多个参数的问题
- MyBatis传入多个参数问题
- mybatis传递多个参数的问题
- MyBatis传入多个参数的问题
- MyBatis传入多个参数的问题
- MyBatis传入多个参数的问题-你想要知道的都在这里
- [转]MyBatis传入多个参数的问题 - mingyue1818