`

一 认识hibernate3

阅读更多
写道
下载的hibernate解压目录
hibernate3.jar是hibernate的核心包

doc 文档
eg 例子程序
etc 配置文件
grammar 语法
lib 依赖的包
src hibernate源代码
test 测试用例

ORM Object Relation Mapping对象关系映射 主流的ORM框架有Hibernate、TopLink、OJB。

配置文件 hibernate.cfg.xml和hibernate.properties两种 一般使用xml形式

开发一个小例子
新建一个java项目 把hibernate的包全都引入到工程中
创建一个实体类 User

package dao.service;

import java.util.Date;

public class User {
private int id;
private String name;
private Date birthday;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}


实体类的映射文件 User.hbm.xml 这个文件有点复杂 可以从hibernate的eg目录下找一个同样
的模板 修改下即可

<?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 package="dao.service">
<class name="User">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="birthday"/>
</class>

</hibernate-mapping>

引入配置文件 把模板程序拷贝到包的根目录下 hibernate.cfg.xml

<!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="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">jdbc:mysql:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 指定其方言 方言的作用就是告诉hibernate是哪种数据库 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- 指定其hibernate是否根据映射文件自动创建表 -->
<property name="hbm2ddl.auto">update</property>
<mapping resource="dao/service/User.hbm.xml" />

</session-factory>
</hibernate-configuration>





创建测试类


package dao.test;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import dao.service.User;

public class Base {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//对hibernate进行初始化操作
Configuration ctf=new Configuration();
ctf.configure();
//获取连接工厂
SessionFactory sf=ctf.buildSessionFactory();
//获取连接对象
Session s=sf.openSession();
Transaction tx=s.beginTransaction();
User user=new User();
user.setBirthday(new Date());
user.setName("name");

s.save(user);
tx.commit();
s.close();
System.out.print("end");
}

}

注意 对hibernate的配置文件的引入可以参考etc下的hibernate.properties
这里可以找到完整的配置信息
注意点1
## auto schema export
#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate
这是指定其hibernate是否可以根据映射文件建表

create-drop 这种形似指的是在程序在运行的时候就自动把以往同样的表给删除 只可以在测试环境下使用
create 这种跟create-drop一样
update 这种最实用 hibernate可以自动检查数据库中的表是否存在 如果不存在,就创建 存在,就更新其表中数据
validate 验证映射文件跟表是否一致,不一致就异常

注意点2
映射文件必须配置到hibernate配置文件中 不然hibernate会找不到该映射文件

注意点3 必须指定其方言 告诉其hibernate是采用的是什么数据库

注意点4 hibernate其实底层是基于jdbc操作的

注意点5 jdbc的事务是自动提交的 但是在hibernate中,事务的自动关闭了,但是有时候不开启事务发现数据也
能插入到数据库中 这是为什么呢,这是由表结构的引擎所决定的 查看表结构的方法 在命令行中
输入 show create table user; 有些引擎是不支持事务的 所以你开启事务和不开启事务是没什么区别的
mysql5版本后的数据库表结构的默认引擎是 InnoDB 这种是支持事务的
查看所有引擎的方法 在命令行输入 show engines;

完毕 end !

 

分享到:
评论

相关推荐

    经典struts+hibernate结合的电影售票系统项目

    电影售票系统采用struts+hibernate再结合java的dao模式框架做的,具有典型的mvc结构,在后台操作电影影片中:在添加电影这步,我用了上传案例结合...很不错的例子,相信大家看后能比较清晰认识struts和hibernate

    Hibernate课件-------超全超详细的介绍hibernate

    许多有经验的开发人员都有一个共同的认识,那就是Hibernate要比Struts和Spring难掌握得多,初学者要想学好Hiberante就更是难上加难了!本课程的讲解者李勇老师的技术功底非常深厚,课程内容组织得非常合理和巧妙,...

    Hibernate中的Criteria的认识

    主要讲解Hibernate中的Criteria的认识

    Hibernate结构图

    Hibernate详细的架构图,很好的架构系统,能全面认识Hibernate。

    Hibernate实战(入门篇)

    Hibernate入门操作,通过向Mysql数据库中添加数据来认识Hibernate的工作流程和思想,以及生成表和操作表的方法

    hibernate 参考手册

    hibernate的学习手册,适用于对hibernate有一定了解的人,一次对hibernate有更加全面的认识。

    Hibernate5快速学习步骤

     Hibernate 初认识  Hibernate 的HelloWorld  hibernate.cfg.xml 配置详解  *.hbm.xml 对象映射文件详解  Hibernate 核心接口详解  抽取HibernateUtil 工具类  使用Session 接口进行增删改查

    Hibernate_Session_Transaction

    可以对hibernate的 Session 和 Transaction 有更深入的认识 希望对一些概念比较模糊的人 有帮助

    Hibernate3 入门教程(纯Eclipse版)

    Hibernate是一个不依赖其他平台的轻量级的中间件,现在到处充斥着通过各种工具使用Hibernate进行开发的教程,如 ...下面的讲解就是使用这种方法,让大家认识Hibernate。需要的软件有:Eclipse + MySQL + Hibernate。

    hibernate缓存的问题

    hibernate缓存的问题,使你更清楚的认识HIBERNATE

    Hibernate_Query_Language基础认识.rar

    Hibernate_Query_Language基础认识,主要是使用了一些HQL的特性,用idea搭建,适合小白上手

    缺少包一个有javaweb后台使用hibernate和spring框架android移动端的帮助老师认识学生的应用.zip

    缺少包一个有javaweb后台使用hibernate和spring框架android移动端的帮助老师认识学生的应用.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    一步一步教你Strus2+Spring3+Hibernate3环境整合搭建

    最近在群里好多朋友,不管认识还是不认识的,都问到SSH2框架整合搭建的问题。于是乎,抽了个空,理了个文档出来,里面是整合搭建的详细步骤以及截图,并附上了使用到的相应jar包。新手的最佳选择。

    hibernate原理与配置快速入门

    看完本文后,我相信你对什么是ORM(对像/关系映射)以及它的优点会有一个深刻的认识, 我们先通过一个简单的例子开始来展现它的威力。 正如一些传统的经典计算机文章大都会通过一个“hello,world”的例子...

    hibernate最小支持库,新手学习必备

    hibernate最小支持库,免去你从一大堆支持jar包里整理出最少需求jar包的麻烦,为你入门hibernate创造清新简洁的lib页面,让你快速认识hibernate支持jar包的作用

    hibernate如何使用criteria联合查询 group by 的语句

    这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友

    Hibernate课件

    01.Hibernate编程基础-认识ORM 02.Hibernate编程基础_入门 03.Hibernate编程基础_映射基础 04.Hibernate编程基础_实体关联 05.Hibernate编程基础_数据检索

    马士兵hibernate笔记

    对初学者有很大帮助,初步认识mvc,了解hibernate的具体操作。。。。。。。。。。。。。。。。。。

    深入浅出Hibernate学习笔记

    本文是对深入浅出Hibernate学习做的学习笔记,是个人在对深入浅出Hibernate学习中的一点认识和看法

    Hibernate学习PPT

    学习Hibernate的好资料,让你对Hibernate有全新的认识。

Global site tag (gtag.js) - Google Analytics