MyBatis框架小结

简介

  • MyBatis SQL Mapper Framework for Java,言简意赅,MyBatis是一个位于持久化层,实现SQL映射的框架,类似的框架还有JDBC,Hibernate等。
  • 其本质就是对JDBC的封装,通过MyBatis对数据库实现CRUD(增删改查)。

ORM

  • MyBatis与ORM
    在这里插入图片描述

开发流程

  1. resources目录

    • 放在这个目录下的文件一般都是资源或配置文件。
    • 需要注意的是,放在resources目录下的资源等同于放到了根目录。
  2. 开发步骤

    • 第一步:打包方式设置为jar
    • 第二步:引入依赖
      • mybatis依赖
      • mysql驱动依赖
    • 第三步:编写mybatis核心配置文件:mybatis-config.xml
      注意:
      • 第一:这个文件不是必须叫mybatis-config.xml,可以叫其他名字,只是大家都默认用这个名字
      • 第二:这个文件的存放位置也不是固定的,可以随意,但是一般情况下都存放在resources
    • 第四步:编写Xxxxmapper.xml文件
      • 这个配置文件中编写SQL语句。
      • 和mybatis-config.xml一样,名字和路径都不是固定的,但是一般都放在resources
    • 第五步:在mybatis-config.xml中指定Xxxxmapper.xml的路径:
      • < mapper resource=“carMapper.xml”/>
      • 注意:resource属性会从类的根目录下查找资源。
    • 第六步:编写MyBatis程序。(使用mybatis的类库,编写mybatis程序,连接数据库,进行增删改查。)
      • 在MyBatis中,负责执行SQL语句的对象叫做SqlSession,是一个Java程序和数据库之间的一次会话。
      • 三个核心对象的依赖如下:
        • SqlSessionFactoryBuilder --> SqlSessionFactory --> SqlSession
        • 注意:一般情况下一个数据库对应一个SqlSessionFactory对象。
  3. 从XML中构建SqlSessionFactory

    • 第一:在mybatis中有一个SqlSessionFactory对象
    • 第二:SqlSessionFactory对象的创建需要XML
    • 第三:XML是配置文件
  4. mybatis中有两个主要的配置文件:

    • 第一个是:mybatis-config.xml,这个是核心配置文件,主要配置连接数据库的信息等。(一个)
    • 第二个是:XxxxMapper.xml,这个文件是专门用来编写SQL语句的配置文件。(一个表一个)
      • 例如:
        t_user表对应的就是UserMapper.xml
        t_student表对应的就是StudentMapper.xml
  5. 一些小细节

    • mybatis中sql语句结尾的’;'可以不加
    • Resources.getResourceAsStream
      • 小技巧:名中含有resource的大部分方法,其加载资源的路径都从类的根目录下开始加载。
    • InputStream is = new FileInputStream(d:\mybatis-config.xml)
      • 也可以,但是可移植性太差,程序不够健壮。
    • 由上面两条其实已经验证了,config文件的名称和路径不固定,使用默认的方式存放文件是为了提升程序的健壮性,使其在移植到其他平台后依旧可以正常运行。
  6. 关于myBatis的事务管理机制

    • 在mybatis-config.xml中,可以使用以下标签进行事务管理机制的配置:
    • type的属性值有两个可用选项:
      • JDBC
      • MANAGED
    • JDBC事务管理器:
      • mybatis框架自己管理事务(DAO层接管事务管理工作),自己采用原生的JDBC代码进行事务管理。
        • conn.setAutoCommit(false); 开启事务
        • …业务处理…
        • conn.commit();手动提交事务
      • 需要注意的是:
        • 在sqlSessionFactory.openSession()时,底层的代码执行了conn.setAutoCommit(false);
          在sqlSession.commit()时,底层代码执行了conn.commit();
    • MANAGED事务管理器:
      • mybatis不再管理事务(业务逻辑层接管事务管理工作),将事务管理交给其他容器负责。例如:spring。
    • JDBC中,默认情况下AutoCommit的值为TRUE。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值