java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Mybatis查询接口

Mybatis各种查询接口使用详解

作者:学习使我快乐T

这篇文章主要介绍了Mybatis各种查询接口使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

一、查询一个实体类对象

①创建SelectMapper接口

若sql语句查询的结果为多条时,一定不能以实现类类型作为方法的返回值

否则会抛出异常TooManyResultsException

若sql语句查询的结果为1条时,此时可以使用实体类类型或list集合类型作为方法的返回值

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    User getUserById(@Param("id") Integer id);

②创建SelectMapper配置文件

<!--    User getUserById(@Param("id") Integer id);-->
    <select id="getUserById" resultType="User">
        select * from t_user where id = #{id}
    </select>

③创建测试类

    @Test
    public void testGetUserById(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        User user = mapper.getUserById(2);
        System.out.println(user);
        sqlSession.close();
    }

二、查询一个list集合

①创建SelectMapper接口

    /**
     * 查询所有的用户信息
     * @return
     */
    List<User> getAllUser();

②创建SelectMapper配置文件

<!--    List<User> getAllUser();-->
    <select id="getAllUser" resultType="User">
        select * from t_user
    </select>

③创建测试类

    @Test
    public void testGetAllUser(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        List<User> allUser = mapper.getAllUser();
        allUser.forEach(System.out::println);
        sqlSession.close();
    }

三、查询单个数据

①创建SelectMapper接口

    /**
     * 查询用户的总记录数
     * @return
     */
    Integer getCount();

②创建SelectMapper配置文件

在MyBatis中,对于Java中常用的类型都设置了类型别名

例如: java.lang.Integer -> int/integer

例如: int -> _int/_integer

例如: Map -> map,

例如: List -> list

<!--    Integer getCount();-->
<!--    <select id="getCount" resultType="java.lang.Integer">-->
    <select id="getCount" resultType="Integer">
        select count(*) from t_user
    </select>

③创建测试类

    @Test
    public void testGetCount(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        Integer count = mapper.getCount();
        System.out.println(count);
        sqlSession.close();
    }

四、查询一个数据为map集合

①创建SelectMapper接口

    /**
     * 根据用户id查询用户信息为map集合
     * @param id
     * @return
     */
    Map<String, Object> getUserToMap(@Param("id") int id);

②创建SelectMapper配置文件

    <!--Map<String, Object> getUserToMap(@Param("id") int id);-->
    <!--结果: {password=123456, sex=男 , id=1, age=23, username=admin}-->
    <select id="getUserToMap" resultType="map">
        select * from t_user where id = #{id}
    </select>

③创建测试类

    @Test
    public void testGetUserToMap(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        Map<String, Object> userToMap = mapper.getUserToMap(2);
        System.out.println(userToMap);
        sqlSession.close();
    }

五、查询多条数据为map集合

①创建SelectMapper接口

方式一:

    /**
     * 查询所有用户信息为map集合
     * @return
     * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,此
    时可以将这些map放在一个list集合中获取
     */
//    List<Map<String, Object>> getAllUserToMap();

方式二:

    /**
     * 查询所有用户信息为map集合
     * @return
     * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,并
    且最终要以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的
    map集合
     */
    @MapKey("id")
    Map<String, Object> getAllUserToMap();

②创建SelectMapper配置文件

    <!--Map<String, Object> getAllUserToMap();-->
    <select id="getAllUserToMap" resultType="map">
        select * from t_user
    </select>

③创建测试类

    @Test
    public void testGetAllUserToMap(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
//        List<Map<String, Object>> allUserToMap = mapper.getAllUserToMap();
//        allUserToMap.forEach(System.out::println);
        Map<String, Object> allUserToMap = mapper.getAllUserToMap();
        System.out.println(allUserToMap);
        sqlSession.close();
    }

到此这篇关于Mybatis各种查询接口使用详解的文章就介绍到这了,更多相关Mybatis查询接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文