`
pacer123
  • 浏览: 90812 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

一个简单的hibernate入门例子!

阅读更多

hibernate比较有用的一个简单入门例子,步骤详细见下面描述:

1、创建表 TEST_USER

                create table TEST_USER
                (
                   ID       VARCHAR2(40 CHAR) not null,
                   USERNAME VARCHAR2(255 CHAR),
                   PASSWORD VARCHAR2(255 CHAR)
                   );

2、创建对应的entity文件  User.java

              public class User implements Serializable
 {
 private String id;
 private String username;
 private String password;
 public User() {
 }
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 
}

 

3、创建user对象对应的hbm文件 User.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 package="cn.com.test.entity">
<class name="User" table="test_user" >
 <id name="id" column="id" length="40">
            <generator class="uuid.hex"/>
    </id>
 <property name="username" ></property>
 <property name="password" ></property>
</class>
</hibernate-mapping>

 

4、创建hibernate的配置文件  hibernate.cfg.xml

<?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="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
 <property name="hibernate.connection.url">jdbc:oracle:thin:@datebaseIp:1521:sid</property>
 <property name="hibernate.connection.username">username</property>
 <property name="hibernate.connection.password">password</property>
 <property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
 <!--
 <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
 <property name="hibernate.connection.url">jdbc:postgresql://devserver/devdb</property>
 <property name="hibernate.connection.username">username</property>
 <property name="hibernate.connection.password">password</property>
 <property name="hibernate.dialect">net.sf.hibernate.dialect.PostgreSQLDialect</property>
 -->
 
 <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
 <property name="hibernate.show_sql">true</property>
 
    <mapping resource="cn/com/test/User.hbm.xml" />
</session-factory>

</hibernate-configuration>

 

5、创建sessionFactory工厂公共类

package com.pccw.dylan.demo.util;

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


public class HibernateUtil {
 private static SessionFactory factory;
 static {
  try {
   // 读取配置文件
   Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
   factory = cfg.buildSessionFactory();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 // 创建sessionFactory
 public static SessionFactory getSessionFactory() {
  return factory;
 }

 // 创建session
 public static Session getSession() {
  return factory.openSession();
 }

 // 关闭session,要关闭的时候条用这个方法就可以了
 public static void closeSession(Session session) {
  if (session != null) {
   if (session.isOpen()) {
    session.close();
   }
  }
 }
}

 

6、完成上面的步骤后,就可以写一个测试类进行测试

package com.pccw.dylan.demo.test;

import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.pccw.dylan.demo.entity.User;
import com.pccw.dylan.demo.util.HibernateUtil;

public class HibernateTest {
 private static final Logger log = Logger.getLogger(HibernateTest.class);

 /** */
 /**
  * @param args
  * @throws HibernateException
  * @throws SQLException
  */
 public void insertUser() throws HibernateException, SQLException {
  Session session = (Session) HibernateUtil.getSession();
  Transaction tx = session.beginTransaction();
  User user = new User();
  user.setUsername("ttt");
  user.setPassword("ttt");
  session.save(user);
  tx.commit();
  HibernateUtil.closeSession(session);
  System.out.println("新增成功!");
 }

 public List getUsers() {

  Session session = (Session) HibernateUtil.getSession();
  Transaction tx = session.beginTransaction();
  String hql = "from User d  where d.username=:name";
  Query query = session.createQuery(hql);
  query.setString("name", "test");
  List list = query.list();
  tx.commit();
  HibernateUtil.closeSession(session);
  return list;
 }

 public void updateUsers() {
  Session session = (Session) HibernateUtil.getSession();
  Transaction tx = session.beginTransaction();
  String hql = "update  User  set password='gm' ";
  Query query = session.createQuery(hql);
  query.executeUpdate();
  tx.commit();
  HibernateUtil.closeSession(session);
  log.info("更新成功!");
 }

 public void deleteUsers() {
  Session session = (Session) HibernateUtil.getSession();
  Transaction tx = session.beginTransaction();
  String hql = "delete from User  where id='f104ed282e7979b3012e7979b4430001'";
  Query query = session.createQuery(hql);
  query.executeUpdate();
  tx.commit();
  HibernateUtil.closeSession(session);
  log.info("删除成功!");
 }

 public static void main(String[] args) throws HibernateException, SQLException {
  log.info("====begin===test====");
  new HibernateTest().insertUser();
  // new HibernateTest().updateUsers();
  // new HibernateTest().deleteUsers();
  List list = new HibernateTest().getUsers();
  for (Iterator iter = list.iterator(); iter.hasNext();) {
   User user = (User) iter.next();
   log.info(user.getPassword());
  }
 }
}

在做的过程中可能会碰到一些问题,红色字体标明容易导致异常的地方,应该特别注意。项目依赖一些jar包入

antlr.jar

asm.jar

cglib.jar

commons-beanutils.jar

commons-collections.jar

commons-logging.jar

dom4j.jar

hibernate3.jar

j2ee.jar

log4j.jar

oracle.jar 

spring.jar

由于连接的是oracle数据库所以采用oracle的驱动

其中没有写明jar包的版本号,一般别太老的版本就应该没有问题的。

工程的目录结构不做强调,可以写到一起,也可以分成不同的包路径,不做详细说明。

希望这个例子能帮助需要的人。谢谢大家支持。特殊声明:部分代码也参照网上的例子。

 

          

分享到:
评论

相关推荐

    hibernate入门例子

    hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子hibernate入门例子

    hibernate入门小例子

    【hibernate入门小例子】是一个适合初学者的教程,主要涵盖了如何在JavaWeb项目中使用Hibernate框架与MySQL数据库进行集成。在这个例子中,我们将会深入理解Hibernate的核心概念,包括实体映射、对象关系映射(ORM)...

    hibernate入门--第一个实例

    【hibernate入门--第一个实例】 Hibernate 是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。通过使用Hibernate,我们可以将数据库操作转换为对Java对象的操作,从而简化了数据库...

    Hibernate入门案例源码

    【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...

    hibernate的第一个例子

    **标题解析:**“hibernate的第一个例子”表明这是一个关于Hibernate框架的基础教程,主要目标是展示如何使用Hibernate进行数据持久化操作。 **描述分析:**描述提到这是一个超级简单的例子,包含一个持久化对象...

    Hibernate 的第一个例子

    在本文中,我们将深入探讨如何创建Hibernate的第一个例子,帮助初学者快速入门。** **一、Hibernate 简介** Hibernate 提供了丰富的API,简化了Java应用程序与关系数据库之间的交互。它通过XML配置文件或注解来定义...

    Hibernate入门例子

    **Hibernate入门例子** 在Java开发中,Hibernate是一个非常流行的Object-Relational Mapping(ORM)框架,它极大地简化了数据库操作,使开发者可以使用面向对象的方式来处理数据库事务。本教程将带你一步步了解如何...

    Spring+Struts2+hibernate入门例子

    Hibernate则是一个对象关系映射(ORM)工具,它简化了数据库操作,将Java对象与数据库表进行映射,使得开发者可以使用面向对象的方式来操作数据库。在SSH集成的例子中,Hibernate会负责数据持久化,通过实体类...

    Hibernate3入门例子

    通过这个简单的Hibernate3入门例子,你可以了解到如何在Java Web应用中使用Hibernate进行数据库操作,包括环境搭建、配置、实体类设计、映射文件编写以及基本的CRUD操作。随着对Hibernate的深入学习,你会发现它能极...

    hibernate的一个入门例子

    **hibernate入门示例详解** Hibernate 是一款强大的Java持久化框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层SQL语句。在这个入门例子中,我们将深入理解Hibernate的基本概念、配置以及如何...

    Struts & Hibernate入门实例

    在这个"Struts & Hibernate入门实例"中,我们将深入理解这两个框架的基本概念、工作原理以及如何在实际项目中整合使用。 Struts是一个开源的MVC框架,它提供了结构化的Web应用程序开发方式,帮助开发者更好地分离...

    MyEclipse8.5 Hibernate+mysql入门简单例子

    该例子可以先通过mysql建立数据库 利用myeclipse的逆向工程生成pojo(java简单对象),dao(数据库操作对象),hibernateSession类 快速构建数据库操作架构,适合初学者参考. 关于myeclipse的逆向工程视频可以参考myeclipse...

    hibernate入门的小例子.rar

    在这个“hibernate入门的小例子”中,我们将探讨如何利用Hibernate进行基本的数据操作,包括实体类的创建、配置文件的设定、Session的使用以及查询操作。 1. **实体类的创建**: 在Hibernate中,实体类是代表...

    Hibernate入门教程.pdf

    下面是一个简单的示例代码: ```java public class CategoryDAOImpl implements CategoryDao { @Override public void addCategory(Category category) { QueryRunner queryRunner = new QueryRunner(Utils2DB....

    Hibernate入门之自己写的小例子的总结

    以下是一个简单的步骤来创建和运行一个基于Hibernate的小例子: 1. **环境准备**: 首先,你需要安装Java集成开发环境(例如JB7.0)以及Hibernate库。在这个例子中,使用的是Hibernate 2.0.3版本,同时还需要...

    一个SSH的入门完整例子

    SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架组合,用于构建高效、可维护的企业级应用程序。在这个“一个SSH的入门完整例子”中,...这个入门例子将提供一个实践平台,帮助初学者快速上手SSH开发。

    Hibernate开发快速入门例子源代码

    本快速入门例子源代码旨在帮助初学者快速掌握Hibernate的使用方法。 首先,`.classpath`文件是Eclipse IDE中的配置文件,它包含了项目所需的类路径信息。在Hibernate开发中,这个文件会包含Hibernate库、JDBC驱动和...

    Hibernate入门 - 基础配置

    【Hibernate入门 - 基础配置】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入介绍Hibernate的基础配置和功能,帮助初学者快速入门。 一、ORM框架与...

    hibernate简 单例子

    本教程将通过一个简单的例子来介绍Hibernate的核心概念和基本用法。 【描述】:尽管描述中表达了对字数限制的不满,但我们可以专注于理解Hibernate的基础知识。在这个例子中,我们将学习如何设置Hibernate环境,...

Global site tag (gtag.js) - Google Analytics