本文主要是介绍mybaits映射文件中标签的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.标签概述
二.if标签
三.foreach标签
3.1 案例
在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:
-
1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
-
2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
-
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_userwhere<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;
}
实现层
@Overridepublic 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("执行完了!!!");}}
这篇关于mybaits映射文件中标签的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!