`
tonyJ
  • 浏览: 142460 次
  • 性别: 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
分享到:
评论

相关推荐

    Hibernate入门示例.doc

    Hibernate入门示例

    hibernate入门示例代码

    hibernate入门示例代码

    hibernate入门示例

    hibernate入门示例

    dwr + hibernate 入门示例代码

    dwr + hibernate写的一个检测用户名是否可用的简单代码,非常适合初学者.附件中包含dwr和hibernate等第三方lib,以及数据库建表语句,对本示例作了简要说明

    hibernate入门小示例

    hibernate入门小示例,平台环境 myeclipse + oracle, 使用junit对hibernate的简单增删改查进行验证,并实现日志记录。

    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 入门: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示例,源码,导入可运行。

    Hibernate入门示例

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

    hibernate3完整入门示例含jar包

    NULL 博文链接:https://xieye.iteye.com/blog/1606851

    Hibernate的入门(Idea下使用Hibernate详细示例)

    通过示例讲解从数据库到实体类,从实体类到数据库的映射关系,讲解包括:集合映射和继承映射。

    hibernate示例

    hibernate示例,包含增删改查,方便初学者理解,更快速入门

    MyEclipse Hibernate 快速入门(电子书)

    这个快速入门展示了使用 MyEclipse Enterprise Workbench 开发 Hibernate 的基本功能, 概念和技术. 我们将全程带领你来开发一个非常简单的 Java Hibernate 应用. 对于这个教程没有包含到的问题和概念, 我们推荐你去...

    Hibernate框架资料

    有Hibernate的帮助文档,hibernate2.1.2参考手册中文版,hibernate 2 安装手记,hibernate相关原理与配置快速入门,hibernate入门示例,Hibernate原理与配置快速入门,Hibernate建模工具CowNewStudio1.0.3等等一些...

    hibernate 快速入门 中文版

    hibernate 快速入门 中文版 翻译: 刘长炯 前言 准备工作 介绍 Hibernate 一览 创建 HibernateDemo 项目 使用 HQL 编辑器 测试 HibernateDemo 应用 使用示例 HibernateDemo 项目 总结 用户反馈 资源

    Hibernate入门

    本章重点 Hibernate的简介及配置 第一个Hibernate示例 能够让你更好的理解Hibernate

    Hibernate 用法实例

    本书 大量的实例代码更容易提高读者对 hibernate的理解,从而提高;从基础的入门到 各个实例,包含hibernate的所有用法;

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    Myeclipse开发struts+hibernate+spring新手入门---环境配置----项目开发示例 Myeclipse开发struts+hibernate+spring小记 开发前准备工作: 1、下载eclipse3.1版本 下载地址: 2、下载Myeclipse插件 下载地址: 3...

Global site tag (gtag.js) - Google Analytics