您当前的位置:学院动态 > 行业资讯 > 正文

mybatis传多个参数的问题


时间:2017-08-17 16:32    来源:顽石科技    编辑:www.mhsilh.com.cn
 
MybatisOXM设计不是对象关系映射MyBatis没有实现JPA,他和ORM框架的设计思路完全不一样。其小巧灵活的架构方案,非常容易上手,并且提供灵活的sql 映射方案,极大的提高了开发效率,非常适合需求变化较多的互联网企业。


mybatis参数
 
    Mybatis是接口对应 xml文件,接口中的方法  xml文件中的select delete update insert id属性对应,往往很多新手在参数的传上出现各种问题,接下来总结下Mybatis中参数传递的方式
一、单个参数:
  DAO 层的代码:
public List<UserInfo> getUserInfoList(String name);  
XML配置如下:
UserInfoList " parameterType="java.lang.String" resultType="UserInfo">
select t.*  from  sys_user t where t.name= #{name
  
 
其中方法名和ID一致,#{}中的参数名与方法中的参数名一致,select 后的字段列表要和bean中的属性名一致, 如果不一致的可以使用别名,来实现结果集与实体属性的映射 
二、多参数:
DAO层的代码
public List<UserInfo> getUsersList(String id, String name); 
XML配置如下:
UsersList " resultType="UserInfo">
  select t.* from sys_user t where id = #{param1} and name = #{ param2
  
由于是多参数那么就不能使用parameterType, 改用#param1}是第几个就用param几,从param1开始。 
三、Map封装多参数:
DAO层的代码
public List< UserInfo > getUserListMap<String,Object> map);  
  XML配置如下:
UserListMap " parameterType="map" resultType="UserInfo">
  select t.* from XXX where id=#{id} and name = #{name}  
 其中mapmybatis自己配置好的直接使用就行。mapkey的名字是那个就在#{}使用那个,mapkeymap使用put(key,value)存入数据
 四、List封装in
DAO层的代码
public List<UserInfo> getUserInfoLists(List list);
XML配置:
UserInfoLists " resultType="UserInfo">
 select t.* from sys_user t where id in
  
    #{item}  
  
  
foreach 最后的效果是  select * from sys_user t where id in ('1','2','3','4') 
五、多参数传递之注解方式示: 
例子:
 DAO层代码
public AddrInfo getAddrInfo(@Param("corpId")int corpId, @Param("addrId")int addrId);
xml配置这样写:
       SELECT * FROM addr__info 
    where addr_id=#{addrId} and corp_id=#{corpId}
以前在
小结
 1 Mybatis接收参数的类型:基本数据类型 对象 list 数组  map
2无论Mybatis的入参是那种类型,Mybatis 都会将其存放在一个Map中,对于单个入参的情况
入参为基本数据类型:变量名为key,变量值为value,生成的Map中只有一个元素,
入参为对象对象的属性为key,属性值value;
入参数为List:默认“list”作为key,为传入的list
入参数为map:则键值不改变
 
 
本文有顽石科技原创!
转载请注明:http://www.mhsilh.com.cn/html/2017/xingyezixun_0817/552.html
? 必中一位 陕西11选五中奖规则表 国际棋牌玩法 广东快乐10分稳赢技巧 五排列开奖结果 好运彩平台怎么样 德甲最新消息 幸运农场能在线购买么 申城棋牌网首页? 体彩6+1走 河南十一选五单注多少钱 广西快乐双彩今晚开奖结果 体彩20选5 大智慧炒股行情软件 王中王三肖选一肖免费公开 广西快3开奖结果彩宝 内蒙古十一选五前三值走势图百度乐彩