一.为什么要使用框架,为什么选用MyBatis框架?

    1.使用框架能够提高开发效率,节省时间就是节约金钱,使用框架能够避免大量代码的重复,框架能帮我们完成很多事情如一些基础的通用工作,比如事务处理,安全性,数据流控制等都可以让框架来帮我们实现,而程序员只用专注系统的业务逻辑的设计,框架还可以协同开发

    2.MyBatis是支持定制化SQL,存储过程以及高级映射的优秀的持久层框架,MyBatis几乎避免了几乎所有的JDBC代码和手动设置参数,以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和java的pojo(普通对象,可以成模型对象)映射成数据库中的记录

    3.MyBatis的优点

    ① 与JDBC相比,减少了50%以上的代码量。

    ②MyBatis是最简单的持久化框架,小巧并且简单易学。

    ③MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。

    ④提供XML标签,支持编写动态SQL语句。

    ⑤提供映射标签,支持对象与数据库的ORM字段关系映射。

    4.MyBatis框架的缺点:

    1. SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。
    2. SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

    5.MyBatis框架适用场合:

    MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。

    对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。

    二.使用MyBatis实现数据的增删改查步骤

    1.导jar包(mysql的驱动包,和mybatis的核心包)
    image.png

    2.创建resources文件,书写mybatis-config.xml配置文件

    image.png

    image.png
    image.png

    3.抽取db.properties文件
    image.png

    4.书写xxx.Mapper.xml文件

    image.png

    5.抽取MyBatisUtil工具类

    1.普通方法

    1. public class MyBatisUtil {
    2. private static SqlSessionFactory factory;
    3. static {
    4. try {
    5. InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
    6. factory = new SqlSessionFactoryBuilder().build(inputStream);
    7. } catch (IOException e) {
    8. e.printStackTrace();
    9. }
    10. }
    11. public static SqlSession openSession(){
    12. return factory.openSession();
    13. }
    14. }

    2.枚举法

    1. public enum MyUtil {
    2. ME;
    3. private static SqlSessionFactory factory = null;
    4. static {
    5. try {
    6. InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
    7. factory = new SqlSessionFactoryBuilder().build(stream);
    8. } catch (IOException e) {
    9. e.printStackTrace();
    10. }
    11. }
    12. public SqlSession openSession(){
    13. return factory.openSession();
    14. }
    15. }

    6.创建dao层书写增删改查接口和实现类实现接口

    7.在实现类层实现

    步骤:①加载配置文件②创建工厂对象③通过工厂对象获取sqlSession对象④执行sql语句(若是查询操作,要返回结果集)⑤提交事务⑥释放资源

    image.png

    8.书写测试类进行测试

    image.png