`
hustlong
  • 浏览: 123672 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

hibernate Step By Step (1)

阅读更多
Hibernate的第一个例子,用hibernate3.0  数据库用Hsql(因为运行起来简单)
描述我要达到的目的:完成一个最简单的功能:在表User中插入一条记录。

1,新建工程,添加Hibernate支持,可以用Myeclipse自带的加入Hibernate支持功能。不过这里我想自己引入包:<url>http://ikeel.iteye.com/admin/blogs/174641</url>可以参考这篇文章。
然后为了使用Hsql还要引入hsql.jar
2,有这样几个配置文件:

log4j.properties;
hibernate.cfg.xml;
xxx.hbm.xml;

分别说明:
log4j:位于src根目录下,不用多说,但是如果不加入这个配置会报警告的。并且也看不到执行过程中的日志记录。
内容:

log4j.rootLogger=WARN, Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=(%r ms) [%t] %-5p: %c#%M %x: %m%n

log4j.logger.com.genuitec.eclipse.sqlexplorer=DEBUG
log4j.logger.org.apache=WARN
log4j.logger.org.hibernate=WARN


hibernate.cfg.xml:
位于src根目录下。
<?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>

<property name="connection.driver_class">
org.hsqldb.jdbcDriver
</property>
<property name="connection.url">
jdbc:hsqldb:hsql://localhost
</property>
<property name="connection.username">SA</property>
<property name="connection.password"></property>

<property name="dialect">
org.hibernate.dialect.HSQLDialect
</property>
<property name="show_sql">true</property>
<property name="connection.pool_size">3</property>

<property name="hbm2ddl.auto">create</property>
<property name="current_session_context_class">thread</property>


<mapping resource="dian/ikeel/hibernate/beans/Users.hbm.xml" />

</session-factory>

</hibernate-configuration>


对这个配置文件,有几点需要说明的,就是DTD的引入,可以采用本地文件系统的,也可以采用上面所写的网络地址。
注意:<property name="current_session_context_class">thread</property>
如果缺少这一句时会报错:No CurrentSessionContext configured!

xxx.hbm.xml:
映射文件,内容如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >


<hibernate-mapping>

<class name="dian.ikeel.hibernate.beans.Users" table="User">
<id name="id" column="userid">
<generator class="native"></generator>
</id>
<property name="username" column="name"></property>

<property name="password" column="pwd"></property>
</class>
</hibernate-mapping>


对应的Users.java内容如下:
package dian.ikeel.hibernate.beans;


public class Users {

private long id;
private String username;
private String password;

public Users()
{}

   gets  &  sets ...
}



attention:
<class name="dian.ikeel.hibernate.beans.Users" table="User">需要指定包名。如果不指定就会报错:Could not read mappings from resource: Users.hbm.xml

2,到目前基本的配置已经完成,开始使用操作了。

package dian.ikeel.hibernate.BLL;



import org.hibernate.Session;


import dian.ikeel.hibernate.beans.*;
import dian.ikeel.hibernate.util.hibernateutil.*;
import dian.ikeel.hibernate.util.SessionFactory.*;

public class Entry {

public  static void main(String[] args)
{

Session  session=HibernateSessionFactory.getSessionFactory().getCurrentSession();
     session.beginTransaction();
      Users  user=new Users();
      user.setUsername("ikeel");
      user.setPassword("ikeel");
      session.save(user);
      session.getTransaction().commit();
      System.out.println("KKKKKK");
           
     
}



其中用到一个Util类:HibernateSessionFactory:

package dian.ikeel.hibernate.util.SessionFactory;

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


public class HibernateSessionFactory {

        private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    private  static Configuration configuration = new Configuration();
    private static org.hibernate.SessionFactory sessionFactory;
    private static String configFile = CONFIG_FILE_LOCATION;

static {
    try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
    }
    private HibernateSessionFactory() {
    }

     public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();

if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}

        return session;
    }

public static void rebuildSessionFactory() {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}

     public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);

        if (session != null) {
            session.close();
        }
    }

public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}

public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}
public static Configuration getConfiguration() {
return configuration;
}

}
 

}

3,OK了,可以开始使用了,在命令行下进入到 Project/HibernateStudy/data 目录下,先建立data目录吧。然后执行:  java -classpath ..\lib\hsql.jar org.hsqldb.Server 数据库就启动了。
开始Run Entry,可以看到都发生了什么.....


4,接下来,我不想用xxx.hbm.xml了,我想试试annotation ....
分享到:
评论

相关推荐

    step by step 06 ssh整合hibernate

    在这个“step by step 06 ssh整合hibernate”教程中,我们将深入探讨如何将这三个强大的组件协同工作。 首先,Struts2是一个基于MVC设计模式的Java Web框架,它负责处理用户请求并展示视图。Struts2提供了一种灵活...

    NHibernate Step by Step入门教程

    1. **配置文件**:NHibernate的配置文件(hibernate.cfg.xml)包含了数据库连接信息、方言设置、缓存策略等,是初始化NHibernate会话工厂的关键。 2. **映射文件**:使用XML或注解定义对象与数据库表之间的映射关系...

    ssh框架整合step by step (springMVC + spring 5.0.4 + hibernate 5.0.12)

    ssh框架搭建step by step (springMVC + spring 5.0.4 + hibernate 5.0.12) 好久不弄web了, 周末心血来潮, 使用较新spirng/hibernate搭建一个ssh框架, 供有需要的同学参考/学习/使用. 使用eclipse开发, 搭建,分三步: ...

    step by step 09

    在"step by step 09"这个主题中,我们关注的是通过SSH框架进行开发的实际操作,具体涉及以下几个关键知识点: 1. **Struts2框架**:作为表现层,Struts2负责处理HTTP请求,控制应用程序的流程,并将数据展示在视图...

    step by step ssh 04 Spring 事务控制

    在"step by step ssh 04 Spring 事务控制"这一主题中,我们将深入探讨如何在SSH架构下实现Spring的AOP(面向切面编程)事务管理,以及如何结合Struts和Hibernate进行用户登录实例。 首先,Struts作为MVC(模型-视图...

    step by step ssh 06 增加用户

    在本教程“step by step ssh 06 增加用户”中,我们将深入探讨如何在SSH环境中添加新用户,以及如何集成SSH与其他技术如Spring、Struts和Hibernate(SSH框架)进行应用开发,实现包括用户登录、数据保存和查询等功能...

    step by step ssh 05 显示所有用户

    在这个"step by step ssh 05 显示所有用户"的主题中,我们聚焦于SSH在用户管理方面的一个具体应用,即如何显示系统中的所有用户。这通常是系统管理员为了管理和监控用户账户而进行的操作。 首先,SSH主要由三部分...

    NHibernate Step by Step(教程).doc

    ### NHibernate Step by Step 教程知识点概览 #### 一、环境搭建与配置 - **NHibernate**:NHibernate 是一个开源的对象关系映射器(Object-Relational Mapper,ORM),它允许开发者以面向对象的方式操作关系型...

    step by step ssh 10

    SSH整合开发是软件开发中的一个常见概念,主要指的是Spring、Struts和Hibernate这三大框架的集成应用。在本文中,我们将深入探讨SSH整合的核心概念、关键技术和如何实现用户管理模块,包括用户登录、删除、修改、...

    spring-mvc-step-by-step中文版

    ### Spring MVC Step-by-Step中文版知识点概览 #### 一、Spring框架核心概念与组成部分 **1. 控制反转(IoC)** - **定义**:控制反转是一种编程模式,通过它对象的依赖关系是由外部容器进行管理而不是由对象本身...

    ssh step by step 01 struts2项目

    1. **配置Struts2**:添加Struts2的依赖库,配置struts2-core.xml,定义全局配置和Action映射。同时,Struts2的拦截器可以用于实现权限控制、日志记录等功能。 2. **集成Spring**:在Struts2的配置文件中指定Spring...

    hibernate-shards.jar

    We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To ...

    Hibernate+Struts 无限级树形菜单(MSSQL).rar

    内含step by step 开发文档 一、说明: 1、开发环境: Eclipse3.2.1+MyEclipse5.1+Tomcat5.5+Microsoft SQL Server 2000 2、主要实现技术:Struts1.2+Hibernate3.0+JavaScript+JSTL1.1+自定义标签 3、页面的树形...

    hibernate+webwork+spring的学习资料

    "Spring起步例子 'Developing a Spring Framework MVC application step-by-step' 剖析.pdf"则可能是一个详细指南,通过逐步教学的方式引导读者创建一个基于Spring MVC的Web应用,内容可能包括Spring的配置、控制器...

    Spring-MVC-step-by-step2.rar

    《Spring MVC 深入浅出教程》 Spring MVC 是 Spring 框架的一个核心模块,主要用于构建...这个教程“Spring-MVC-step-by-step2.pdf”将引导你一步步掌握 Spring MVC 的核心概念和实战技巧,为你的 IT 事业添砖加瓦。

    Linq2NHibernate.Step1

    1. **什么是LINQ to NHibernate**: LINQ to NHibernate是NHibernate项目的一部分,它提供了与SQL类似的查询语法,可以直接在对象模型上进行操作,使得代码更加简洁、可读性强。通过使用LINQ,开发者可以避免编写...

    NHibernate-MVC3 入门例子

    很多NHibernate的学习者往往都是通过Hibernate的文档来学习,但是毕竟不是所有的.Net开发者都熟悉Java,也不是所有的人都有精力有时间去学习Java,所以,我准备开始一个Step by Step的NHibernate教程,以便有兴趣的...

    Spring從入門到精通

    《Spring从入门到精通》是一套全面且深入的Spring学习资料集合...在实践过程中,读者可以结合"Spring MVC step-by-step.files"中的实例代码进行操作,加深理论知识与实际应用的结合,从而真正达到从入门到精通的目标。

    HibernateValidatorJSR303的参考实现使用指南.pdf

    2. Validation step by step 2.1. 定义约束 2.1.1. 字段级(field level) 约束 2.1.2. 属性级别约束 2.1.3. 类级别约束 2.1.4. 约束继承 2.1.5. 对象图 2.2. 校验约束 2.2.1. 获取一个Validator的实例 2.2.2. ...

Global site tag (gtag.js) - Google Analytics