MyBatis基于传统dao的开发(不是很重要)

MyBatis开发Dao有两种方式 传统dao开发的形式 使用接口代理开发的方式
下面稍微介绍一下传统dao的开发方式
所以这里我们不仅给出了dao接口 并且给出了其实现类 所以我们创建了一个userdaoimpl实现类 去实现iuserdao接口
这里仅仅示范其中的一个方法 不做详细的解释
public class UserDaoImpl implements IUserDao{
private SqlSessionFactory sqlSessionFactory;

public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
    this.sqlSessionFactory = sqlSessionFactory;
}
//我们仅仅实现了这个方法 鸡查询所有的方法
public List<User> findAll() {
    SqlSession session = sqlSessionFactory.openSession();
    List<User> users = session.selectList("com.itheima.dao.IUserDao.findAll");
    session.close();
    return users;
}

public void saveUser(User user) {

}

public void updateUser(User user) {

}

public void deleteUser(Integer id) {

}

public User findById(Integer id) {
    return null;
}

public List<User> findByName(String username) {
    return null;
}

public int findTotal() {
    return 0;
}

public List<User> findUserByVo(QueryVo vo) {
    return null;
}

public List<User> findUserByCondition(User user) {
    return null;
}

public List<User> findUserByIds(QueryVo vo) {
    return null;
}

}
映射配置类一样
最后书写测试类 这里也仅仅示范一个测试类 其余差不多
public class MyBatisTest2{
private InputStream in;
private SqlSessionFactory sqlSessionFactory;
private IUserDao userDao;

@Test
public void test() throws IOException {
    in = Resources.getResourceAsStream("SqlMapConfig.xml");//读取配置文件 返回一个输入流
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);//使用构建者设计模式去创建工厂
    userDao = new UserDaoImpl(sqlSessionFactory);//传入工厂去生产一个具体的dao对象
    List<User> users = userDao.findAll();//因为这里我们有直接的实现方式 所以根本不需要用代理者模式 所以直接使用对象调用相应的方法即可
    for(User user : users){//遍历结果 进行输出
        System.out.println(user);
    }
}

}
最后的测试结果:
User{userId=41, userName='老王', userSex='男', userBirthday=Tue Feb 27 17:47:08 CST 2018, userAddress='北京'}
User{userId=43, userName='小王', userSex='女', userBirthday=Sun Mar 04 11:34:34 CST 2018, userAddress='深圳'}
User{userId=45, userName='二王', userSex='男', userBirthday=Sun Mar 04 12:04:06 CST 2018, userAddress='南京'}
User{userId=46, userName='王二麻子', userSex='男', userBirthday=Wed Mar 07 17:37:26 CST 2018, userAddress='天津'}

原文地址:https://www.cnblogs.com/phantom576/p/11945756.html