`
lijunaccp
  • 浏览: 160443 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hibernate基本操作

阅读更多
1.准备条件:
1.1 创建hibernate2工程
1.2 导入hibernate包
1.3 创建hibernate2数据库,以及customers表
2.  Customers.java
 package com.hibernate2.bean;

import java.sql.Date;
import java.sql.Timestamp;

public class Customers {
	private Long id;
	private String name;
	private String email;
	private String password;
	private Integer phone;
	private String address;
	private char sex;
	private boolean is_married;
	private String description;
	private byte[] image;
	private Date birthday;
	private Timestamp registered_time;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getPhone() {
		return phone;
	}
	public void setPhone(Integer phone) {
		this.phone = phone;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public char getSex() {
		return sex;
	}
	public void setSex(char sex) {
		this.sex = sex;
	}
	public boolean isIs_married() {
		return is_married;
	}
	public void setIs_married(boolean isMarried) {
		is_married = isMarried;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public byte[] getImage() {
		return image;
	}
	public void setImage(byte[] image) {
		this.image = image;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public Timestamp getRegistered_time() {
		return registered_time;
	}
	public void setRegistered_time(Timestamp registeredTime) {
		registered_time = registeredTime;
	}
	
}

3. 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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
    <!-- 
    	<property name="format_sql">true</property>
    -->
    	<property name="show_sql">true</property>

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

</hibernate-configuration>

4.customers.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="com.hibernate2.bean.Customers" table="customers">
		<id name="id" column="id" type="long">
			<generator class="increment"></generator>
		</id>
		<property name="name" column="name" type="string"></property>
		<property name="email" column="email" type="string"></property>
		<property name="password" column="password" type="string"></property>
		<property name="phone" column="phone" type="integer"></property>
		<property name="address" column="address" type="string"></property>
		<property name="sex" column="sex" type="char"></property>
		<property name="is_married" column="is_married" type="boolean"></property>
		<property name="description" column="description" type="text"></property>
		<property name="image" column="image" type="binary"></property>
		<property name="birthday" column="birthday" type="date"></property>
		<property name="registered_time" column="registered_time" type="timestamp"></property>
	</class>
</hibernate-mapping>

5. HibernateTest.java
package com.hibernate2.bean;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.Iterator;
import java.util.List;

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

public class HibernateTest {

	private static SessionFactory sessionFactory;
	
	static{
		try{
			sessionFactory=new Configuration().configure().buildSessionFactory();
		}catch(Exception ex){
			System.out.println("创建sessionFactory时出错");
		}
	}
	
	private void saveCustomer(Customers cust){
		Session session=sessionFactory.openSession();
		Transaction tx=null;
		try{
			tx=session.beginTransaction();
			session.save(cust);
			tx.commit();
		}catch(Exception ex){
			System.out.println("保存数据时出错");
			if(tx!=null){
				tx.rollback();
			}
		}finally{
			session.close();
		}
		
	}
	
	@SuppressWarnings("unchecked")
	private void findAllCustomer(PrintStream out){
		Session session=sessionFactory.openSession();
		Transaction tx=null;
		try{
			tx=session.beginTransaction();
			String hql="from Customers as c order by c.name asc";
			Query query=session.createQuery(hql);
			List custs=query.list();
			for(Iterator it=custs.iterator();it.hasNext();){
				printCustomer((Customers)it.next(), out);
			}
			tx.commit();
		}catch(Exception ex){
			System.out.println("保存数据时出错");
			if(tx!=null){
				tx.rollback();
			}
		}finally{
			session.close();
		}
	}
	
	private void loadAndUpdateCustoemr(Long id,String address){
		Session session=sessionFactory.openSession();
		Transaction tx=null;
		try{
			tx=session.beginTransaction();
			Customers cust=(Customers)session.load(Customers.class, id);
			cust.setAddress(address);
			tx.commit();
		}catch(Exception ex){
			System.out.println("保存数据时出错");
			if(tx!=null){
				tx.rollback();
			}
		}finally{
			session.close();
		}
	}
	
	@SuppressWarnings("unchecked")
	private void deleteCutomer(Customers cust){
		Session session=sessionFactory.openSession();
		Transaction tx=null;
		try{
			tx=session.beginTransaction();
			List custs=session.createQuery("from Customers").list();
			for(Iterator it=custs.iterator();it.hasNext();){
				session.delete(it.next());
			}
			tx.commit();
		}catch(Exception ex){
			System.out.println("保存数据时出错");
			if(tx!=null){
				tx.rollback();
			}
		}finally{
			session.close();
		}
	}
	
	private void printCustomer(Customers cust,PrintStream out) throws Exception{
		OutputStream output=new FileOutputStream("new_photo.gif");
		byte[] buffer=cust.getImage();
		output.write(buffer);
		
		out.println("--------------以下是"+cust.getName()+"的信息-----------------------");
		out.println("ID:"+cust.getId());
		out.println("name:"+cust.getName());
		out.println("email:"+cust.getEmail());
		out.println("password:"+cust.getPassword());
		out.println("phone:"+cust.getPhone());
		out.println("address:"+cust.getAddress());
		out.println("sex:"+cust.getSex());
		String married=cust.isIs_married()==true?"已婚":"未婚";
		out.println("is_married:"+married);
		out.println("description:"+cust.getDescription());
		out.println("birthday:"+cust.getBirthday());
		out.println("registered_time:"+cust.getRegistered_time());
		
	}
	
	private void test(PrintStream out) throws Exception{
		Customers customer=new Customers();
		customer.setName("zs");
		customer.setEmail("zs@163.com");
		customer.setPassword("123");
		customer.setPhone(123456789);
		customer.setAddress("a new address");
		customer.setSex('男');
		customer.setIs_married(true);
		customer.setDescription("a new description");
		InputStream in=this.getClass().getResourceAsStream("photo.gif");
		byte[] buffer=new byte[in.available()];
		in.read(buffer);
		customer.setImage(buffer);
		customer.setBirthday(Date.valueOf("1980-1-1"));
		
		saveCustomer(customer);
		
//		findAllCustomer(out);
		
		loadAndUpdateCustoemr(customer.getId(), "update address");
		
//		deleteCutomer(customer);
		
	}
	
	public static void main(String[] args) throws Exception{
		new HibernateTest().test(System.out);
		sessionFactory.close();
	}
}


分享到:
评论

相关推荐

    Hibernate基本数据操作方法

    Hibernate基本数据操作方法 java struts hibernate

    hibernate基础jar包

    这个压缩包包含了Hibernate的基础jar包,这些jar文件是开发Hibernate应用所必需的库文件,它们提供了Hibernate的核心功能和相关依赖。同时,还包含了Junit4测试工具,这是进行单元测试的常用框架,对于确保代码质量...

    hibernate环境搭建基本操作封装

    本文将详细介绍如何进行Hibernate环境搭建,以及如何进行基本操作的封装,我们将以MySQL开源数据库作为数据存储后端。 一、Hibernate环境搭建 1. **安装MySQL数据库**: 首先,你需要在本地或者服务器上安装MySQL...

    hibernate基本jar包

    总的来说,这个"hibernate基本jar包"为Java开发者提供了完整的Hibernate ORM框架,能够高效、便捷地进行数据库操作,提高开发效率。不过,需要注意的是,随着Java和Hibernate版本的更新,这些库文件可能会有所变化,...

    Hibernate 基础.ppt

    【Hibernate 基础】是Java开发中一个重要的部分,主要关注如何将对象模型与关系数据库进行映射,以简化数据库操作。本PPT由传智播客制作,旨在帮助学习者掌握Hibernate的基础知识和应用。 首先,我们需要理解基于B/...

    基于hibernate的baseDao

    本压缩包提供的"baseDAO"文件,包含了一个详细注释的BaseDAO实现,旨在提供一种易于理解和使用的Hibernate基础操作模板。 1. **Hibernate框架简介** Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java...

    Hibernate数据库操作实例.zip

    1. **Hibernate基本概念**:了解Hibernate的核心组件,如Configuration、SessionFactory、Session、Transaction以及Criteria API、HQL(Hibernate Query Language)。 2. **实体类与表的映射**:学习如何通过注解或...

    Hibernate基础jar包

    本篇文章将深入探讨`Hibernate基础jar包`的构成,以及它们在Java Hibernate框架中的作用。 首先,Hibernate的核心jar包是实现ORM功能的基础。这些jar包包括但不限于以下: 1. **hibernate-core.jar**:这是...

    Hibernate操作数据库的方法

    上述代码展示了Hibernate在插入更新和删除操作时的基本流程。在实际应用中,开发者需要根据具体的业务逻辑和需求来调整代码,例如,在插入更新操作时,可能需要根据主键是否已存在来决定是插入新记录还是更新现有...

    hibernate 简单CRUD操作

    CRUD是创建(Create)、读取(Read)、更新(Update)和删除(Delete)的首字母缩写,是数据库管理的基本操作。在Hibernate中,我们可以便捷地进行这些操作。 1. **创建(Create)** - 在Hibernate中,我们首先...

    hibernate基础教程.pdf

    **Hibernate 框架概述** Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来...理解并熟练掌握 Hibernate 的基本概念、配置、操作及优化策略,对于开发高效、稳定的 Java 应用至关重要。

    HibernateDemo(hibernate基本用法演示)

    `HibernateDemo(hibernate基本用法演示)` 是一个针对 Hibernate 框架的基础操作示例项目。Hibernate 是一款强大的 Java ORM(对象关系映射)框架,它允许开发者在 Java 应用程序中以面向对象的方式处理数据库交互,...

    HIbernate基础包

    1. Hibernate的核心库:包括`hibernate-core`,它包含了Hibernate的基本API和实现,如Session接口、Transaction管理等。 2. 数据库驱动:根据实际使用的数据库(如MySQL、Oracle等),需要对应的JDBC驱动库。 3. ...

    struts2+hibernate实现登录及增删改操作

    4. **增删改操作**:增删改操作是任何数据管理应用的基础。在Struts2+Hibernate的环境中,新增数据时,创建一个新的实体对象,设置属性,然后通过Hibernate的Session保存到数据库;删除操作通常是根据ID查找对象,...

    Hibernate基本配置演示

    **Hibernate基本配置演示** 在Java开发中,Hibernate是一款强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用Java对象来处理数据。这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利...

    hibernate基础 入门/ hibernate basic

    ### Hibernate基础知识点详解 #### 一、什么是对象关系映射(ORM)以及为什么使用ORM? 在企业级应用开发中,持久层(persistence layer)占据了非常重要的地位。它主要负责处理与数据库之间的交互,包括数据的...

    hibernate入门实例操作步骤

    **hibernate入门实例操作步骤** Hibernate是一款强大的Java对象关系映射(ORM)框架,它...熟悉这些基本操作后,就可以进一步学习更高级的Hibernate特性,如懒加载、缓存、事务管理等,以提升开发效率和应用程序性能。

Global site tag (gtag.js) - Google Analytics