• 第一讲 Hibernate 简介


     

    Hibernate框架:ORM(对象关系映射)—— 完成数据库的相关操作。

    概念:

    持久化:将内存中的对象,自动映射到数据库。

    完成持久化技术:

    主动域模式:

    代表作:EJB3.X(官方的持久化)

    ORM(对象关系模型):

    代表作:Hibernate、IBaits、JPA(sun官方)

    JDO模型:

    CMP模型:

    代表作:EJB3.X(官方的持久化)

    Hibernate API简介

    Configuration —— 用来加载配置文件,返回SessionFactory。

    SessionFactory —— 用来初始化Hibernate(读取hibernate.cfg.xml配置文件),返回session对象。(类似:DBUtil)

    Session —— 用来持久化数据的。(完成数据的相关操作CRUD)

    Transaction —— 用来管理事务。(Hibernate要求增、删、改必须使用事务操作)

    事务自动提交:hibernate.cfg.xml文件中配置:connection.autocommit = true;

    Query —— 用来完成查询操作。(注意:Query中只能使用Hibernate中特有的查询语句——HQL)

    常用方法:

    save(Object obj) —— 用来保存对象。(内存中的对象,持久化到数据库;添加)

    update(Object obj) —— 用来修改对象。(必须先将数据库中的对象,映射到内存中,才能执行修改; 必须先查询对象,再修改)

    delete(Object obj) —— 用来删除对象。(必须先将数据库中的对象,映射到内存中,才能执行删除; 必须先查询对象,再删除)

    get(Class,主键)—— 用来查询数据。

    marge(Object obj ) —— 强制关联持久层对象与数据库。

     

    手动完成Hibernate的相关操作:

    1. 创建Configuration实例。

    2. 创建SessionFactory实例。

    3. 创建Session实例。

    4. 设置Session中事务。

    5. 操作数据。

    6. 提交或回滚事务。

    7. 关闭Session。

    demo:

     

    package com.sec.util;
    
    import java.io.Serializable;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateSessionFactory {
    
        private static Configuration cfg=null;
        
        static{
            cfg=new Configuration().configure();
        }
        
        public static SessionFactory getSessionFactory(){
            return cfg.buildSessionFactory();
        }
        
        public static void save(Object obj){
            Session session=getSessionFactory().openSession();
            Transaction tran=session.getTransaction();
            tran.begin();
            session.save(obj);
            tran.commit();
            session.close();
        }
        public static Object qeury(Object obj,Serializable where){
            Session session=getSessionFactory().openSession();
            obj=session.get(obj.getClass(), where);
            session.close();
            return obj;
        }
    }

     

    public static void main(String[] args) {
      TypeInfo t=new TypeInfo();
      t=(TypeInfo)HibernateSessionFactory.qeury(t, 3);
      CsdnInfo model=new CsdnInfo(t, "我是Hibernate", "...", 2, 0,new Timestamp(System.currentTimeMillis()),"备注");
      HibernateSessionFactory.save(model);
    }
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>
    
    <session-factory>
        <property name="dialect">
            org.hibernate.dialect.SQLServerDialect
        </property>
        <property name="connection.url">
            jdbc:sqlserver://localhost:1433;databaseName=dataDB
        </property>
        <property name="connection.username">sa</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">
            com.microsoft.sqlserver.jdbc.SQLServerDriver
        </property>
        <property name="myeclipse.connection.profile">ljConn</property>
        <property name="connection.autocommit">true</property><!--设置事务自动提交-->
        <mapping resource="com/sec/model/TypeInfo.hbm.xml" />
        <mapping resource="com/sec/model/CsdnInfo.hbm.xml" />
    
    </session-factory>
    
    </hibernate-configuration>
  • 相关阅读:
    R语言高级编程系列之面向对象的类型系统--S3对象
    数据挖掘之KNN算法(C#实现)
    数据挖掘之决策树ID3算法(C#实现)
    C#矩阵运算类库
    2020年图机器学习的最新趋势
    ios开发笔记-7-bug解决
    ios开发笔记-6-ReactiveCocoa
    ios开发笔记-5-配置文件
    ios开发笔记-4-app打包测试流程
    ios开发笔记-3-微信支付
  • 原文地址:https://www.cnblogs.com/lljj/p/Hibernate01.html
Copyright © 2020-2023  润新知