优点

使用JDBC完成DAO层存在以下问题

  • 每次操作都需要手动的创建连接,最后关闭连接

    对于重复代码通常开发者都会进行封装,但是由于每个人的编码风格不同导致封装的代码也没有固定的套路

    MyBatis将数据库连接相关的参数放到配置XML中并封装了创建连接的代码
  • 频繁的创建和销毁连接

    由于数据库连接使用的是TCP长连接,并发量大的系统中,这样的方式会导致数据库连接资源耗尽

    MyBatis本身实现了连接池,可以解决这一问题,当然后续会更换其他更好的连接池
  • 接受参数拼接SQL语句并执行

    每一条SQL语句都是直接写在代码中(硬编码),如果后期需求发生变化,则需要修改源码中的SQL,然后重新编译,测试.....

    MyBatis将SQL语句从代码中剥离到Mapper.xml映射文件中
  • 解析结果

    JDBC返回的是ResultSet,必须手动将其映射到一个个的对象中,同样是重复度很高的代码;并且存在硬编码问题

    MyBatis实现了入参映射到SQL参数,以及结果集映射到POJO对象

3|1更多功能

原文地址:https://www.cnblogs.com/huaobin/p/14162686.html