Mybatis---学习过程---基础回顾Dao层开放方式回顾

Mybatis—学习过程—基础回顾Dao层开发方式回顾

1.传统开发模式

  1. 编写UserDao接口
    public interface UserDao {
    	List<User> findAll() throws IOException;
    }
    
  2. 编写UserDaoImpl实现类
    public class UserDaoImpl implements UserDao {
    	public List<User> findAll() throws IOException {
    		InputStream resourceAsStream =Resources.getResourceAsStream("SqlMapConfig.xml");
    		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
    		SqlSession sqlSession = sqlSessionFactory.openSession();
    		List<User> userList = sqlSession.selectList("userMapper.findAll");
    		sqlSession.close();
    		return userList;
    	 }
    }
    
  3. 编写测试类
    @Test
    public void testTraditionDao() throws IOException {
    	UserDao userDao = new UserDaoImpl();
    	List<User> all = userDao.findAll();
    	System.out.println(all);
    }
    

2.代理开发模式主流

  1. 代理开发模式在持久层只需要写持久层接口即可,不需要手动编写实现类了

  2. 不需要手动编写实现类了怎么去执行的sql实现效果的?其实在执行过程中会对持久层接口使用JDK动态代理,残生一个代理对象,由代理对象实现实现类中的操作

  3. 持久层接口需要遵循的规范
    在这里插入图片描述
    编写持久层接口
    在这里插入图片描述
    编写UserDao接口

    public interface UserDao {
        List<User> findAll() throws IOException;
    }
    

    编写UserDao接口对应的xml文件

    <mapper namespace="com.lagou.Dao.UserDao">
    <!--    namespace:名称空间:与id组成SQL的唯一表示
            resultType:返回值类型
    -->
        <select id="findAll" resultType="com.lagou.pojo.User">
            select * from user
        </select>
    </mapper>
    

    测试代码

    @Test
    public void test6() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        /**
         * sqlSession.getMapper(Class<T> var1):先获取到接口的代理对象
         */
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        List<User> all = mapper.findAll();
        for (User user : all) {
            System.out.println(user);
        }
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值