官方在线参考文档:http://docs.jboss.org/hibernate/core/3.6/reference/zh-CN/html_single/

此复习笔记的对应文档:http://docs.jboss.org/hibernate/core/3.3/reference/zh-CN/html_single/  中间数字为版本信息。

 一、创建实体类

字段和数据库表中字段的一一对应。

Event.java

View Code

import java.util.Date;

public class Event {private Long id;

private String title;private Date date;

public Event() {}

public Long getId() {return id;    }

private void setId(Long id) {this.id = id;    }

public Date getDate() {return date;    }

public void setDate(Date date) {this.date = date;    }

public String getTitle() {return title;    }

public void setTitle(String title) {this.title = title;    }}

二、创建映射文件(和实体类同包)

Event.hbm.xml

View Code

<?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="org.hibernate.tutorial.domain">

<class name="Event" table="EVENTS"><id name="id" column="EVENT_ID"><generator class="native"/></id><property name="date" type="timestamp" column="EVENT_DATE"/><property name="title"/></class>

</hibernate-mapping>

class name和table告诉hibernate实体类和表的对应关系。

id name和column是类属性和表字段的对应。 generator是主键的生成策略。

property配置的是其他的属性。  type指定映射的数据库字段类型。(如果在映射文件中没有设置 type 属性的话,Hibernate 会自己试着去确定正确的转换类型和它的映射类型。此例中date 属性,Hibernate 无法知道这个属性(java.util.Date 类型的)应该被映射成:SQL date,或 timestamp,还是 time 字段。在此例中,把这个属性映射成 timestamp 转换器,这样我们预留了日期和时间的全部信息。 )

数据库不区分大小写,所以当name和table相同时 table可以省略。同理 当name和column相同时 column可以省略

创建hibernate配置文件

hibernate.cfg.xml

View Code

<?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">

<hibernate-configuration>

<session-factory>

<!-- Database connection settings --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://localhost/hibernate</property><property name="connection.username">root</property><property name="connection.password">1234</property>

<!-- JDBC connection pool (use the built-in) 连接池--><property name="connection.pool_size">1</property>

<!-- SQL dialect 方言--><property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Enable Hibernate's automatic session context management --><property name="current_session_context_class">thread</property>

<!-- Disable the second-level cache  二级缓存--><property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout 控制台显示SQL语句--><property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup 生成建表语句HibernateMappingToDataDefinedLanguage--><property name="hbm2ddl.auto">update</property>

<!-- 将实体类映射成数据库字段  --><!-- 方法一  通过配置文件映射 --><mapping resource="com/bjsxt/hibernate/Event.hbm.xml"/><!-- 方法二  通过注解映射 (略   后面笔记记录)-->

</hibernate-configuration>

 创建启动辅助类

辅助类(helper class)来负责启动 Hibernate 和更方便地操作 org.hibernate.SessionFactory

HibernateUtil.java

View Code

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

