此处写只是方便初学者,对于实力级人物这些完全不足一提,我也是新手还望高手指教!
学习了近段时间的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.xml和hibernate.properties,XML和properties两种,这两个文件的作用一样,但下面的代码为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文件夹下的配置文件形式,对其进行改变!
分享到:
相关推荐
Hibernate入门 - 基础配置,Hibernate入门 - 基础配置
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基础配置,之前在网上找个实例找了半天,后来自己看了教程,终于解决问题了,基本上是jar包和配置问题,菜鸟上传,仅供参考哈
掌握Hibernate的基本功能和基本用法 通过Hibernate将一个Java对象插入到数据库表中 ...(5) 可以利用Hibernate框架根据配置和类及映射文件生成数据库表结构,反过来,也可以根据数据库表结构生成持久化类和映射文件。
3. Hibernate基础配置 4. commons DBCP 配置说明 5. Hibernate的缓存机制介绍 6. Hibernate缓存机制带来的一个负面问题 7. hibernate cache 缓存 8. hibernate缓存方案 9. Hibernate二级缓存配置
第一步:修改Hibernate配置文件,启用Hibernate的第二级缓存.在配置文件中加入EhCache缓存插件的实现类. 第二步:拷贝ehcache.xml文件到类路径下(位于Hibernate3的etc文件夹下) 第三步:对需要进行缓存的...
hibernate的基础文档,hibernate的简单配置
文档内容包括:Hibernate入门、OR映射技术、通过Hibernate API操纵数据库、检索策略和方式、数据库事务、并发、缓存与性能优化、高级配置
解压包中含有hibernate5.2能够正常使用的基础jar包以及数据库驱动包,还有hibernate的相关配置文件
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基础框架,项目源码和数据库脚本(dmp、sql),添加myeclipse中可以直接使用
Hibernate入门,有很详细的说明,几乎每一步都有详细的解释!以此献给Hibernate入门者。
4 hibernate基础配置(重点) 5 ID生成策略(重点 AUTO) 6 Hibernate核心开发接口介绍(重点) ... 风格 1 先脉络,后细节 2 先操作,后原理 3 重Annotation,轻xml配置文件 ... 性能优化 1 注意...
本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...
第11课 Hibernate基础配置 15 一、 提纲 15 二、 介绍MYSQL的图形化客户端 16 三、 Hibernate.cfg.xml:hbm2ddl.auto 16 四、 搭建日志环境并配置显示DDL语句 16 五、 搭建Junit环境 16 六、 ehibernate.cfg.xml : ...
本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...
实现一个登录jsp页面,submit后转到一个欢迎页面。同时,登录信息保存至...改例子用到spring mvc和hibernate,展示spring中怎样配置hibernate。 改例子可以作为一个个人网站开发的模板,在此基础上继续开发您自己的网站。
hibernate依赖包,用于配置hibernate 基础环境
本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...
本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...