MyBatis 传递多个参数的几种方法

 

简介:

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

现在可以使用xml的形式,也可以使用注解的形式,因人而异,各有各的优缺点,甚至可以互相弥补,要是都喜欢用,可以同时使用注解和xml的形式,但是俺还是喜欢用注解的形式

第一种、顺序(索引)传参

@Select("SELECT * FROM USER WHERE USERNAME=#{0} AND USERID = #{1}")
public List<Map<String, Object>> getUserInfo(String userName, String userId)

#{ }里边表示传入此方法的参数顺序,

第二种、注解@Param传参

@Select("SELECT * FROM USER WHERE USERNAME=#{userName} AND USERID = #{userId}") 

public List<Map<String, Object>> getUserInfo(@Param("userName")String userName, @Param("userId")String userId)

#{ }里边表示注解@Param括号里边的参数

这种情况就跟参数顺序无所谓了

第三种、Map对象传参

@Select("SELECT * FROM USER WHERE USERNAME=#{userName} AND USERID = #{userId}") 

public List<Map<String, Object>> getUserInfo(Map<String, Object> params)

#{ }里边表示map的key,推荐使用这一种,比较灵活

第四种、Java Bean传参

@Select("SELECT * FROM USER WHERE USERNAME=#{userName} AND USERID = #{userId}") 

public List<Map<String, Object>> getUserInfo(User user)

这里不写bean了,#{ }表示User类里边的成员属性

 

 

 

posted @ 2019-11-12 19:50  木马不是马  阅读(760)  评论(0编辑  收藏  举报