mybatis的参数传递和resultMap的解析

参数传递的几种情况

在这里插入图片描述

<mapper namespace="com.zks.dao.EmpMapper">
    <select id="queryAll" resultType="com.zks.vo.Emp">
        select * from emp
    </select>
<!--基于object去传递参数-->
    <select id="queryByObject" parameterType="com.zks.vo.Emp" resultType="com.zks.vo.Emp">
      select * from emp where ename=#{ename}and deptno=#{deptno}
    </select>
    <!--基于map去传递参数-->
    <select id="queryByMap" parameterType="hashmap" resultType="com.zks.vo.Emp">
        select * from emp where hiredate between #{start} and #{end} order by ${ob}
    </select>
</mapper>
/**
 * 基于object传递参数
 * @return
 */
public Emp queryByObject(){
    //获取数据库链接
    SqlSession sqlSession=MyBatiesUtils.getSqlSession();
    Emp parameter=new Emp();
    parameter.setEname("SMITH");
    parameter.setDeptno(20);
    //获取数据
   Emp emp= sqlSession.selectOne("com.zks.dao.EmpMapper.queryByObject",parameter);
   //关闭链接
   sqlSession.close();
   return emp;
}

/**
 * 基于map传递参数
 * @return
 */
public List<Emp> queryByMap() throws ParseException {
    //获取数据库链接
    SqlSession sqlSession=MyBatiesUtils.getSqlSession();
    Map<String, Object> map=new HashMap<>();
     map.put("start",new SimpleDateFormat("yyyy-MM-dd").parse("1981-01-01"));
     map.put("end",new SimpleDateFormat("yyyy-MM-dd").parse("1981-06-30"));
     map.put("ob","sal");
    //获取数据
    List<Emp>list= sqlSession.selectList("com.zks.dao.EmpMapper.queryByMap",map);
    //关闭链接
    sqlSession.close();
    return list;
}

resultMap的解析之规则查询

在这里插入图片描述
子配置文件

    <select id="selectDept" resultType="com.zks.vo.Dept">
        select * from dept where deptno=10
    </select>

<!--    查询一个list集合-->
    <select id="selectList" resultType="com.zks.vo.Dept">
        select * from dept
    </select>

    <!--    查询一个map集合-->
    <select id="selectMap" resultType="com.zks.vo.Dept">
        select * from dept
    </select>

public class DeptMapper {

/**
 * 查询一条数据
 */
public void selectDept(){
    //获取数据库链接
    SqlSession sqlSession= MyBatiesUtils.getSqlSession();
    //获取数据
    Dept dept=sqlSession.selectOne("com.zks.dao.DeptMapper.selectDept");
    sqlSession.close();
    System.out.println(dept);

}

/**
 * 返回的是一个list
 */
public  void selectList(){
    //获取数据库链接
    SqlSession sqlSession= MyBatiesUtils.getSqlSession();
    //获取数据
    List<Dept> list=sqlSession.selectList("com.zks.dao.DeptMapper.selectList");
    sqlSession.close();
    list.stream().forEach(System.out::println);

}

/**
 * 返回一个map
 */
public void selectMap(){
    //获取数据库链接
    SqlSession sqlSession= MyBatiesUtils.getSqlSession();
    //获取数据
    Map<Integer,Dept> map=sqlSession.selectMap("com.zks.dao.DeptMapper.selectMap","deptno");
    sqlSession.close();
    map.entrySet().stream().forEach(System.out::println);
}

}

resultMap之不规则查询

在这里插入图片描述
子配置文件

    <select id="selectIrregularInt" resultType="int">
      select MAX(deptno) from dept
    </select>

<!--不规则, 查询一行多列-->
    <select id="selectIrregularMap" resultType="hashmap">
        select deptno,dname from dept where deptno=(select MAX(deptno) from dept)
    </select>

    <!--不规则, 查询多行多列-->
    <select id="selectIrregularList" resultType="hashmap">
        select e.ename, d.dname,e.sal  from dept d join emp e using(deptno)
    </select>
在这里插入代码片

下面是java代码
/**
* 不规则查询一行一列
*/
public void selectIrregularInt(){
//获取数据库链接
SqlSession sqlSession= MyBatiesUtils.getSqlSession();
//获取数据
int max=sqlSession.selectOne(“com.zks.dao.DeptMapper.selectIrregularInt”);
sqlSession.close();
System.out.println(“DeptMapper.selectIrregularInt”+max);
}

/**
 * 不规则 一行多列
 */
public void selectIrregularMap(){
    //获取数据库链接
    SqlSession sqlSession= MyBatiesUtils.getSqlSession();
    //获取数据
    Map<String,Object> map=sqlSession.selectOne("com.zks.dao.DeptMapper.selectIrregularMap");
    sqlSession.close();
    System.out.println("DeptMapper.selectIrregularMap"+map);
}

/**
 * 不规则的 多行多列
 */
public void selectIrregularList(){
    //获取数据库链接
    SqlSession sqlSession= MyBatiesUtils.getSqlSession();
    //获取数据
   List<Map<String,Object>> list=sqlSession.selectList("com.zks.dao.DeptMapper.selectIrregularList");
    sqlSession.close();
    list.stream().forEach(System.out::println);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值