代码改变世界

3、关于利用SqlSessionFactoryBuilder去构建SqlSessionFactory,以及Mybatis的dao的实现

2015-10-25 13:26  怡红院丿无痕  阅读(390)  评论(0编辑  收藏  举报

1、关于利用SqlSessionFactoryBuilder去构建SqlSessionFactory

// mybatis配置文件
        String resource = "SqlMapConfig.xml";
        // 得到配置文件流
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 创建会话工厂,传入mybatis的配置文件信息
        sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);

2、关于SqlSessionFactory的使用

Public interface UserDao {
    public User getUserById(int id) throws Exception;
    public void insertUser(User user) throws Exception;
}

Public class UserDaoImpl implements UserDao {
    
    //注入SqlSessionFactory
    public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
        this.setSqlSessionFactory(sqlSessionFactory);
    }
    
    private SqlSessionFactory sqlSessionFactory;
    @Override
    public User getUserById(int id) throws Exception {
        SqlSession session = sqlSessionFactory.openSession();
        User user = null;
        try {
            //通过sqlsession调用selectOne方法获取一条结果集
            //参数1:指定定义的statement的id,参数2:指定向statement中传递的参数
            user = session.selectOne("test.findUserById", 1);
            System.out.println(user);
                        
        } finally{
            session.close();
        }
        return user;
    }
    
    @Override
    Public void insertUser(User user) throws Exception {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try {
            sqlSession.insert("insertUser", user);
            sqlSession.commit();
        } finally{
            session.close();
        }
        
    }
}