hibernate(入门)

1. 什么是hibernate
   ORM框架/持久层框架
   object reference mapping
   通过管理对象来改变数据库中的数据
   通过管理对象来操作数据库
 

   优势跨数据库的无缝移植

   注1:Object Relational Mapping


2. 如何在项目中添加hibernate支持(手动添加)
  2.1 添加hibernate相关依赖
  2.2 在resource目录下添加hibernate.cfg.xml(核心配置文件)
    2.2.1 添加DTD支持
    2.2.2 添加Hibernate的配置
      2.2.2.1 数据库相关(connection.username|connection.password|connection.url|connection.driver_class|dialect)
      2.2.2.2 调试相关(show_sql|format_sql)
  2.3 在开发阶段再创建实体类和实体映射文件(*.hbm.xml)
      实体必须实现Serializable接口

 <!--
         table:实体类所对应的表
         name:实体类的全类名
     -->
        <class table="t_hibernate_user" name="com.zking.one.entity.User">
        <!-- 
            name:实体类的属性
            type:实体类的属性类型
            column:数据库表的主键列
         -->
            <id name="id" type="java.lang.Integer" column="id">
                <generator class="increment"></generator>
            </id>
            <!-- 
                id标签打头,代表配置的是数据库表主键与实体类的关系,其他的property配置的是数据库表的普通列
             -->
            <property name="userName" type="java.lang.String" column="user_name"></property>
            <property name="userPwd" type="java.lang.String" column="user_pwd"></property>
            <property name="realName" type="java.lang.String" column="real_name"></property>
            <property name="sex" type="java.lang.String" column="sex"></property>
        </class>

  小结:hibernate.cfg.xml(1)/*.hbm.xml(N)
        实体映射文件一定要加到核心配置文件

<!-- hiberna需要管理的数据库表对应的实体类映射 -->
  <mapping resource="com/zking/one/entity/User.hbm.xml"/>


3. 如何使用hibernate完成CRUD操作
   CRUD操作步骤
    1 读取配置
    2 创建SessionFactory
    3 打开Session
    4 开启事务

   5.具体的数据库操作
    6 提交事务/回滚事务
   7 关闭Session

Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
        SessionFactory sessionFactory = cfg.buildSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction transaction = session.beginTransaction();
        
        User user = new User();
        user.setUserName("小小");
        user.setRealName("小空");
        user.setUserPwd("123");
        user.setSex("女");
        user.setRemark("cccc");
        session.save(user);
        
        transaction.commit();
        session.close();

扫描二维码关注公众号,回复: 3758013 查看本文章


 4注意事项
   1 hibernate默认使用的是手动事务,因此必须显示的开启和提交事务
     2 删除操作时,必须先查再删

5. OID属性
   与数据库主键列映射的属性   

Hibernate3.3.2版本中getSession().connection()已被弃用,hibernate4中官方推荐使用Session doWork()方法进行jdbc操作

Unsupported major.minor version 52.0:当前的hibernate不支持jdk1.8

猜你喜欢

转载自blog.csdn.net/qq_41683274/article/details/83246699