dao接口实现类存在大量模板方法,dao开发可以将这些代码提取出来,减轻工作量
dao接口
import mybatis.po.User;
public interface UserDao {
public User findUserById(int id);
}
dao接口实现
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import mybatis.po.User;
public class UserDaoImpl implements UserDao{
private SqlSessionFactory sqlSessionFactory;
public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
this.sqlSessionFactory=sqlSessionFactory;
}
@Override
public User findUserById(int id) {
SqlSession sqlSession=sqlSessionFactory.openSession();
User user=sqlSession.selectOne("test.findUserById", 1);
sqlSession.close();
return user;
}
}
测试:
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
public class DaoTest {
SqlSessionFactory sessionFactory = null;
@Before
public void setUp() throws IOException {
String resource = "SqlMapConfig.xml";
InputStream InputStream = Resources.getResourceAsStream(resource);
sessionFactory = new SqlSessionFactoryBuilder().build(InputStream);
}
@Test
public void testfindUserById() {
// 注入
UserDao userDao = new UserDaoImpl(sessionFactory);
User user = userDao.findUserById(1);
System.out.println(user);
}
}