Hibernate初识

小配置里的代码:

<?xml version=‘1.0‘  encoding=‘utf-8‘?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.happy.entity">
    <class name="Dog" table="Dog" >
        <id name="dogid" column="dogid">
            <generator class="native"></generator>//id主键  自增
        </id>
        <property name="dogname" column="dogname"></property>
        <property name="dogage" column="dogage" ></property>
    </class>

</hibernate-mapping>

  实体类:

/**
 * Created by lgy on 2017/9/18.
 */
public class Dog {
    private String dogname;
    private Integer dogage;
    private Integer dogid;

    public String getDogname() {
        return dogname;
    }

    public void setDogname(String dogname) {
        this.dogname = dogname;
    }

    public Integer getDogage() {
        return dogage;
    }

    public void setDogage(Integer dogage) {
        this.dogage = dogage;
    }

    public Integer getDogid() {
        return dogid;
    }

    public void setDogid(Integer dogid) {
        this.dogid = dogid;
    }
}

  util:

public class HibernateUntil {
    private static Configuration cfg=new Configuration().configure();
    private static SessionFactory factory=cfg.buildSessionFactory();

    //1.方法返回session  静态成员变量不能直接使用非静态成员
    //Session依赖于Session工厂,工厂依赖于Configure
    public static Session getSession(){
        return factory.openSession();

    }
    //2.关闭session
    public static void closeSession(){
        getSession().close();

  大配置:

<?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 name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <!--数据库url-->
        <property name="connection.url" >jdbc:oracle:thin:@localhost:1521:orcl</property>
        <!--数据库username-->
        <property name="connection.username" >test</property>
        <!--数据库password-->
        <property name="connection.password" >test</property>
        <!--hibernate方言--><!--和Spring整合时name属性前S必须加hibernate,单独用hibernate框架时,name属性可以直接用dialect-->
        <property name="hibernate.dialect" >org.hibernate.dialect.Oracle10gDialect</property>
        <!--输出所有语句到控制台-->
        <property name="hirbernate.show_sql" >true</property>
        <!--在log和console中打印出更新   格式化显示sql-->
        <property name="hibernate.format_sql" >true</property>
        <!--hbm2ddl就是**.hbm.xml,生成特定数据库的sql   从程序中自动建表 updata表示如果底层存在表,name更新表结构 -->
        <property name="hibernate.hbm2ddl.auto" >update</property>
        <!--指定当前session范围和上下文  thread至当前线程用来跟踪管理-->
        <property name="current_session_context_class" >thread</property>
        <mapping resource="cn/happy/entity/Dog.hbm.xml" ></mapping>
    </session-factory>
</hibernate-configuration>

  Test测试类:

@Test
    public void testhibernate() {
        //configuration
        Configuration cfg=new Configuration().configure();
        SessionFactory factory=cfg.buildSessionFactory();
        Session session=factory.openSession();
        Transaction tx=session.beginTransaction();
        Dog dog=new Dog();
        dog.setDogname("小白");
        session.save(dog);
        tx.commit();
        System.out.println("add ok!");
        session.close();
    }

  

//用get方法查询数据库@Testprivate void findStudent() {    //02Hibernate 保存    //读取大配置文件,获取连接的数据库信息    Configuration cfg=new Configuration().configure();    //3创建SessionFactory    SessionFactory factory=cfg.buildSessionFactory();    //加工session    Session session=factory.openSession();    //开启事务    Transaction tx=session.beginTransaction();    //5Hibernate    //根据session的方法做数据操作  检索    Student student=session.get(Student.class,2);    System.out.println(student.getName());    //提交事务    tx.commit();    //关闭session    session.close();    System.out.println("success  ok");}
//用load方法查询
    @Test
    public void update2(){
        Configuration cfg=new Configuration().configure();
        SessionFactory factory=cfg.buildSessionFactory();
        Session session=factory.openSession();
        Transaction tx=session.beginTransaction();
        Dog dog=session.load(Dog.class,1);
        System.out.println("load-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
        System.out.println(dog.getDogname());
    }

  load方法:

  

无论get方法查询,还是load方法,都要开启事务,也不要手动提交!!!

时间: 2024-08-25 13:13:56

Hibernate初识的相关文章

蜗牛—Hibernate之初识配置

下载Hibernate的jar包 把以下jar文件考到项目lib下 然后在myeclipse中打开database的view视图创建一个新的数据库连接 接下来,配置连接,需要导入ORACLE的jar包 我创建的连接名为wjj 然后在项目中加入Hibernate的配置信息,可以用刚才创建的数据库连接用myeclipse生成 首先,点击项目右键 接下来,需要把那些划红线的东西勾掉 next next,,DB Driver用刚才创建的数据库连接即可 最后,勾掉此选项 最后在项目的src项目里产生此文件

[Hibernate Search] 初识Hibernate Search

初识Hibernate Search 要让你的应用具备Hibernate Search赋予的全文搜索的能力,需要做以下三件事: 给项目添加必要的依赖和配置信息 给你的实体类添加必要的信息,从而让Lucene知道如何对它们进行索引(Indexing) 在需要的地方使用符合Hibernate Search规范的查询来完成业务逻辑 对于需要添加的依赖信息,会在以后进行介绍.我们首先来看看代码该如何写. 我们会使用一个类似于经典的"Java Pet Store"那样的Web应用来展示Hiber

Hibernate之API初识及增删改查实现

声明:关于hibernate的学习.非常大一部分东西都是概念性的. 大家最好手里都有一份学习资料,在我的博文中.我不会把书本上的概念一类的东西搬过来.那没有不论什么意义.关于hibernate的学习,我主要是通过演示项目让大家加深一些概念的理解,同一时候,也是为了让大家深层次的理解hibernate.而不仅仅是单纯的停留在概念上,假设仅仅是单纯的理解一些概念性的东西.到最后你们肯定会一无所获.并且过段时间就会忘记.所以以后的hibernate的学习.希望大家多看下演示项目.下载下来部署上演示看看

初识hibernate

//针对myEclipse2014版本 怎样新建一个工程实现这些东西的导入. 打开myeclipse. 2.点击右上角的open perspective 找到这个 MyEclipse Database Explorer.点击ok. 3.右键新建数据库驱动器 4.新建这样一个用以链接的数据库: 5.然后完成第三部的那个创建目录: 6. 选择要展示的视图, 1)展示所有视图 2)展示默认视图 3)展示选中视图 3)a.当前这个 链接里面可以对应到的数据库 b.下图为对应 c.选择我们新建立的数据库:

初识Hibernate框架

Hibernate是一种ORM框架 常用于数据库的访问层 Hibernate的核心组件:Configuration类,SessionFactory接口,Session接口,Query接口,Transaction接口: 1)Configuration类:用来读取Hibernate配置文件,并生成SessionFactory对象. 2)SessionFactory接口:产生Session实例工厂. 3)Session接口:Hibernate的核心接口,通过get(),load(),save(),up

