这个是我的实体类
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了