`

hibernate学习笔记第1讲—使用hibernate步骤

阅读更多

 

第一个hibernate项目,

Hibernate中文冬眠,我们将对象保存到数据库的这个行为比喻成对象的冬眠。

Hibernate优点:提高生产力(不用开发枯燥的jdbc),开发更对象化,移植性(自动生成针对不同厂家的sql---方言),支持透明持久化(轻量级),没有侵入性。

Hibernate 弱点,不适用的情况:1,批量操作;2,需要使用数据库的特定优化机制,因为sql是由hibernate控制生成的,个人无法控制。

Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,hibernate可能不是最好的解决方案。

正确开发步骤:

先建立对象模型(领域模型)

建立映射关系

根据映射关系导出相应的表。

现实中先考虑数据库。(观念慢慢改变)

使用hibernate步骤:

1、新建java项目

 

2、创建User Library,加入如下jar

         * HIBERNATE_HOME/hibernate3.jar

         * HIBERNATE_HOME/lib/*.jar

         * MySql jdbc驱动

        

3、创建hibernate配置文件hibernate.cfg.xml,为了便于调试最好加入log4j配置文件

<hibernate-configuration>

     <session-factory>

              <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_first</property>

              <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

              <property name="hibernate.connection.username">root</property>

              <property name="hibernate.connection.password">bjsxt</property>

              <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

              <property name="hibernate.show_sql">true</property>

              //文件名可以随意取,习惯User.hbm.xml格式

              <mapping resource="com/bjsxt/hibernate/User.hbm.xml"/>

     </session-factory>

</hibernate-configuration>

4、定义实体类

package com.bjsxt.hibernate;

import java.util.Date;

public class User {

         private String id;

         private String name;

         private String password;

         private Date createTime;

         private Date expireTime;

         public String getId() {

                   return id;

         }

         public void setId(String id) {

                   this.id = id;

         }

         public String getName() {

                   return name;

         }

         public void setName(String name) {

                   this.name = name;

         }

         public String getPassword() {

                   return password;

         }

         public void setPassword(String password) {

                   this.password = password;

         }

         public Date getCreateTime() {

                   return createTime;

         }

         public void setCreateTime(Date createTime) {

                   this.createTime = createTime;

         }

         public Date getExpireTime() {

                   return expireTime;

         }

         public void setExpireTime(Date expireTime) {

                   this.expireTime = expireTime;

         }

}

5、定义User类的映射文件User.hbm.xml

<hibernate-mapping>

     <class name="com.bjsxt.hibernate.User">

              <id name="id">

//uuid 据说10000不会重复

                       <generator class="uuid"/>

              </id>

              <property name="name"/>

              <property name="password"/>

              <property name="createTime"/>

              <property name="expireTime"/>

     </class>

</hibernate-mapping>

6、将User.hbml.xml文件加入到hibernate.cfg.xml文件中

<mapping resource="com/bjsxt/hibernate/User.hbm.xml"/>

7、编写hbm2ddl工具类,将实体类生成数据库表

public class ExportDB {

     public static void main(String[] args) {

              //hibernate支持两种配置文件     .properties.xml

//读取.properties文件,不经常使用

              Configuration cfg = new Configuration();

 

              //读取hibernate.cfg.xml文件,一般使用这种

              Configuration cfg = new Configuration().configure();

//工具类,生成ddl,将对象转化成表                 

SchemaExport export = new SchemaExport(cfg);

              export.create(true, true);

     }

}

8、开发客户端

//读取hibernate.cfg.xml文件

                   Configuration cfg = new Configuration().configure();

                   //创建SessionFactory,每个数据库对应一个,跟二级缓存相关

//重量级对象,创建比较耗时,线程安全的,可以只创建一次

                   SessionFactory factory = cfg.buildSessionFactory();

                   Session session = null;

                   try {

//session是用到的时候去连接池中拿,对实体对象生命周期管理,缓存相关,

//非线程安全的,用完之后必须关闭

                            session = factory.openSession();

                            //开启事务

                            session.beginTransaction();

                            User user = new User();

                            user.setName("张三");

                            user.setPassword("123");

                            user.setCreateTime(new Date());

                            user.setExpireTime(new Date());

                            //保存数据

                            session.save(user);

                            //提交事务

                            session.getTransaction().commit();

                   }catch(Exception e) {

                            e.printStackTrace();

                            //回滚事务

                            session.getTransaction().rollback();

                   }finally {

                            if (session != null) {

                                     if (session.isOpen()) {

                                               //关闭session

                                               session.close();

                                     }

                            }

                   }

        

为了方便跟踪sql执行,在hibernate.cfg.xml文件中加入<property name="hibernate.show_sql">true</property>

 

分享到:
评论

相关推荐

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    hibernate学习笔记第二天的源码

    在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...

    Java相关课程系列笔记之十四Hibernate学习笔记

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...

    Hibernate学习笔记第一次课

    【Hibernate学习笔记第一次课】 在本课程中,我们将深入探讨Hibernate框架的基础知识,这是一个流行的Java对象关系映射(ORM)工具,它简化了数据库与Java应用程序之间的交互。我们的重点是Hibernate 3.1版本,虽然...

    马士兵hibernate学习笔记(原版)

    《马士兵Hibernate学习笔记》是一份深入浅出的教程,旨在帮助初学者掌握Hibernate这一流行的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式来操作数据库,从而减少了传统...

    hibernate学习笔记.

    【hibernate学习笔记】 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是对Hibernate的学习要点的详细解释: 1. **建立第一个Hibernate版本的HelloWorld** - **...

    马士兵hibernate学习笔记

    ### 马士兵Hibernate学习笔记知识点总结 #### 一、HelloWorld示例 - **目的**:通过简单的示例理解Hibernate的基本使用流程。 - **步骤**: - 创建Java项目`hibernate_0100_HelloWorld`。 - 建立库依赖,包括...

    达内HIBERNATE学习笔记

    根据提供的信息,我们可以总结出以下关于达内HIBERNATE学习笔记的重要知识点: ### 第一章:Hibernate入门 #### 1.1 学习目标 - 理解Hibernate的基本概念。 - 掌握如何使用Hibernate进行开发。 #### 1.2 对象持久...

    Hibernate学习笔记(1)

    - **第一步**:创建`HibernateSessionFactory`类和`hibernate.cfg.xml`配置文件。`HibernateSessionFactory`是Hibernate的核心,负责管理数据库会话,而`hibernate.cfg.xml`文件用于配置数据库连接信息。 - **第...

    hibernate学习笔记01

    ### Hibernate学习笔记01 #### 一、Hibernate简介与安装 **Hibernate** 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,它能够有效地简化Java应用程序与数据库之间的交互,提供了一种更为优雅...

    hibernate入门学习笔记+源码

    **hibernate入门学习笔记+源码** **一、Hibernate简介** Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过提供对象化的数据访问方式,Hibernate消除了传统JDBC代码中的...

    hibernate学习笔记

    【hibernate学习笔记】 在Java开发中,Hibernate是一个非常重要的框架,它是一个开源的Object/Relational Mapping(O/R映射)框架。这个框架的主要目的是简化数据库操作,通过将Java对象与数据库表进行映射,让...

    Hibernate学习笔记

    【Hibernate学习笔记】 在当前的IT领域,尤其是Java开发中,Hibernate是一个不可或缺的框架,它极大地简化了对象与关系数据库之间的交互。这篇笔记主要涵盖了如何开始使用Hibernate进行数据持久化操作,适合所有...

    Hibernate 的学习笔记

    ### Hibernate 学习笔记知识点详解 #### 一、Hibernate 简介 - **概念**:Hibernate 是一种“对象/关系映射”(Object/Relational Mapping,简称 ORM)技术,用于解决 Java 应用程序与关系型数据库交互的问题。 - *...

    Hibernate的学习笔记.docHibernate的学习笔记.doc

    以上是Hibernate学习笔记的概览,接下来会详细讲解映射文件的各个部分,包括如何配置实体类的属性、主键生成策略、以及如何通过实例来实现数据库的操作。通过深入学习,开发者可以更高效地管理和操作数据库,同时...

Global site tag (gtag.js) - Google Analytics