抽取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(); }