`
wsy65180
  • 浏览: 738 次
  • 性别: Icon_minigender_1
  • 来自: 四川
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于hibernate的基础配置

阅读更多

此处写只是方便初学者,对于实力级人物这些完全不足一提,我也是新手还望高手指教!  

学习了近段时间的hibernate,为了更好的掌握hibernate的配置,发表于此记住起机制。本人所用hibernate版本为3.5.2,首先是基于开发类的映射文件,一般取名为类名-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 package="wsy.domain">
	
	<class name="User" table="user" >
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name" />
        <property name="birthday"/>
    </class>

	
</hibernate-mapping >

 

该对应的类文件为:

package wsy.domain;

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;
	}
}

 最后为hibernate的配置文件:(其在hibernate的解压文件中的project下的etc目录有所有需要的配置文件,其中的配置文件列出了所有可以添加的配置项,可以拷贝过来对其进行适当的删除处理作为己用)配置文件有hibernate.cfg.xmlhibernate.propertiesXMLproperties两种,这两个文件的作用一样,但下面的代码为xml形式的配置文件,提倡该配置。在hbm2ddl.auto中设置的属性有四种选择取值方式:1、 取值create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
      2、取值create-drop :每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
     3、 取值update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
       4、取值validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

<?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:///test</property>
        <property name="connection.username">root</property>
        <property name="connection.password">你的密码</property>
		<property name="hbm2ddl.auto">create</property>
        <property name="show_sql">true</property>
        
        <!-- SQL dialect -->
说明你用的mysql数据库        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<mapping resource="wsy/domain/User.hbm.xml "/> 
    </session-factory>

</hibernate-configuration>

 最后建立一个工具类,比较经典,今后也可以用,

package wsy.dao;

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

public final class HibernateUtil {
	private static SessionFactory sessionFactory;
	
	private HibernateUtil(){
		
	}
	
	static {
		Configuration cfg=new Configuration();
		cfg.configure();
		sessionFactory=cfg.buildSessionFactory();
	}
	
	public static SessionFactory getSessionFactory(){
		return sessionFactory;
	}
	
	public static Session getSession(){
		return sessionFactory.openSession();
	}
}

 

此上面的代码避免了被其它类继承,也不能作为new的对象,可以加载保存在内存中不必今后每次调用都要重新加载此代码,增加服务器的负担。在今后的更多类中对其进行调用!比如

public User findUserByName1(String name) {
		Session s=null;
		try{
			s=HibernateUtil.getSession();
			String hql="from User as user where user.name=:n";
			Query q=s.createQuery(hql);
			q.setString("n", name);
			User user=(User)q.uniqueResult();
			return user;
		}finally{
			if(s!=null)
				s.close();
		}
	}
public void saveUser(User user) {
		Session s=null;
		Transaction tx=null;
		try{
			s=HibernateUtil.getSession();
			tx=s.beginTransaction();
			s.save(user);
			tx.commit();
		}finally{
			if(s!=null)
				s.close();
		}
	}
 

 以上的配置文件都是基础的,今后随着项目的加大,需要添加更多的配置,都可以参考etc文件夹下的配置文件形式,对其进行改变!

4
5
分享到:
评论

相关推荐

    Hibernate入门 - 基础配置

    Hibernate入门 - 基础配置,Hibernate入门 - 基础配置

    Hibernate基础配置导入的最小JAR包

    hibernate3.jar-核心类库 antlr-2.7.6.jar-代码扫描器,用来翻译HQL语句 commons-collections-3.1.jar-功能比java.util.*强大 dom4j-1.6.1.jar-类似于jdom,用来读写XML文件的 javassist-3.4.GA.jar- Javassist 字节...

    hibernate基础配置

    hibernate基础配置,之前在网上找个实例找了半天,后来自己看了教程,终于解决问题了,基本上是jar包和配置问题,菜鸟上传,仅供参考哈

    hibernate基础实验

    掌握Hibernate的基本功能和基本用法 通过Hibernate将一个Java对象插入到数据库表中 ...(5) 可以利用Hibernate框架根据配置和类及映射文件生成数据库表结构,反过来,也可以根据数据库表结构生成持久化类和映射文件。

    Hibernate 高级配置

    3. Hibernate基础配置 4. commons DBCP 配置说明 5. Hibernate的缓存机制介绍 6. Hibernate缓存机制带来的一个负面问题 7. hibernate cache 缓存 8. hibernate缓存方案 9. Hibernate二级缓存配置

    hibernate基础教程

    第一步:修改Hibernate配置文件,启用Hibernate的第二级缓存.在配置文件中加入EhCache缓存插件的实现类. 第二步:拷贝ehcache.xml文件到类路径下(位于Hibernate3的etc文件夹下) 第三步:对需要进行缓存的...

    hibernate基础

    hibernate的基础文档,hibernate的简单配置

    Hibernate基础教程

    文档内容包括:Hibernate入门、OR映射技术、通过Hibernate API操纵数据库、检索策略和方式、数据库事务、并发、缓存与性能优化、高级配置

    hibernate5.2基础jar包以及配置文件

    解压包中含有hibernate5.2能够正常使用的基础jar包以及数据库驱动包,还有hibernate的相关配置文件

    深入浅出Hibernate中文版 part1

    4.2 基础配置 4.3 Hibernate O/R映射 4.4 数据关联 4.5 Hibernate数据检索 4.6 HQL实用技术 4.7 自定义持久化实现 第5章 Hibernate高级特性 5.1 Hibernate持久化实现 5.2 Hibernate回调与拦截机制 5.3 ...

    springmvc+hibernate+oracle基础框架

    springmvc+hibernate+oracle基础框架,项目源码和数据库脚本(dmp、sql),添加myeclipse中可以直接使用

    Hibernate入门 - 基础配置详细说明

    Hibernate入门,有很详细的说明,几乎每一步都有详细的解释!以此献给Hibernate入门者。

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

    4 hibernate基础配置(重点) 5 ID生成策略(重点 AUTO) 6 Hibernate核心开发接口介绍(重点) ... 风格 1 先脉络,后细节 2 先操作,后原理 3 重Annotation,轻xml配置文件 ... 性能优化 1 注意...

    深入浅出Hibernate(PDF)第一部分

    本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...

    Hibernate笔记 马士兵

    第11课 Hibernate基础配置 15 一、 提纲 15 二、 介绍MYSQL的图形化客户端 16 三、 Hibernate.cfg.xml:hbm2ddl.auto 16 四、 搭建日志环境并配置显示DDL语句 16 五、 搭建Junit环境 16 六、 ehibernate.cfg.xml : ...

    深入浅出Hibernate.pdf

    本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...

    spring和hibernate配置的例子

    实现一个登录jsp页面,submit后转到一个欢迎页面。同时,登录信息保存至...改例子用到spring mvc和hibernate,展示spring中怎样配置hibernate。 改例子可以作为一个个人网站开发的模板,在此基础上继续开发您自己的网站。

    hibernate_hibernate_

    hibernate依赖包,用于配置hibernate 基础环境

    深入浅出Hibernate(PDF)第二部分

    本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...

    深入浅出hibernate(PDF)第三部分

    本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...

Global site tag (gtag.js) - Google Analytics