Mybatis框架

本文介绍了Mybatis框架的起源和特点,包括其作为半自动ORM实现的角色,Dao层的功能以及动态SQL的支持。接着详细阐述了如何在IntelliJ IDEA中利用Maven搭建Mybatis开发环境,包括配置Maven的阿里云仓库,创建项目,编写pom.xml文件导入所需依赖,并逐步讲解了数据库配置、实体类、Mapper接口与XML配置文件的创建,以及工具类和测试类的编写过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1Mybatis框架的简介
MyBatis前身是iBatis,是Apache的一个开源项目
半自动化的ORM实现(ORM)————》对象关系映射 对数据库进行操作
Dao层
动态SQL
小巧灵活,
2 搭建MyBatis开发环境
我这里是通过idea中创建Maven项目来进行搭建MyBatis
步骤如下
在这里插入图片描述
而在maven中我们不需要取网上下载架包,我们在搭建maven环境时,我们就可以访问阿里云仓库,idea在里面自动下载架包,这个我们就要在pom.xml配置文件中写我们需要导包的版本
下面是演示如何创建Maven项目并自动导包
1
file-new -project
在这里插入图片描述
2
在这里插入图片描述
3
在这里插入图片描述
4这个很重要,这个是你在网上下载的Maven架包的路径所在的setting.xml文件和你创建下载仓库路径,这个不推荐放在c盘,在不选择的情况下,是默认的,默认这个在导包时非常的缓慢,因为它是在外国网站下载等
在这里插入图片描述
5一直按finish就创建成功了

6 在pom.xml中写要导入包的版本如下junit ,mysql,mybatis,log4j

在这里插入图片描述

在这里插入图片描述
创建的包名和路径
在这里插入图片描述
在这里插入图片描述

1 数据库的配置文件 database.properties

 driver=com.mysql.jdbc.Driver
    #在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8,
    # userSSl=false时 是为了MySQL在高版本需要指明是否进行SSL连接。
    # zeroDateTimeBehavior=convertToNull是为了 处理JAVA连接MySQL数据库,在操作各项值均为为0(或者有0不正确的数据??)的timestamp等(日期为0000-00-00。。。。)类型时不能正确处理,而是默认抛出一个异常,
    url=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=convertToNull
    user=root
    password=hukaixin150

2编写Mybits核心配置文件mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 引入 database.properties 文件-->
    <properties resource="database.properties"/>
    <!--自动映射级别 autoMappingBehavior
     value在默认情况下(PARTIAL),若是普通数据类型的属性,会自动匹配,对有内部嵌套的(association 或collection)
     value 为FULL时,自动匹配所有
       value -->
    <settings>
        <setting name="autoMappingBehavior" value="FULL"/><!--自动映射级别-->
    </settings>
    <!--取别名-->
    <typeAliases>
        <package name="cn.kgc.pojo"/><!--对我们的配置文件中用到这个路径时,就可以不加,比如说我们UserMapp.xml文件中用到的User-->
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <!--配置事务管理,采用JDBC的事务管理  -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${user}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 将mapper文件加入到配置文件中 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/><!--引入UserMapper.xml配置文件-->
        <mapper resource="mapper/ProviderMapper.xml"/>
        <mapper resource="mapper/BillMapper.xml"/>
    </mappers>

</configuration>

3 pojo实体类 如User如下

package cn.kgc.pojo;

import java.util.Date;
import java.util.List;

public class User {
	private Integer id; //id
	private String userCode; //用户编码
	private String userName; //用户名称
	private String userPassword; //用户密码
	private Integer gender;  //性别
	private Date birthday;  //出生日期
	private String phone;   //电话
	private String address; //地址
	private Integer userRole;    //用户角色
	private Integer createdBy;   //创建者
	private Date creationDate; //创建时间
	private Integer modifyBy;     //更新者
	private Date modifyDate;   //更新时间
	private String userRoleName;//role表中的roleName//用户角色名称
	private Role role;//用户角色,用对象来封装
	private List<Address> addressList;//用户的地址

	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUserCode() {
		return userCode;
	}
	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPassword() {
		return userPassword;
	}
	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}
	public Integer getGender() {
		return gender;
	}
	public void setGender(Integer gender) {
		this.gender = gender;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public Integer getUserRole() {
		return userRole;
	}
	public void setUserRole(Integer userRole) {
		this.userRole = userRole;
	}
	public Integer getCreatedBy() {
		return createdBy;
	}
	public void setCreatedBy(Integer createdBy) {
		this.createdBy = createdBy;
	}
	public Date getCreationDate() {
		return creationDate;
	}
	public void setCreationDate(Date creationDate) {
		this.creationDate = creationDate;
	}
	public Integer getModifyBy() {
		return modifyBy;
	}
	public void setModifyBy(Integer modifyBy) {
		this.modifyBy = modifyBy;
	}
	public Date getModifyDate() {
		return modifyDate;
	}
	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}

	public String getUserRoleName() {
		return userRoleName;
	}

	public void setUserRoleName(String userRoleName) {
		this.userRoleName = userRoleName;
	}

	public Role getRole() {
		return role;
	}

	public void setRole(Role role) {
		this.role = role;
	}


	public List<Address> getAddressList() {
		return addressList;
	}

	public void setAddressList(List<Address> addressList) {
		this.addressList = addressList;
	}
}

