MyBatis 是一个sql映射框架,在2002 年创建, 是java持久层框架


【面试】hibernate和mybatis区别

  • Hibernate,java面向对象盛行时期,将整个开发设计过程全部面向对象开发,全ORM。
    iBatis,维持原有的编程方式,前面部分按面向对象思考和设计,持久层时使用sql语句,面向过程。

    • 1)底层仍然使用sql,将hql语句转为sql。Sql无法优化

    • 2)Hibernate通过反射,性能很低

    • 3)Ibatis就是基于jdbc轻量级封装,还是使用sql。性能比较高。半ORM

  • 我们把除index.jsp外其他的jsp文件放在WEB-INF下,把css,javascript,图片放在了webRoot(WebContent)目录下


xml映射配置文件

  • 每个数据库对应一个 SqlSessionFactory

  • 为了明确创建哪种环境,你可以将它作为可选的参数传递给 SqlSessionFactoryBuilder。
    可以接受环境配置的两个方法签名是:
    SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment);

      SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,
      environment,properties);
      
    
  • 环境元素定义了如何配置环境。

    <environments default="development">
    <environment id="development">
    <transactionManager type="JDBC">
    <property name="..." value="..."/>
    </transactionManager>
    <dataSource type="POOLED">
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
    </dataSource>
    </environment>
    </environments>

  • 注意这里的关键部分:

    •  默认的环境 ID(比如: default=”development”)。

    •  每个 environment 元素定义的环境 ID(比如: id=”development”)。

    •  事务管理器的配置(比如: type=”JDBC”)。

    •  数据源的配置(比如: type=”POOLED”)。


告诉 MyBatis 到哪里去找映射文件。你可以使用相对于类路径的资源引用,或者字符表示,或 url 引用的完全限定名(包括 file:///URLs)。例如:

// 使用相对于类路径的资源
<mappers>
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<mapper resource="org/mybatis/builder/BlogMapper.xml"/>
<mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
// 使用完全限定路径
<mappers>
<mapper url="file:///var/sqlmaps/AuthorMapper.xml"/>
<mapper url="file:///var/sqlmaps/BlogMapper.xml"/>
<mapper url="file:///var/sqlmaps/PostMapper.xml"/>
</mappers>


SportCloud
157 声望9 粉丝

数据仓库


下一篇 »
Servlet续篇