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