@Service
public class DbConService implements IDbConService {
@Resource
protected SqlSessionTemplate sqlSessionTemplate;
protected SqlSession getNativeSqlSession() {
return SqlSessionUtils.getSqlSession(sqlSessionTemplate.getSqlSessionFactory(),
sqlSessionTemplate.getExecutorType(),sqlSessionTemplate.getPersistenceExceptionTranslator());
}
protected void closeNativeSqlSession(SqlSession sqlSession){
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionTemplate.getSqlSessionFactory());
}
@Override
public int updateBySql() {
int nupdate = -1;
SqlSession sqlSession = null;
PreparedStatement pst = null;
try{
sqlSession = getNativeSqlSession();
Connection dbCon = sqlSession.getConnection();
pst = dbCon.prepareStatement("insert into pn_person_info(`name`,`age`,`address`,`school`) values (?,?,?,?)");
pst.setString(1,"唐嫣");
pst.setInt(2,38);
pst.setString(3,"北京");
pst.setString(4,"北影");
nupdate = pst.executeUpdate();
pst.close();
}catch (SQLException e){
}finally {
if(null != sqlSession)
closeNativeSqlSession(sqlSession);
}
return nupdate;
}
}
原理:mybatis可以使用SqlSessionTemplate自动管理SqlSession关闭(动态代理原理)