mybatis传统DAO方式的执行分析

传统DAO方式的执行分析

  1. 首先看测试类中的代码,我们发现由studentDAO对象调用的insertStudnet()方法就是由StudnetDao.xml中的对应insert标签中id+""中所写的类名.

    <insert id="insertStudent">
        insert into student value (#{id},#{name},#{email},#{age})
    </insert>
    
  2. 我们可以发现,前面两个测试类的代码有很多重复的地方(为了观察方便我们把上面的代码粘过来进行分析):

    public class StundentDaoImpl implements StudentDao {
        @Override
        public List<Student> selectStudents() {
            //获取sqlsession对象
            SqlSession sqlSession = MyBatisUtils.getSqlSession();
            String sqlId = "com.bipt.dao.StudentDao.selectStudents";
            //执行sql语句
            List<Student> students = sqlSession.selectList(sqlId);
            //关闭sqlSession对象
            sqlSession.close();
            return students;
        }
        @Override
        public int insertStudent(Student student) {
            SqlSession sqlSession = MyBatisUtils.getSqlSession();
            String sqlId = "com.bipt.dao.StudentDao.insertStudent";
            int unm = sqlSession.insert(sqlId,student);
            sqlSession.commit();
            sqlSession.close();
            return unm;
        }
    }
    
    1. 调用工具类获取sqlSession对象的步骤是重复的.

    2. sqlSession对象的关闭是重复的.

    3. selectStudnet方法中sqlSession对象调用的是sqlSession的selectList(String)方法

      insertStudent方法中sqlSession对象调用的是sqlSession的insert(Sting,Object)方法

    4. sqlId的唯一标识字符串中只有com.bipt.dao.StudentDao.( ) -->括号中的内容是发生改变的

    由此我们可以发现,在方法的实现内部中,有很多的代码都是重复的,或者是有规律可循的,如果我们抓住这个规律为我们所有,那我们能够让mybatis的操作更简单一点呢?不用再写这么多重复的代码呢?

    答案是可以的~~~
    请看下一节: 传统DAO方式的执行分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值