mybatis中xml遇到 传入多个参数怎么办

这个是我的实体类

 public class User {
    private int id;//编号
    private String name;//姓名
    private String age;//年龄
    private String sex;//性别
    private String height;//身高
    private String weight;//体重
    private String address;//家庭住址
    }

这个是我的Mapper接口

 /**
     * 根据条件查询用户
     * @param column 要查询的列名
     * @param Where 查询条件
     * @return 查询到的集合类
     */
public List<User> selsctByWhere(String column,String Where);

这个是xml对应要写的《SQL语句和传参,形参》

 <!-- 根据条件查询用户************************** -->
  <select id="selsctByWhere"  >

  </select>

有没有java大神,求解答

看一下mybatis映射实体那一部分,是可以直接映射进去的

public List selsctByWhere(Map mapParams);

https://www.2cto.com/database/201409/338155.html

可以在mapper接口中的参数加上@param(“column”)String column,@param(“Where”)String Where

把参数封装成pojo自定义对象,然后在中指定parameterType="pojo全路径",resultType=“User包的全路径即可”,

parameterType 指的是输入参数类型
resultType 指的是返回参数类型

mybatis 的mapper代理模式应该不支持一次输入多个参数,一般用自定义pojo对象封装或者Map封装参数

实例化一个Mapmap 把你想要传入的值put进去 然后将selsctByWhere的方法参数设成Mapmap,直接映射到你的xml文件中就行了(xml中标签中设置属性resultType 为java.util.Map类型就可以了)

Mybatis的Dao接口采用@Param注解进行多参数传值,可参考这篇文章。http://blog.csdn.net/sun1021873926/article/details/75138982

    /**
     * 获取所有知乎用户资料的集合
     * 
     * @return
     */
    public List<User> queryAll(@Param(value = "start") int start, @Param(value = "size") int size);
    <select id="queryAll" resultMap="userResultMap">
        select * from user limit ${start},${size}
    </select>

Mapper设置参数类型为一个map,如下:
List getBodyPartCompare(Map params);
XML中的mybatis如下:

select * from a where a.b = #{c}

这里有个parameterType,标识接受参数的类型,设置为Java.util.Map就是接受一个map参数,resultType表示查询到的结果以什么类型返回
SQL里面根据#{}来取值,{}里面的是map中的key

我去 XML的信息怎么没有了

select id="getBodyPartCompare" parameterType="java.util.Map" resultType="Bodypartcompare"
/select

这个 简单 你去弄清楚 mybitas 里面 #与$的区别 一个是占位的预编译 一个是直接传入

要看是一对多还是多对一等关系,在resultType/resultMap写类型即可,查询时也不建议使用 select * from,应用 select (name,age.......)from,这样可以减少高并发带来问题

直接在Mapper方法里面加上@Param("")注解就好了呀,“”中写入你的参数名就ok了