美文网首页
Mybatis(一): 基本概念

Mybatis(一): 基本概念

作者: aix91 | 来源:发表于2019-02-18 21:50 被阅读0次

    1.什么是mybatis?

    • mybatis是一个基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
    • mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。

    2.核心类

    • SqlSessionFactoryBuilder
      包含了系统的核心设置:数据源,事务管理器。一旦使用该类创建了SqlSessionFactory, 就不再需要它了。因此它的实例的最佳作用域是局部方法变量。

    • SqlSessionFactory
      SqlSessionFactory 一旦被创建就在应用内一直存在,没有任何理由对他进行清楚或重建。因此SqlSessionFactory的最佳作用域是应用作用域。可以使用单例的模式实现。

    • SqlSession
      SqlSession包含了面向数据库执行SQL命令所需的所有方法。每个线程都应该有自己的SqlSession. 它不是线程安全的,因此不能被共享,所以它的最佳作用域是方法或请求作用域。例如:每次收到一个请求,就新建一个SqlSession,请求结束的时候关闭SqlSession.

    SqlSession session = sqlSessionFactory.openSession();
    try {
      // do work
    } finally {
      session.close();
    }
    
    • Mapper
      映射器是一个用来绑定映射语句的接口。映射接口的实例是从SqlSession中获取的,因此作用域和SqlSession相同(方法内)
    SqlSession session = sqlSessionFactory.openSession();
    try {
      BlogMapper mapper = session.getMapper(BlogMapper.class);
      // do work
    } finally {
      session.close();
    }
    

    SqlSession 通过Mapper的命名空间,找到对应的Mapper,然后调用Mapper中相关的方法,来执行sql语句。

    相关文章

      网友评论

          本文标题:Mybatis(一): 基本概念

          本文链接:https://www.haomeiwen.com/subject/jivqjqtx.html