`

第一个hibernate项目

阅读更多




什么是POJO?

POJO是最纯粹的Java对象,也就是说这个对象没有继承任何第三方框架的任何类和实现他的任何接口。



轻量级框架:没有侵入性,也就是说没侵入Hibernate任何东西。轻量级框架最显著的一个特点就是没有侵入性,没有侵入性好在那里,就是移植性就会比较好。





类似Hibernate框架适合在那些情况下使用:

★合适的情况

S征对某一个对象,简单的把它查询下来,然后再对它进行编辑,修改,而且编辑修改只是对单个对象,而不是说对所有的对象批量修改,批量的删除等等,在这样的情况下是适合的。

S对象之间有着很清晰的关系。如:User和Group,它们有很清晰的关系,多个用户属于一个组,一个组下有多个用户。如果从关系上来看,多个用户属于一个组,我们可以映射成多对一关系,叫Many to One这样一个关系;那么从组到用户来看,一个组下有多个用户,那么这是一对多的关系,One to Many,这是一个很正常的关系。但如果这种关系已经很错综复杂了,那么其实并不适合使用类似Hibernate这种框架,也就是O-R映射工具。

★不适合的情况:

批量的对数据时行修改的时候,在这种情况下Hibernat是不适合的,还有Apache OJB、JDO等框架都不适合,这是O-R构架的一个弱点。



所谓的映射就是:这个类要存到那个表里,这个类中的属性要存在那个字段上,是这样一个过程。







Hibernate所需要加的Jar包:

1.)hibernate核心Jar包-hibernate3.jar,位于hibernate-x.x下

2.)hibernate-x.x下的lib包里的所有Jar包

3.)相应的数据库驱动程序。



第一个hibernate项目



1、新建java项目



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

              * HIBERNATE_HOME/hibernate3.jar

              * HIBERNATE_HOME/lib/*.jar

              * MySql jdbc驱动


             

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

              例如:

<!DOCTYPE hibernate-configuration PUBLIC

              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

 

<hibernate-configuration>

              <session-factory>

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

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

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

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

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

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

                            

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

              </session-factory>

</hibernate-configuration>
 


4、定义实体类

              也就是持久类,POJO类,即要存入数据库的类

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

             

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC 

              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

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

                            <id name="id">

                                          <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工具类,将实体类生成数据库表

              这是一个工具类,专门把对象模型生成为关系模型,也就是说对象生成表,这样一个模型,这个工具类在一个项目中写一次就可以了。其实这个类起的作用就是将Hibernate.cfg.xml转化为DDl。

package pserBean;

 

import org.hibernate.cfg.Configuration;

import org.hibernate.tool.hbm2ddl.SchemaExport;

 

public class ExportDB {

 

              public static void main(String[] args) {

                            

                            //读取hibernate.cfg.xml文件,因为Hibernate默认读取的是Hibernate.prefors文件,所以得在后面加上 . Configure();

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

                            //编写工具类,这个类能将对象模型转换为关系模型。

                            SchemaExport export = new SchemaExport(cfg);

                            

                            export.create(true, true);

              }

}
 

 

8、开发客户端

             

package com.hibernate;

 

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

 

public class Client {

 

              public static void main(String[] args) {

                            //读取hibernate.cfg.xml文件

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

                            //创建SessionFactory,一个数据库对应一个SessionFactory

                            SessionFactory sf=cfg.buildSessionFactory();

                            //相当于JDBC中的Connection,但和Connectio不一样,

                            //可以理解为对Connection做了一层封装

                            Session session=null;

                            

                            try{

                                          //创建Session,从工厂创建出一个

                                          session=sf.openSession();

                                          //打开事务(hibernate默认的事务是False,所以得手动开启事务)

                                          session.beginTransaction();

                                          //设置实例类相应的属性

                                          User user=new User();

                                          user.setName("qtliu");

                                          user.setPassword("qtliu");

                                          user.setCreateTime(new Date());

                                          user.setExpireTime(new Date());

                                          //进行存储

                                          session.save(user);

                                          //手动提交,提交事务你必须得到原先开启事务的上下文,不能随便提交

                                          //可以用Session.getTransanction()来得到先前开启事务的上下文

                                          session.getTransaction().commit();

                            }catch(Exception e){

                                          e.printStackTrace();

                                          //事务提交后如果失败得回滚

                                          session.getTransaction().rollback();

                            }finally{

                                          //如果事务不为空

                                          if(session!=null){

                                                        //如果事务没有关闭

                                                        if(session.isOpen()){

                                                                      //那么关闭事务

                                                                      session.close();

                                                        }

                                          }

                            }

              }

}
 


为了方便跟踪sql执行,在hibernate.cfg.xml文件中加入

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





Hibernate配置文件:包含数据库连接信息,表的映射信息。

表的配置文件:对类与表的映射配置信息。



Configuration类:读取Hibernate.hbm.xml文件中的内容

SessionFaction类:通过Configuration创建SessionFaction实例,实现将类和表之间的映射。

Session.类。通过Session类保存、更新,删除及查询持久化对象,充当持久化管理器。

Session.Transaction 管理事务



分享到:
评论

相关推荐

    菜鸟快速运行第一个hibernate

    标题“菜鸟快速运行第一个hibernate”表明了这是一个针对初学者的教程,旨在帮助他们快速上手并成功运行他们的第一个Hibernate项目。Hibernate是一个强大的Java ORM(对象关系映射)框架,它简化了数据库操作,使得...

    hibernate第一个hibernate

    在开始第一个Hibernate项目之前,你需要下载Hibernate的JAR包,并将其添加到项目的类路径中。同时,还需要配置Hibernate的主配置文件`hibernate.cfg.xml`,其中包含数据库连接信息、方言等设置。 3. 实体类与映射...

    hibernate完整的一个项目

    它是Hibernate启动时加载的第一个配置文件。 2. **实体类的XML映射文件**: 对应数据库表的Java类,每个类通常有一个对应的`.hbm.xml`文件,用于描述类与表之间的映射关系。 样例代码通常包括以下部分: 1. **...

    我的第一个Hibernate 程序

    【我的第一个Hibernate程序】这篇文章是关于初学者如何创建并运行第一个Hibernate程序的详细教程。Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的编程,简化了数据...

    第一个hibernate程序及解释

    在提供的文档“第一个Hibernate程序.doc”和源代码文件“FirstHibernate”中,你可以找到更具体的实现细节和解释,这对于理解并实践你的第一个Hibernate程序非常有帮助。通过这个起点,你可以进一步探索Hibernate的...

    Hibernate项目开发宝典源码(完整版)

    《Hibernate项目开发宝典》是一本深度探讨Java领域持久化框架Hibernate的专业书籍,它涵盖了从基础到高级的各种 Hibernate 应用场景。源码是学习和理解书中理论的最佳实践材料,而这里提供的“完整版”源码,据描述...

    搭建Hibernate项目环境步骤

    搭建一个Hibernate项目环境是开发基于Java的ORM(对象关系映射)应用的第一步。下面将详细阐述这个过程中的四个关键步骤: 1. **加载Hibernate类库和依赖库** 在开始构建Hibernate项目时,首先需要引入必要的库。这...

    Eclipse开发第一个Hibernate

    ### Eclipse开发第一个Hibernate程序 #### 引言 Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用程序,它能够将面向对象的数据模型与关系型数据库进行映射,简化了数据库的操作过程,使得开发者可以...

    hibernate第一个例子

    【hibernate第一个例子】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本示例将引导初学者了解如何使用Hibernate进行简单的数据库连接和操作。 首先,我们需要...

    hibernate项目

    1. **配置文件**:Hibernate项目的初始化通常需要一个配置文件(如`hibernate.cfg.xml`),其中包含了数据库连接信息、JDBC驱动类、实体类的包名扫描等设置。这个文件是项目启动时读取的,用于配置Hibernate的行为。...

    第一个手写Hibernate

    "第一个手写Hibernate"项目旨在帮助开发者深入理解Hibernate的工作原理,通过手动编写相关代码,以实践的方式来学习和掌握Hibernate的核心概念。 **一、Hibernate简介** Hibernate是一个开源的ORM框架,它允许...

    Hibernate数据库访问

    在第一个Hibernate项目中,通常会创建一个简单的实体类,比如User,然后创建对应的User.hbm.xml映射文件。映射文件定义了类属性与数据库字段的对应关系。接着,通过配置文件设置数据库连接,如JDBC驱动、URL、用户名...

    Spring和Hibernate学习笔记

    第一课:第一个hibernate项目 第二课:测试实体对象的生命周期 第三课:hibernate基本映射 第四课:hibernate多对一关联映射 ...................... Spring: 第一课:构建Spring的环境并建立一个例子 第三课:...

    hibernate_first_new项目源码

    - 第一级缓存:Session级别的缓存,每个Session都有自己的缓存,数据自动放入和取出。 - 第二级缓存:SessionFactory级别的缓存,可配置第三方缓存服务,如Ehcache,提高数据读取速度。 通过这个项目,你不仅可以...

    hibernate中英文API文档

    它通常包括创建第一个Hibernate项目、建立实体类、配置数据源、执行CRUD操作等基础步骤。 这些文档对于学习和掌握Hibernate至关重要,无论你是初学者还是经验丰富的开发者,都能从中找到对应的信息来解决特定问题。...

    hibernate入门--第一个实例

    【hibernate入门--第一个实例】 Hibernate 是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。通过使用Hibernate,我们可以将数据库操作转换为对Java对象的操作,从而简化了数据库...

    第一个Hibernate代码, Hello Hibernate

    "第一个Hibernate代码, Hello Hibernate" 这个标题表明我们将要探讨的是一个初学者级别的Hibernate教程,可能是通过一个简单的项目或示例来介绍如何使用Hibernate框架。Hibernate是一个开源的对象关系映射(ORM)...

    hibernate全套资料文档API及配置说明文档

    它通常会从安装和配置开始,逐步引导读者建立第一个Hibernate项目,涵盖基本的实体映射、配置XML文件、使用Session API以及执行查询等基础操作。 通过学习这些文档,开发者不仅可以掌握Hibernate的基本用法,还能...

    springmvc+hibernate企业项目小练习

    3. **缓存机制**:提供了第一级缓存和第二级缓存,减少对数据库的访问,提高效率。 4. **强大的查询语言HQL和 Criteria API**:提供了面向对象的查询方式,使得查询更加直观和简单。 在"springmvc+hibernate企业...

Global site tag (gtag.js) - Google Analytics