Mybatis与Hibernate区别

相同点

  1. Hibernate与MyBatis都是通过SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session,由Session来开启执行事务和SQL(Structured Query Language,结构化查询语言)语句。
  2. Hibernate和MyBatis都支持JDBC(Java DataBase Connectivity,java数据库连接)和JTA(Java Transaction API,Java事务API(Application Programming Interface,应用程序编程接口))事务处理。
  3. 基于ORM(Object Relational Mapping, 对象关系映射)思想解决了entity和数据库的映射问题

不同点

hibernate:是一个标准的ORM框架(对象关系映射)。入门门槛较高,不需要写sql,sql语句自动生成,对sql语句进行优化、修改比较困难。

应用场景:适用需求变化不多的中小型项目,比如:后台管理系统,erp,orm,oa等

mybatis:专注sql本身,需要程序员自己编写sql语句,sql修改、优化比较方便。mybatis是一个不完全的ORM框架,虽然程序员自己写sql,mybatis也可以实现映射(输入映射,输出映射)

应用场景:适用需求变化较多的项目,比如:互联网项目。


编写hibernate.cfg.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
       <!-- property 元素用于配置Hibernate中的属性 键:值-->
       <!-- hibernate.connection.driver_class : 连接数据库的驱动  -->
       <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

       <!-- hibernate.connection.username : 连接数据库的用户名 -->
       <property name="hibernate.connection.username">root</property>
       <!-- hibernate.connection.password : 连接数据库的密码 -->
       <property name="hibernate.connection.password">123</property>
       <!-- hibernate.connection.url : 连接数据库的地址,路径 -->
       <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernatedemo</property>

        <!--配置JDBC内置连接池-->
        <property name="connection.pool_size">1</property>

        <!-- show_sql: 操作数据库时,会 向控制台打印sql语句 -->
        <property name="show_sql">true</property>

        <!-- format_sql: 打印sql语句前,会将sql语句先格式化  -->
        <property name="format_sql">true</property>

        <property name="hbm2ddl.auto">update</property>

        <!-- 数据库方言配置 org.hibernate.dialect.MySQLDialect (选择最短的)-->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>


        <!-- hibernate.connection.autocommit: 事务自动提交  -->
        <property name="hibernate.connection.autocommit">true</property>

        <!-- 将Session与线程绑定=> 只有配置了该配置,才能使用getCurrentSession -->
        <property name="hibernate.current_session_context_class">thread</property>

        <!-- 引入ORM 映射文件 填写src之后的路径-->
        <mapping resource="com/itheima/a_hello/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值