`
tonyJ
  • 浏览: 145087 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

hibernate入门示例展示

 
阅读更多
有很长一段时间没有使用hibernate进行开发了,最近闲来无事,温习一下hibernate开发。搭建hibernate开发环境,下载hibernate3.3.2的jar包。所用数据库是mysql。
  在使用hibernate3.3.2中要注意以下问题:
  Exception in thread "main" java.lang.NoClassDefFoundError:  org/slf4j/helpers/NOPLoggerFactory
这是由于hibernate-distribution-3.3.2.GA中的带有的slf4j-api-1.5.8和最新下载的slf4j-1.6.1不兼容造成的,下载一个slf4j-1.5.8包就解决问题了。

一、导入hibernate使用的Jar包

   见jar.jpg的图

二、配置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>

		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.show_sql">true</property>

		<property name="connection.url">
			jdbc:mysql://localhost:3306/test
		</property>
		<property name="connection.username">root</property>
		<property name="connection.password">sa</property>
		<property name="connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<mapping resource="org/outman/domain/User.hbm.xml" />
	</session-factory>
</hibernate-configuration>



三、创建User的bean
   部分代码如下:
public class User implements java.io.Serializable {
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String name;
	private String pwd;
	private Boolean verify;
	private Date registerDate;
	private BigDecimal salary;
         ......
}

并配置User的映射文件:
<?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="org.outman.domain">
	<class name="User" table="t_user">
		<!--id name="id" type="integer" column="_id">
			<generator class="identity" />
			</id-->
		<!-- Oracle -->
		<!--id name="id" type="integer" column="_id">
			<generator class="sequence">
			如果不写,Hibernate建默认的sequence
			<param name="sequence">user_seq</param>
			</generator>
			</id-->

		<id name="id" type="integer" column="_id">
			<!-- Hibernate根据方言来确定 identity、sequence、... -->
			<generator class="native">
				<param name="sequence">user_seq</param>
			</generator>
		</id>
		<property name="name" type="string" column="_name" />
		<property name="pwd" type="string" column="_pwd" />
		<property name="verify" type="yes_no" column="_verify" />
		<property name="registerDate" type="date"
			column="_register_date" />
		<property name="salary" type="big_decimal" column="_salary" />
	</class>
</hibernate-mapping>


四 、导入数据库生成表结构的工具类
package org.outman.util;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportDB {
	public static void main(String[] args) {
		// 读取hibernate.cfg.xml文件
		Configuration cfg = new Configuration().configure();
		SchemaExport export = new SchemaExport(cfg);
		export.create(true, true);
	}
}


还有一个工具类如下:
package org.outman.util;

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

public class HibernateUtil {
	private static SessionFactory factory;

	private static Configuration conf;

	static {
		conf = new Configuration();
		conf.configure();
		factory = conf.buildSessionFactory();
	}

	public static Session openSession() {
		return factory.openSession();
	}
}



五、测试类
package org.outman.test;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import junit.framework.TestCase;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.outman.domain.User;
import org.outman.util.HibernateUtil;

public class MyTest extends TestCase {
	public void testSaveUser() {
		// 调用 Hibernate API
		// 加载配置文件
		Configuration conf = new Configuration();
		// 按照默认的路径和文件名装载配置文件
		conf.configure(); // hibernate.cfg.xml
		// conf.configure(File file);
		// conf.addClass(User.class);
		// 装载和User类对应的映射文件
		// User.hbm.xml
		// 1 重量级的对象
		// 2 线程安全的对象
		SessionFactory factory = conf.buildSessionFactory();
		// Session提供了ORM操作的接口
		// 相当于JDBC的Connection
		Session session = null;
		Transaction tx = null;
		try {
			session = factory.openSession();
			User user = new User();
			user.setName("java");
			user.setPwd("123456");
			user.setVerify(false);
			user.setRegisterDate(new Date());
			user.setSalary(new BigDecimal("12345.67"));
			tx = session.getTransaction();
			tx.begin();
			session.save(user);
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			tx.rollback();
		} finally {
			session.close();
		}
	}

	
	public void testDeleteUser() {
		Session session = HibernateUtil.openSession();
		Transaction tx = session.getTransaction();
		tx.begin();
		User user = new User();
		user.setId(8);
		session.delete(user);
		tx.commit();
		session.close();
	}

	public void testGetUser() {
		Session session = HibernateUtil.openSession();
		// 延缓加载
		// User user = (User) session.load(User.class, 9);
		User user = (User) session.get(User.class, 9);
		System.out.println("----------");
		System.out.println(user.getName() + "," + user.getPwd());
		session.close();
	}

	public void testUpdateUser() {
		Session session = HibernateUtil.openSession();
		Transaction tx = session.getTransaction();
		tx.begin();
		User user = new User();
		user.setId(1);
		user.setName("java");
		user.setPwd("88888888");
		session.update(user);
		// session.saveOrUpdate(user);
		tx.commit();
		session.close();
	}

	@SuppressWarnings("unchecked")
	public void testQueryUser() {
		Session session = HibernateUtil.openSession();

		// HQL Hibernate Query Language
		// SQL
		Query query = session.createQuery("from User u where u.name=?");
		query.setParameter(0, "java");

		// Iterator<User> it = query.iterate();
		// while (it.hasNext()) {
		// User user = it.next();
		// System.out.println(user.getName() + "," + user.getPwd());
		// }

		List<User> userList = query.list();

		for (User user : userList) {
			System.out.println(user.getName() + "," + user.getPwd());
		}

		session.close();
	}
}
  • 描述: jar包图
  • 大小: 29.7 KB
分享到:
评论

相关推荐

    dwr + hibernate 入门示例代码

    《DWR + Hibernate入门示例代码详解》 在IT领域,DWR(Direct Web Remoting)和Hibernate是两个非常重要的工具,它们分别处理Web应用程序的远程调用和对象关系映射。本文将深入探讨如何结合DWR与Hibernate,通过一...

    Hibernate入门示例.doc

    【Hibernate入门示例】 Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式处理数据库事务。在本文中,我们将深入探讨Hibernate的核心概念,包括配置...

    hibernate入门示例代码

    **Hibernate 框架概述** Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作。在 Java 开发中,Hibernate 提供了一种桥梁,将传统的 SQL 数据库操作转化为更加灵活、...

    hibernate3完整入门示例含jar包

    **标题:“Hibernate3完整入门示例含jar包”** Hibernate是一个强大的Java库,它作为对象关系映射(ORM)框架,使得开发人员可以更轻松地处理数据库操作。在这个压缩包中,包含的是Hibernate3的入门示例,以及必要...

    hibernate入门示例

    【hibernate入门示例】 Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者以面向对象的方式操作数据库。在这个入门示例中,我们将深入理解Hibernate的基本概念、配置以及如何通过它来实现数据的...

    hibernate入门小示例

    **hibernate入门小示例** 在这个入门教程中,我们将探讨如何使用Hibernate框架在MyEclipse集成开发环境中,配合Oracle数据库进行基本的CRUD(创建、读取、更新和删除)操作。同时,我们还将利用JUnit进行单元测试,...

    hibernate-3.4 注解 入门简单示例

    hibernate-3.4入门的简单示例,用注解的方式操作oracle数据库。源码导入可运行。 还包括hibernate-annotations-3.4.0.GA.zip、hibernate-distribution-3.3.2.GA-dist.zip、slf4j-1.5.8.zip、ojdbc14.jar

    初学hibernate,hibernate入门

    **初学Hibernate,Hibernate入门** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。在Java应用中,通过Hibernate,开发者可以将数据库操作抽象成对象模型,使得代码...

    hibernate 入门:10分钟跑起这个hibernate 示例程序 (图解)

    hibernate 入门:10分钟跑起这个hibernate 示例程序 (图解、附源码http://download.csdn.net/source/650851)

    完整Hibernate入门配置示例

    Hibernate3.3.1,MySQL5.1.36 独立的Java Application源程序,完整的Hibernate3.3.1入门级(配置)完整示例. 未用Eclipse或MyEclipse,JC几乎纯手工实现,含所需库文件. 2009-12-15

    spring4mvc_hibernate4入门示例

    《Spring4MVC与Hibernate4入门实战指南》 在当今的Java Web开发领域,Spring MVC和Hibernate是两个不可或缺的重要框架。Spring4MVC作为Spring框架的一部分,提供了强大的模型-视图-控制器(MVC)架构支持,而...

    Hibernate入门教程.pdf

    ### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...

    Hibernate入门示例

    Hibernate是一个开放源代码的O/R Mapping (对象关系映射框架),它对JDBC进行了轻量级...而本文通过几个简单的示例抛砖引玉,让读者可以快速的上手,学会在jbuilder下配置hibernate,并利用hibernate与数据库进行交互。

    MyEclipse Hibernate 快速入门中文版

    《MyEclipse Hibernate 快速入门中文版》是专为初学者设计的指南,旨在帮助开发者迅速掌握在MyEclipse集成开发环境中使用Hibernate框架的基本操作和应用。此资源包括一个HTML文档(MyEclipse_Hibernate_Quickstart_...

    hibernate入门

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中操作数据库,而无需直接编写SQL语句。...通过阅读文档、参考书籍和编写示例代码,可以深入理解和掌握Hibernate。

    hibernate入门源代码

    **Hibernate入门源代码详解** Hibernate 是一款开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个资源包包含了“chapter07”目录下的源代码,是学习Hibernate基础知识的理想起点。让...

    Hibernate快速入门教程

    【Hibernate快速入门教程】 在Java开发中,Hibernate是一个非常重要的框架,它实现了对象关系映射(ORM)技术,使得开发者可以使用面向...这个快速入门教程提供了清晰的步骤和简单的示例,是学习Hibernate的绝佳起点。

    hibernate入门数据简单插入

    这个文件可能包含了关于Hibernate入门的初步讲解,包括基本概念、环境配置、简单数据插入的示例代码等。 **总结** Hibernate作为Java的ORM框架,简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层...

    hibernate入门代码(附有测试代码)

    本压缩包提供了一个基础的Hibernate入门示例,包括了必要的配置文件和测试代码,适合初学者学习理解Hibernate的工作原理。 1. **Hibernate概述** Hibernate是一个开源的ORM框架,它将Java类与数据库表进行映射,...

Global site tag (gtag.js) - Google Analytics