4 Dao成接口,与mapper包里的配置文件对应,如UserMapper接口 与UserMapper.xml对应,相当于夫妻关系
如下UserMapper接口 和UserMapper配置文件

UserMapper接口
package cn.kgc.dao;

import cn.kgc.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    //UserMapper配置文件中查询的总数
    public Integer count();
    //查询表中所有数据
    public List<User> selectUser();
    //模糊查询
    public List<User> selectUserInfo(String userName);
    //多条件查询 - ----对象进行封装参数
    public List<User> selectUserInfo1(User user);
    // 多条件查询  ---map进行封装参数
    public List<User> selectUserInfoMap(Map map);
    //多条件查询,两个表中数据 配置文件要映射, 通过userName何userRole
    public List<User> selectUserrole(@Param("userName") String userName,
                                     @Param("userRole") Integer userRole);
    //多条件查询,两个表中数据 配置文件要映射, map进行封装参数
    public List<User> selectUserRoleInfo(Map map);
    //添加用户信息
    public int addUser(User user);

    /**
     * 修改用户信息
     * @param user
     * @return
     */
     public  int updateUser(User user);

     /**
     * 删除用户信息
     * @param id
     * @return
     */
    public int deleteUser(Integer id);

    /**
     * 结果映射
     * 使用association处理一对一关联关系
     * @param roleId
     * @return
     */
    public List<User> selectUserRole(@Param("userRole")Integer roleId);

    /**
     * 结果映射
     * 通过collection处理一对多关联关系
     * @param userId
     * @return
     */
    public List<User> selectAddress(@Param("id")Integer userId);

    /**
     * 根据用户角色,获取表中信息
     * 参数为数组
     * @param roleIds
     * @return
     */
    public  List<User> selectUserRoleId_foreach_array(Integer[] roleIds);

    /**根据用户角色,获取表中信息
     * 参数为集合
     * @param rolelist
     * @return
     */
    public List<User> selecUserRoleId_foreach_list(List<Integer> rolelist);

    /**
     *
     * @param roleMap
     * @return
     */
    public List<User> selectUserRoleId_foreach_map(Map<String,Object> roleMap);

    /**
     * choose相当于我们的switch语句
     * @param userName
     * @param userCode
     * @return
     */
    public List<User> selectUser_choose(@Param("userName") String userName,
                                        @Param("userCode") String userCode,
                                        @Param("userRole") Integer userRole);

    /**
     * 动态sql进行分页查询
     * @param userName
     * @param roleId
     * @param currenPageNo
     * @param pageSize
     * @return
     */

    public List<User> selectUser_fenye(@Param("userName") String userName,
                                       @Param("userRole") Integer roleId,
                                       @Param("from") Integer currenPageNo,
                                       @Param("PageSize") Integer pageSize);
}

UserMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.kgc.dao.UserMapper"><!-- 区分不同的mapper,与cn.kgc.dao下UserMapper对应 -->
	<!--手动映射-->
	<resultMap id="userList" type="User">
		<result property="id" column="id" />
		<result property="userCode" column="userCode"/>
		<result property="userName" column="userName"/>
		<result property="address" column="address"/>
		<result property="userRoleName" column="roleName"/>
 	</resultMap>
	<resultMap id="roleResult" type="Role">
		<id property="id" column="r_id"/>
		<result property="roleCode" column="roleCode"/>
		<result property="roleName" column="roleName"/>
	</resultMap>

	<!--手动映射 通过association来处理一一映射-->
	<resultMap id="userRoleResult" type="User">
		<result property="id" column="id"/>
		<result property="userCode" column="userCode"/>
		<result property="userName" column="userName"/>
		<result property="userRole" column="userRole"/>
		<association property="role" javaType="Role" resultMap="roleResult"/>
	</resultMap>

