Mybatis 进行简单模糊查询

根据用户名,模糊查找用户列表

实现方式1: #{}

配置文件:

<!-- namespace:命名空间,用于隔离sql语句 -->
<mapper namespace="user">
	
	<!-- #{}:占位符,相当于jdbc的?
		 resultType:如果返回的结果为集合,只需设置每一个的数据类型,取数用selectList,会自动封装成list
	 -->
	<select id="getUserByName" parameterType="String" resultType="com.heima.domain.User">
		select * from users where username like #{name}
	</select>
</mapper>

SqlSessionFactory工具类:

public class MybatisUtils {
	private static SqlSessionFactory factory = null;
	static{
		 SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		 factory = ssfb.build(MybatisUtils.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"));
	}
	
	public static SqlSessionFactory getFactory(){
			return factory;
	}
	
}

测试类:

	@Test
	public void test2(){
		SqlSessionFactory factory = MybatisUtils.getFactory();
		SqlSession sqlSession = factory.openSession();
		List<User> list = sqlSession.selectList("user.getUserByName", "%张%");
		for(User user: list){
			System.out.println(user);
		}
		sqlSession.close();
	}

实现方式2:${}

配置文件:

<!-- ${}:字符串拼接指令,如果入参为普通数据类型,{}内部只能写value,否则会报错
	 -->
	<select id="getUserByName" parameterType="String" resultType="com.heima.domain.User">
		select * from users where username like '%${value1}%'
	</select>

代码:

@Test
	public void test2(){
		SqlSessionFactory factory = MybatisUtils.getFactory();
		SqlSession sqlSession = factory.openSession();
		List<User> list = sqlSession.selectList("user.getUserByName", "张");
		for(User user: list){
			System.out.println(user);
		}
		sqlSession.close();
	}

猜你喜欢

转载自blog.csdn.net/xldmx/article/details/87905729