mybatis的mapper對應檔中where,if,foreach等的使用

來源:互聯網
上載者:User

標籤:open   include   pack   close   命名   使用者   res   sql   載入   

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace:命名空間,用於隔離sql,還有一個很重要的作用,後面會講 --><mapper namespace="com.it.mapper.UserMapper">    <sql id="selectUser">        SELECT * FROM `user`    </sql>        <!-- 根據多個ID查使用者資訊 -->    <select id="selectUsersByIds" parameterType="com.it.entity.QueryVo" resultType="com.it.entity.User">        <include refid="selectUser"/>        <where>            <foreach collection="idsList" item="id" separator="," open="id in (" close=")">                #{id}            </foreach>        </where>    </select></mapper>

UserMapper的對應檔

package com.it.mapper;import java.util.List;import com.it.entity.QueryVo;import com.it.entity.User;public interface UserMapper {        public User queryUserById(Integer id);        public List<User> findUserByQueryVo(QueryVo vo);        //根據多個id查詢使用者資訊    public List<User> selectUsersByIds(QueryVo vo);}

Usermapper介面

package com.it.test;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import com.it.entity.QueryVo;import com.it.entity.User;import com.it.mapper.UserMapper;public class MapperTest {        @Test    public void  testfindUsersByIds() throws Exception{        //載入設定檔        String resource = "SqlMapConfig.xml";        InputStream in = Resources.getResourceAsStream(resource);        //建立sessionFactory        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);        //建立sqlSession        SqlSession sqlSession = sessionFactory.openSession();                UserMapper userMapper = sqlSession.getMapper(UserMapper.class);                List<Integer> ids = new ArrayList<Integer>();        ids.add(10);        ids.add(16);        ids.add(22);        QueryVo vo = new QueryVo();        vo.setIdsList(ids);        List<User> users = userMapper.selectUsersByIds(vo);        for (User user : users) {            System.out.println(user);        }    }}

測試方法testfindUsersByIds

mybatis的mapper對應檔中where,if,foreach等的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.