mybatis-210719-01---映射文件_select_返回List&记录封装map

mybatis-210719-01—映射文件_select_返回List&记录封装map


返回List

EmployeeMapper.java

package com.bgy.mybatis.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.bgy.mybatis.bean.Employee;

public interface EmployeeMapper {
	public List<Employee> getEmpByLastNameLike(String lastName);
}

EmployeeMapper.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="com.bgy.mybatis.dao.EmployeeMapper">
	<!--  -->
	<select id="getEmpByLastNameLike" resultType="com.bgy.mybatis.bean.Employee">
    select 
    	id,last_name,gender,email
    from
    	tbl_employee 
    where 
    	last_name like #{lastName}
  </select>
</mapper>

MybatisTest.java

package com.bgy.mybatis.test;

import static org.junit.jupiter.api.Assertions.*;

import java.io.IOException;
import java.io.InputStream;
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.jupiter.api.Test;
import com.bgy.mybatis.bean.Employee;
import com.bgy.mybatis.dao.EmployeeMapper;

class MybatisTest {
	
	public SqlSessionFactory getSqlSessionFactory() throws IOException {
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
	}

	/**
	 * 测试select返回一个List集合
	 * @throws IOException
	 */
	@Test
	public void test03() throws IOException{
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		try {
			EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
			
			List<Employee> employees = mapper.getEmpByLastNameLike("%zhang%");
			for (Employee e : employees) {
				System.out.println(e);
			}
		} finally {
			sqlSession.close();
		}
	}
}


记录封装map

EmployeeMapper.java

package com.bgy.mybatis.dao;

import java.util.Map;
import org.apache.ibatis.annotations.MapKey;
import com.bgy.mybatis.bean.Employee;

public interface EmployeeMapper {
    
	// 返回一条记录的map,key就是列明,值就是对应的值
	public Map<String,Object> getEmpByIdTurnMap(Integer id);
	
	
	// 多条记录封装一个map,Map<Integer,Employee>
	// 键是这条记录的主键,值是记录封装后的JavaBean对象
	// 告诉mybatis封装这个map的时候使用哪个属性作为map的key
//	@MapKey("id")
	@MapKey("lastName")
	public Map<Integer,Employee> getEmpByLastNameLikeReturnMap(String lastName);
}

EmployeeMapper.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="com.bgy.mybatis.dao.EmployeeMapper">
	<!-- 返回一条记录的map -->
	<select id="getEmpByIdTurnMap" resultType="map">
    select 
    	*
    from
    	tbl_employee 
    where 
    	id=#{id}
  </select>
  
  <!-- 多条记录封装一个map -->
  <select id="getEmpByLastNameLikeReturnMap" resultType="com.bgy.mybatis.bean.Employee">
  	select * from tbl_employee where last_name like #{lastName}
  </select>
</mapper>

MybatisTest.java

package com.bgy.mybatis.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
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.jupiter.api.Test;
import com.bgy.mybatis.bean.Employee;
import com.bgy.mybatis.dao.EmployeeMapper;

class MybatisTest {
	
	public SqlSessionFactory getSqlSessionFactory() throws IOException {
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
	}

	/**
	 * 测试select,记录封装map
	 * @throws IOException
	 */
	@Test
	public void test03() throws IOException{
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		try {
			EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
			
			// 返回一条记录的map
//			Map<String,Object> map = mapper.getEmpByIdTurnMap(1);
//			System.out.println(map);
			
			// 多条记录封装一个map
			Map<Integer,Employee> map = mapper.getEmpByLastNameLikeReturnMap("%g%");
			System.out.println(map);
		} finally {
			sqlSession.close();
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus支持多参数查询,可以通过以下几种方式实现: 1. 使用@Param注解:在Mapper接口的方法参数中使用@Param注解,将多个参数映射到SQL语句中的对应位置。示例代码如下: ```java @Mapper public interface UserMapper extends BaseMapper<User> { List<User> selectUsers(@Param("name") String name, @Param("age") Integer age); } ``` 在XML映射文件中的SQL语句中使用`#{}`占位符引用这些参数: ```xml <select id="selectUsers" resultType="User"> SELECT * FROM user WHERE name = #{name} AND age = #{age} </select> ``` 2. 使用Map作为参数:将多个参数封装到一个Map中,Map的键值对分别对应参数名和参数值。示例代码如下: ```java @Mapper public interface UserMapper extends BaseMapper<User> { List<User> selectUsers(Map<String, Object> params); } ``` 在XML映射文件中的SQL语句中使用`#{}`占位符引用Map中的参数: ```xml <select id="selectUsers" resultType="User"> SELECT * FROM user WHERE name = #{name} AND age = #{age} </select> ``` 3. 使用Wrapper对象:MyBatis-Plus提供了Wrapper对象,用于构建查询条件。可以通过链式调用方法设置多个查询条件。示例代码如下: ```java @Mapper public interface UserMapper extends BaseMapper<User> { List<User> selectUsers(@Param(Constants.WRAPPER) Wrapper<User> wrapper); } ``` 在调用方法时,构建查询条件并传入Wrapper对象: ```java QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("name", "John") .eq("age", 25); List<User> users = userMapper.selectUsers(wrapper); ``` 以上是MyBatis-Plus多参数查询的几种常见方式,根据具体需求选择合适的方式进行查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值