public class HibernateUtil {

private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory() {try {// Create the SessionFactory from hibernate.cfg.xml            return new Configuration().configure().buildSessionFactory();        }catch (Throwable ex) {// Make sure you log the exception, as it might be swallowed            System.err.println("Initial SessionFactory creation failed." + ex);throw new ExceptionInInitializerError(ex);        }    }

public static SessionFactory getSessionFactory() {return sessionFactory;    }

}

调用

View Code

import org.hibernate.Session;

import java.util.*;

import org.hibernate.tutorial.domain.Event;import org.hibernate.tutorial.util.HibernateUtil;

public class EventManager {

public static void main(String[] args) {       Event theEvent = new Event();        theEvent.setTitle("My Event");        theEvent.setDate(new Date());
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();        session.beginTransaction();

        session.save(theEvent);

        session.getTransaction().commit();    }

}

通过save方法将实体对象的值存到数据库表中。

转载于:https://www.cnblogs.com/surge/archive/2012/02/27/2370293.html

【Hibernate3.3复习知识点一】 - 配置hibernate环境(XML)。相关推荐

  1. 【Hibernate3.3复习知识点二】 - 配置hibernate环境(annotations)

    配置文件hibernate.cfg.xml中引入:<mapping class="com.bjsxt.hibernate.Teacher"/> <hibernat ...

  2. 配置Hibernate环境

    1: 在lib环境下添加Hibernate中的所有JAR包: 2: 对应数据库做一个持久类(也可由工具自动生成),例如: public class student {      public stud ...

  3. 知识点 Linux 配置LAMP环境

    LAMP:指Web应用软件组合 L-Linux 为linux操作系统 A-Apache 为Web服务器 M-Mysql 为数据库管理系统 P-PHP 脚本语言 本文的主要目标,就是在虚拟机CentOS ...

  4. hibernate正向生成数据库表以及配置——hibernate.cfg.xml

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hib ...

  5. 第一次使用并配置Hibernate

    1. 环境配置 1.1 hiberante环境配置 hibernate可实现面向对象的数据存储.hibernate的官网:http://hibernate.org/ 官网上选择hibernate OR ...

  6. Spring中配置Hibernate事务的四种方式

    2019独角兽企业重金招聘Python工程师标准>>> 为了保证数据的一致性,在编程的时候往往需要引入事务这个概念.事务有4个特性:原子性.一致性.隔离性.持久性. 事务的种类有两种 ...

  7. 配置hibernate手动配置

    为什么80%的码农都做不了架构师?>>>    手动配置: 1.CROD 操作 界面 testmain.java Domain service 数据持久层 数据库 Mysql Ore ...

  8. 配置Hibernate二级缓存步骤

    配置Hibernate二级缓存步骤: 加入二级缓存的jar包及配置文件 jar包位置:hibernate-release-4.1.8.Final\lib\optional\ehcache下所有jar包 ...

  9. 如何正确使用maven配置hibernate

    我今天一整天,都忙着在用maven配置hibernate.网上的教程很少,经常报错,官方的文档上也是语焉不详,后来在网上差了一整天的资料,有中文的,有外文的,有CSDN上的,有stackoverflo ...

  10. 关于Could not parse configuration: /hibernate.cfg.xml的问题

    第一次在eclipse上配置hibernate,问题百出啊,比如下面的org.hibernate.HibernateException: Could not parse configuration: ...

最新文章

  1. 谁知道静态成员的纠结心境
  2. JAVA命令运行cmd命令得到的结果乱码Runtime.getRuntime().exec();
  3. 【机器学习基础】Softmax与交叉熵的数学意义(信息论与概率论视角)
  4. mysql比较两个表中count_mysql两个表统计查询问题?
  5. x86汇编--0.资料汇总
  6. Inspinia的version 2.4模板使用的谷歌字体加载很慢问题解决
  7. python 开发微信小游戏_Python实现微信找茬小游戏自动进行
  8. 50个高端大气上档次的管理后台界面模板
  9. 电子产品检验-检验中心
  10. android平板和ipad区别,iPad和安卓平板差距大吗?亲身经历告诉你,平板该如何挑选...
  11. 高中数学复习知识清单
  12. 鸿蒙系统手机电脑互传文件,华为手机怎么与电脑互传文件(Huawei Share教程
  13. 原生 hadoop安装
  14. CSS技巧之向下箭头
  15. 牛客网C语言考试输入输出问题
  16. Google Earth Engine—ETOPO1是一个1弧分的地球表面全球浮雕模型,整合了陆地地形和海洋测深。它是由许多全球和区域数据集建立的。它包含两个高程带:冰面和基岩。
  17. 拍卖源码架构在拍品详情页上的探索
  18. ​为什么要举办这样一场大会?
  19. 使用命令行删除垃圾广告推送服务(windows)
  20. 可穿戴从业者必读:2014华米踩过的那些坑

热门文章

  1. Pandas数据框索引函数 iloc、loc和ix学习使用
  2. Science杂志公布的机器学习资源
  3. java 按顺序读取文件夹_java读取某个文件夹下的所有文件实例代码
  4. python聊天室详细教程_Python基础教程书籍案例:在线聊天室(虚拟茶话会)【下】...
  5. javascript设计模式_详解JavaScript的常用设计模式(二)
  6. linux 程序崩溃 gdb调试coredump文件
  7. Hyperledger Fabric 或 Composer 获取指定Tx_id(transactionId)的信息
  8. linux mysql 数据库同步
  9. vue element 调用后台下载文件
  10. Unity Camera