Hibernate框架 初识 ORM概念 搭建Hibernate环境 Hibernate Api

ORM概念 在学习 Hibernate 之前,我们先来了解ORM   对象关系映射 O, Object  对象 R,Realtion 关系  (关系型数据库: MySQL, Oracle…) M,Mapping  映射 ORM, 解决什么问题? 存储:   能否把对象的数据直接保存到数据库? 获取:   能否直接从数据库拿到一个对象? 想做到上面2点,必须要有映射!   总结:          Hibernate与ORM的关系?             Hibernate是ORM的实现,简化对

Hibernate基础学习(一)&mdash;初识Hibernate

一.对象的持久化 狭义的理解: 持久化仅仅指把对象永久的保存到数据库中. 广义的理解: 持久化包括和数据库相关的各种操作.         保存: 把对象永久保存到数据库中.         更新: 更新数据库中对象的状态.         删除: 从数据库中删除一个对象.         查询: 根据特定的查询条件,把符合查询条件的一个或者多个对象加载到内存中.   二.ORM      ORM(Object-Relation-Mapping),对象关系映射.      ORM的思想: 将关系

Hibernate学习:初识hibernate

一:S2SH框架流程图 hibernate的作用就是在Dao层将model的数据持久化到DB数据库. 这幅图上没有标记spring, 其实spring贯穿整个过程: spring面向接口编程: spring将service注入到Action, spring将dao注入到service spring针对servic进行声明式的事务管理. 二:单独看hibernate hibernate的工作原理: step1:创建Configuration:进行配置文件的装载操作,提取所有配置文件进行解析. st

初识Hibernate 缓存

生活就像一杯咖啡,让你我慢慢的品尝,品尝它的苦涩和甘甜...... 一.什么是Hibernate缓存. 解析:白话来说就是缓存数据的容器 官方标准点缓存:是计算机领域的概念,它介于应用程序和永久性数据存储源之间. 作用:降低应用程序直接读写数据库的频率,从而提高程序的运行性能.缓存中的数据是数据存储源中数据的拷贝.缓存的物理介质通常是内存. 二.缓存一般分为三个类 一级缓存 二级缓存 查看缓存 三.一级缓存 场景一:使用同一个session连续查询两次同一个对象 /查询学生信息 public s