Mybatis通过工具类根据用户名查找用户列表

抽取SqlSessionFactoryUtils工具类,共享SqlSessionFactory创建过程

/**
 * SqlSessionFactory工具类
 * @author:Mr.Tan
 * @Create:2018-10-30-23-14
 **/
public class SqlSessionFactoryUtils {
    private static  SqlSessionFactory sqlSessionFactor;

    static {
        try {
            //创建SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
            //创建核心配置文件的输入流
            InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
            //通过输入流创建SqlSessionFactor对象
            sqlSessionFactor=ssfb.build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    /**
     * 获取SqlSessionFactory
     * @return
     */
    public static SqlSessionFactory getSqlSessionFactor() {
        return sqlSessionFactor;
    }

    public static void setSqlSessionFactor(SqlSessionFactory sqlSessionFactor) {
        SqlSessionFactoryUtils.sqlSessionFactor = sqlSessionFactor;
    }
}

根据用户ID查询用户信息

 

修改 映射文件与sql

<!--#{}相当于jdbc的?-->
<!--${}:字符串拼接指令,如果入参为普通数据类型{}内部职能写value-->
<!--如果返回结果为集合时,只需设置为每一个的数据类型-->
    <select id="getUserByUserName" parameterType="String" resultType="com.tanlei.newer.pojo.User">
       <!--SELECT id,username,birthday,sex,address FROM user WHERE username LIKE #{name}-->
        SELECT id,username,birthday,sex,address FROM user WHERE username LIKE '%${value}%'
   </select>
@Test
    public void  testGetUserByUserName(){
        //获取SqlSessionFactory
        SqlSessionFactory  sqlSessionFactor= SqlSessionFactoryUtils.getSqlSessionFactor();
        //创建sqlSession对象
        SqlSession sqlSession=sqlSessionFactor.openSession();
       // List<User> list=sqlSession.selectList("user.getUserByUserName","%张%");
        List<User> list=sqlSession.selectList("user.getUserByUserName","");
        for(User user:list){
            System.out.println(user);
        }
        //释放资源
        sqlSession.close();
    }

  

原文地址:https://www.cnblogs.com/tanlei-sxs/p/9882381.html