先定义一组接口
package com.qst.dao;
import com.qst.domain.User;
import java.util.List;
public interface IUserDao {
// 根据id查询
User findUserById(Integer id);
// 模糊查询
List<User> findUserByName(String name);
}
配置映射文件
<?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.qst.dao.IUserDao">
<select id="findUserById" parameterType="int" resultType="com.qst.domain.User">
select * from employee where id=#{id}
</select>
<select id="findUserByName" parameterType="String" resultType="com.qst.domain.User">
select * from employee where username like #{username}
<-- select * from employee where username like '%${value}%'-->
</select>
</mapper>
测试类
注意模糊查询需要在传递参数时加上%%,而不是在配置中,如果非要在配置时,需要把#{}修改'%${value}%'
package com.qst;
import com.qst.dao.IUserDao;
import com.qst.domain.User;
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.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MybatisTest {
private InputStream in;
private SqlSession sqlSession;
private IUserDao userDao ;
@Before
public void init() throws IOException {
in = Resources.getResourceAsStream("Config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
sqlSession = factory.openSession();
userDao= sqlSession.getMapper(IUserDao.class);
}
@After
public void destory() throws IOException{
sqlSession.commit();
sqlSession.close();
in.close();
}
@Test
public void findById(){
User user = userDao.findUserById(3);
System.out.println(user);
}
//模糊查询
@Test
public void findByName(){
List<User> users = userDao.findUserByName("%r%");
for(User user : users){
System.out.println(user);
}
}
}