<!--Address表中的映射,关联着User表,通过collection来处理映射,
一对多的关系,比如一个人有多个房子,房子是一个表中的一个属性,
这个人是另外一个表的属性,这俩个表是要有关联的-->
	<resultMap id="addressResult" type="Address">
		<id property="id" column="a_id"/>
		<result property="contact" column="contact"/>
		<result property="addressDesc" column="addressDesc"/>
		<result property="postCode" column="postCode"/>
	</resultMap>
	<resultMap id="addressListResult" type="User">
		<result property="id" column="id"/>
		<result property="userCode" column="userCode"/>
		<result property="userName" column="userName"/>
		<result property="userRole" column="userRole"/>
		<collection property="addressList" resultMap="addressResult"/>
	</resultMap>



    <!-- sql语句 -->
    <!-- 查询用户表的总数 -->
    <select id="count" resultType="int"><!--id是select的属性,resultType是返回的属性 -->
	 	select count(1) from smbms_user
	 </select>
	<!--查询所有信息-->
	<select id="selectUser" resultType="User">
		select * from smbms_user
	</select>
	<!--模糊查询-->

	<select id="selectUserInfo" resultType="User" parameterType="String">
		select * from smbms_user where userName like concat("%",#{userName},"%")
	</select>
	<!--多条件查询-->
	<select id="selectUserInfo1" parameterType="User" resultType="User">
			select  * from  smbms_user where
				userName like concat("%",#{userName},"%") and userCode like concat("%",#{userCode},"%")
	</select>
	<!--多条件查询,map封装数据-->
	<select id="selectUserInfoMap" parameterType="Map"  resultType="User">
		select  * from  smbms_user
		<trim prefix="where" prefixOverrides="and | or" >
			<if test="userName!=null and userName!=''">
				 and userName like concat("%",#{userName},"%")
			</if>
			<if test="userRole!=null ">
				and userRole like concat("%",#{userRole},"%")
			</if>
		</trim>


	</select>
	<!--多条件查询,-->
	<select id="selectUserrole" resultMap="userList">
		select u.*, r.roleCode,r.roleName  from smbms_user u,smbms_role r
		where u.userRole=r.id
		<if test="userRole!=null">
			and userRole=#{userRole}
		</if>
		<if test="userName!=null and userName!=''">
			and userName like concat("%",#{userName},"%")
		</if>
	</select>
	<!--联表查询通过手动映射-->
	<select id="selectUserRoleInfo" parameterType="Map" resultMap="userList">
		select u.*, r.roleCode,r.roleName  from smbms_user u,smbms_role r where userName like concat("%",#{userName},"%") and userRole=#{userRole} and u.userRole=r.id
	</select>
	<!--添加用户休息-->
	<insert id="addUser"  parameterType="User">
		insert into smbms_user (userCode,userName,userPassword,phone,address) values (#{userCode},#{userName},#{userPassword},#{phone},#{address})
	</insert>
	<!--修改用户-->
	<!--if +set-->
	<update id="updateUser" parameterType="User">
		update smbms_user
		<trim prefix="set" suffixOverrides="," suffix=" where id=#{id}">
			<if test="userName!=null">userName=#{userName},</if>
			<if test="userCode!=null">userCode=#{userCode},</if>
			<if test="phone!=null">phone=#{phone},</if>
		</trim>

	</update>
	<!--删除用户通过id-->
	<delete id="deleteUser" parameterType="integer">
		delete from smbms_user where id=#{id}
	</delete>
	<!--查询多表,association来处理映射-->
	<select id="selectUserRole" parameterType="integer" resultMap="userRoleResult">
		select u.*,r.id as r_id,r.roleCode,r.roleName
		from smbms_user u,smbms_role r
		where u.userRole=#{userRole} and u.userRole=r.id
	</select>
	<!--查询多表,collection处理一对多映射-->
	<select id="selectAddress" parameterType="integer" resultMap="addressListResult">
		select u.*,a.id as a_id,a.contact,a.addressDesc,a.postCode
		from smbms_user u,smbms_address a
		where u.id=#{id} and u.id=a.userId
	</select>
	<!---->
	<resultMap id="userMapByRole" type="User">
		<id property="id" column="id"/>
		<result property="userCode" column="userCode"/>
		<result property="userName" column="userName"/>
	</resultMap>
	<select id="selectUserRoleId_foreach_array" resultMap="userMapByRole" >
		select * from smbms_user where userRole in
		<foreach collection="array" item="roleIds"
			open="(" separator="," close=")">
			#{roleIds}
		</foreach>
	</select>
	<select id="selecUserRoleId_foreach_list" resultMap="userMapByRole">
		select * from smbms_user where userRole in
		<foreach collection="list" item="rolelist"
				 open="(" separator="," close=")">
			#{rolelist}
		</foreach>
	</select>
	<select id="selectUserRoleId_foreach_map" resultMap="userMapByRole">
		select * from smbms_user where  gender=${gender}
		and userRole in
		<foreach collection="Rolelist" item="roleMap"
				 open="(" separator="," close=")">
			#{roleMap}
		</foreach>
	</select>
	<select id="selectUser_choose" resultType="User">
		select * from smbms_user where 1=1
		<choose>
			<when test="userName!=null and userName=''">
				and userName like concat("%",#{userName},"%")
			</when>
			<when test="userRole!=null ">
				and userRole like concat("%",#{userRole},"%")
			</when>
			<when test="userCode!=null and userCode=''">
				and userCode like concat("%",#{userCode},"%")
			</when>
		</choose>
	</select>
	<select id="selectUser_fenye" resultMap="userList">
		select u.*, r.roleCode,r.roleName  from smbms_user u,smbms_role r
		where u.userRole=r.id
		<if test="userRole!=null">
			and userRole=#{userRole}
		</if>
		<if test="userName!=null and userName=''">
			and userName like concat("%",#{userName},"%")
		</if>
		order by creationDate DESC limit #{from},#{PageSize}



	</select>


</mapper>

5创建工具类,
静态方法 //读取配置文件 //创建sqlSessionFactory对象,来完成对配置文件的处理
方法二 //创建SqlSession
方法三 //关闭Sqlsession

package cn.kgc.util;

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 java.io.IOException;
import java.io.InputStream;

/**
 * mybatis框架的工具类
 */
public class MybatisUtil {
    private static SqlSessionFactory sqlSessionFactory;
    //静态代码块
    static {
        String resource = "mybatis-config.xml";
        InputStream inputStream=null;
        try {
            //读取配置文件
             inputStream =Resources.getResourceAsStream(resource);
            //2创建sqlSessionFactory对象,来完成对配置文件的处理
            sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    //3创建SqlSession
    public static SqlSession getSqlSession(boolean autocommit){
        SqlSession sqlSession=sqlSessionFactory.openSession(autocommit);
        return sqlSession;
    }
    //关闭Sqlsession
    public static void closeSqlSession(SqlSession sqlSession){
        sqlSession.close();
    }
}

6 写测试类

package cn.kgc.dao;

import cn.kgc.pojo.Address;
import cn.kgc.pojo.User;
import cn.kgc.util.MybatisUtil;
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.junit.Test;

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

public class UserMapperTest{
    //创建控制台打印,这个要导入log4j,和引入配置文件log4j.properties
    private Logger logger=Logger.getLogger(UserMapperTest.class);
    @Test
    public void test1() throws IOException {

         /* String resource = "mybatis-config.xml";
            //获取输入流
          InputStream is = Resources.getResourceAsStream(resource);
          //2创建sqlSessionFactory对象,来完成对配置文件的处理
          SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(is);
            //3创建SqlSession
          SqlSession sqlSession=factory.openSession();
          //4调用mapper文件来对数据进行操作,必须将mapper文件引入到mybatis-config.xml
          Integer count=sqlSession.selectOne("cn.kgc.dao.UserMapper.count");
          System.out.println(count);
          sqlSession.close();*/
    }
    @Test
    public void test2() throws IOException{
         //通过写完工具类来调用
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);//在调用这个方法时,先执行了其的静态代码块
        Integer count= sqlSession.selectOne("cn.kgc.dao.UserMapper.count");//cn.kgc.dao.UserMapper.count这个路径,是在UserMapper里定义了的,
        //System.out.println(count);
        logger.info(count);
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test3() throws IOException{
        //调用接口
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        Integer count=sqlSession.getMapper(UserMapper.class).count();
        System.out.println(count);
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void text4() throws IOException{
        //调用接口
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        List<User> list =sqlSession.getMapper(UserMapper.class).selectUser();
        for(User lists:list){
            System.out.println(lists.getUserName());
        }
    }
    @Test
    public void test4(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        Integer count=sqlSession.getMapper(ProviderMapper.class).count();
        System.out.println(count);
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test5(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUserInfo("超");
        for(User user:list){
            System.out.println(user.getUserName());
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }

    @Test
    public void test6() {
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        User user =new User();
        user.setUserName("超");
        user.setUserCode("o");
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUserInfo1(user);
        for(User lists: list){
            System.out.println(lists.getUserName()+lists.getUserCode());
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test7() {
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        Map<String,String> map=new HashMap();
        map.put("userName","超");
        map.put("userRole",null);
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUserInfoMap(map);
        for(User lists: list){
           /* System.out.println(lists.getUserName()+lists.getUserCode()+lists.getPhone());*/
            logger.info(lists.getPhone());
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void tes(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        String userName="超";
        Integer userRole=null;
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUserrole(userName,userRole);
        for(User lists: list){
            System.out.println(lists.getUserName()+lists.getUserCode()+lists.getUserRole()+lists.getUserRoleName());
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test8() {
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        Map<String,String> map=new HashMap();
        map.put("userName","超");
        map.put("userRole","3");
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUserRoleInfo(map);
        for(User lists: list){
            System.out.println(lists.getUserName()+lists.getUserCode()+lists.getUserRole()+lists.getUserRoleName());
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }

    @Test
    public void test9(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        User user =new User();
        user.setUserCode("xiaohua");
        user.setUserName("小花");
        user.setUserPassword("475698");
        user.setPhone("15279008800");
        user.setAddress("Tcl");
        int result=sqlSession.getMapper(UserMapper.class).addUser(user);
        if(result>0){
            logger.info("添加成功");
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test10(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        User user=new User();
        user.setUserName("zhuzhu2222");
        user.setPhone("1695fsfsf");
        user.setId(16);
        user.setUserCode("住址");
        int result=sqlSession.getMapper(UserMapper.class).updateUser(user);
        if(result>0){
            logger.info("修改成功");
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test11(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        int result=sqlSession.getMapper(UserMapper.class).deleteUser(17);
        if(result>0){
            logger.info("删除成功");
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test12(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUserRole(3);
        for(User user:list){
            logger.info(user.getUserName()+user.getUserRole()+user.getRole().getRoleCode()+user.getRole().getRoleName());
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test13(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        List<User> list=sqlSession.getMapper(UserMapper.class).selectAddress(1);
        for(User user : list){
            logger.info("userName:"+user.getUserName()+"\n id:"+user.getId());
            for(Address address: user.getAddressList()){
                logger.info( "contact:"+address.getContact()+"addressDesc:\n"+address.getAddressDesc()+"\n postCode:"+address.getPostCode());
            }
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public  void test14(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        Integer[] roleIds =new Integer[]{2,3};
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUserRoleId_foreach_array(roleIds);
        for(User lists: list){
            System.out.println(lists.getUserName()+lists.getUserCode());
        }
        MybatisUtil.closeSqlSession(sqlSession);
    }

    @Test
    public  void test15(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        ArrayList<Integer> rolelist=new ArrayList<>();
        rolelist.add(2);
        rolelist.add(3);
        List<User> list=new ArrayList<>();
         list=sqlSession.getMapper(UserMapper.class).selecUserRoleId_foreach_list(rolelist);
        for(User lists: list){
            logger.info(lists.getUserName()+lists.getUserCode());

        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public  void test16(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        ArrayList<Integer> rolelist=new ArrayList<>();
        Map<String,Object> roleMap=new HashMap<>();
        rolelist.add(2);
        rolelist.add(3);
        roleMap.put("gender",1);
        roleMap.put("Rolelist",rolelist);
        List<User> list=new ArrayList<>();
        list=sqlSession.getMapper(UserMapper.class).selectUserRoleId_foreach_map(roleMap);
        for(User lists: list){
            logger.info(lists.getUserName()+lists.getUserCode());

        }
        MybatisUtil.closeSqlSession(sqlSession);
    }
    @Test
    public void test17(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        String userName="超";
        String userCode="0";
        Integer userRole=1;
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUser_choose(userName,userCode,userRole);
        for(User lists: list){
            logger.info(lists.getUserName()+lists.getUserCode());

        }

    }
    @Test
    public void test18(){
        SqlSession sqlSession=MybatisUtil.getSqlSession(true);
        String userName="";
        Integer userRole=3;
        Integer from=0;
        Integer pageSize=3;
        List<User> list=sqlSession.getMapper(UserMapper.class).selectUser_fenye(userName,userRole,from,pageSize);
        for(User user:list){
            logger.info(user.getUserName()+user.getUserRole());
        }

    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值