mybatis学习(2)

Mybatis 传统DAO开发模式

 

在上节完成了mybatis的基础配置,上节实现的方法使用的是动态代理,传统的Dao实现方法是使用接口的实现类,所以先创建一个实现类,

 

public class MybatisImpl implements IMybatis {
    
    private SqlSessionFactory factory;
    
    public MybatisImpl(SqlSessionFactory factory) {
        this.factory=factory;
    }

    public List<Account> findAll() {
        SqlSession session = factory.openSession();
        //Sqlession中的方法参数statement为mapper文件里的:接口名.方法名
        List<Account> list = session.selectList("pers.lyh.mybatis.IMybatis.findAll");
        session.close();
        return list;
    }
}

 

 

 

上例子里省略了其他的接口方法,这里只是举个例子,接下来在test方法里调用dao的实现类,大致过程和动态代理相似

 

public class MybatisTest02 {

    IMybatis mapper;
    InputStream stream;
    IMybatis im;

    @Before
    public void befor() throws IOException {
        // 1.读取SQLMapper.xml文件资源内容
        stream = Resources.getResourceAsStream("mybatis-config.xml");
        // 2.创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        // 3.创建SQLSessionFactory
        SqlSessionFactory sessionFactory = builder.build(stream);
        // 4.创建接口实现类
        im = new MybatisImpl(sessionFactory);
    }
    @Test//测试方法
    public void findAlltest() {
        List<Account> list = im.findAll();
        System.out.println(list);
    }
    
    @After//在测试方法执行完成之后执行
    public void destroy() throws Exception{
        //6.释放资源
        stream.close();
}
}

 

运行结果(正常):

 

posted @ 2020-03-05 09:24  寒江夜钓人  阅读(99)  评论(0)    收藏  举报