mybaits映射文件中标签的使用

一.标签概述

二.if标签

三.foreach标签

3.1 案例

在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:

  1. 1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

  2. 2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array

  3. 3. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可

第一种qingk:

第二种情况:

第三种情况:

3.2 操作

1.mapper.xml

    <!-- 查询byid-->
    <select id="findByIds" parameterType="java.util.List" resultType="com.mybaits.demo.bean.User">
        select id,user_name userName,password from tb_user
        where
        <foreach collection="list" open="id in(" close=")" item="id" separator=",">
            #{id}
        </foreach>
    </select>

2. daomapper

package com.mybaits.demo.dao;

import com.mybaits.demo.bean.User;

import java.io.IOException;
import java.util.List;

public interface UserMapper {
    List<User> findAll() throws IOException;
    List<User> findByIds(List<Integer> dataList) throws IOException;
}

3.service层

package com.mybaits.demo.service;

import com.mybaits.demo.bean.User;

import java.io.IOException;
import java.util.List;

public interface UserService2 {
    List<User> findAll() throws IOException;
    List<User> findByIds(List<Integer> dataList) throws IOException;
}

实现层

    @Override
    public List<User> findByIds(List<Integer> dataList) throws IOException {
        //加载核心配置文件
        InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");
        //获得sqlsession 工厂对象
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);
        //获得sqlsession对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //产生代理对象
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        List<User> userList= userMapper.findByIds(dataList);
        //打印资源
        System.out.println("userlist:"+userList);
        //关闭释放资源
        sqlSession.close();
        return userList;
    }

调用层:

package com.mybaits.demo;

import com.mybaits.demo.bean.User;
import com.mybaits.demo.service.UserService;
import com.mybaits.demo.service.UserService2;
import com.mybaits.demo.service.impl.UserServiceImpl;
import com.mybaits.demo.service.impl.UserServiceImpl2;
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.apache.log4j.Logger;
import org.omg.PortableInterceptor.INACTIVE;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


/**
 * @ClassName: App2
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/01/30 21:54:06 
 * @Version: V1.0
 **/
public class App2 {
    private static Logger log = Logger.getLogger(App2.class);
    public static void main(String[] args) throws IOException {
        //方式一:传统方法
        //UserService userService=new UserServiceImpl();
        //userService.findAll();
        //方法二: 代理方式

        UserService2 userService=new UserServiceImpl2();
        userService.findAll();
        List<Integer> dataList=new ArrayList<Integer>();
        dataList.add(1);
        dataList.add(2);
        userService.findByIds(dataList);
        log.info("执行完了!!!");
    }

}

猜你喜欢

转载自blog.csdn.net/u011066470/article/details/113477927