`
wangxinxin1212
  • 浏览: 29790 次
社区版块
存档分类
最新评论

hibernate 环境快速搭建

阅读更多



 时间长了对hibernate的基础使用有点生疏,于是决定重新温习一下。

 

一.登录hibernate官方,下载hibernate相关jar包。

 



 

 



 将下载的压缩包解压:在该hibernate-release-4.2.20.Final\lib\required 路径下的找到hibernate所需要的jar包,将该目录下所有jar包加入工程。

二.hibernate配置文件。

配置文件可以在快速开始文档的工程里找到 参考路径:hibernate-release-4.2.20.Final\documentation\quickstart\en-US\html\files,在该文件下有一个压缩包,将其解压,可以看到示例工程,随便一个工程都能找到配置文件

下面是basic工程的配置文件

<?xml version='1.0' encoding='utf-8'?>
<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ Copyright (c) 2010, Red Hat Inc. or third-party contributors as
  ~ indicated by the @author tags or express copyright attribution
  ~ statements applied by the authors.  All third-party contributions are
  ~ distributed under license by Red Hat Inc.
  ~
  ~ This copyrighted material is made available to anyone wishing to use, modify,
  ~ copy, or redistribute it subject to the terms and conditions of the GNU
  ~ Lesser General Public License, as published by the Free Software Foundation.
  ~
  ~ This program is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
  ~ for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public License
  ~ along with this distribution; if not, write to:
  ~ Free Software Foundation, Inc.
  ~ 51 Franklin Street, Fifth Floor
  ~ Boston, MA  02110-1301  USA
  -->
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.h2.Driver</property>
        <property name="connection.url">jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"/>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.H2Dialect</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property>

        <mapping resource="org/hibernate/tutorial/hbm/Event.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

 

找到对应位置,更换自己的数据库就好了。

三.创建测试用例。

Student类:

package com.daxingzsh.po;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "STUDENT")
public class Student {

	private String sId;
	private String sName;
	private String sSex;
	
	private Classes classes;

	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	@Column(name = "S_ID")
	public String getsId() {
		return sId;
	}

	public void setsId(String sId) {
		this.sId = sId;
	}

	@Column(name = "S_NAME")
	public String getsName() {
		return sName;
	}

	public void setsName(String sName) {
		this.sName = sName;
	}

	@Column(name = "S_SEX")
	public String getsSex() {
		return sSex;
	}

	public void setsSex(String sSex) {
		this.sSex = sSex;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CLASS_ID")
	public Classes getClasses() {
		return classes;
	}

	public void setClasses(Classes classes) {
		this.classes = classes;
	}

	@Override
	public String toString() {
		return "Student [sId=" + sId + ", sName=" + sName + ", sSex=" + sSex
				+ ", classes=" + classes + "]";
	}

	
}

 Classes类:

package com.daxingzsh.po;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;


@Entity
@Table(name = "CLASSES_TABLE")
public class Classes {

	private String classId;
	private String className;

	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	@Column(name = "CLASS_ID")
	public String getClassId() {
		return classId;
	}

	public void setClassId(String classId) {
		this.classId = classId;
	}

	@Column(name = "CLASS_NAME")
	public String getClassName() {
		return className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

}

 

Student与Classes为N-1(多对一)关系。由于在配置文件中配置了

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

 属性,这里hibernate将自动创建数据库表(如果已存在表,则会被删除)。

 更改hibernate配置文件,添加mapping映射

<mapping class="com.daxingzsh.po.Student"/>
<mapping class="com.daxingzsh.po.Classes"/>

 

四.测试代码:

package com.daxingzsh.test;

import java.util.List;

import junit.framework.TestCase;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;

import com.daxingzsh.po.Classes;
import com.daxingzsh.po.Student;

public class MyTest extends TestCase{
	
	private SessionFactory sessionFactory;
	private Session session;
	
	@Override
	protected void setUp() throws Exception {
		System.out.println("init ...");
		sessionFactory = new Configuration().configure().buildSessionFactory();
	}

	@Override
	protected void tearDown() throws Exception {
		if(sessionFactory != null)
			sessionFactory.close();
	}
	
	@Test
	public void testSearch(){
		test();
		session = sessionFactory.openSession();
		session.beginTransaction();
		Criteria cri = session.createCriteria(Student.class);
		cri.createAlias("classes", "c1");
		cri.add(Restrictions.eq("c1.className", "class1"));
		List<Student> list = cri.list();
		for(Student st : list){
			System.out.println(st.toString());
		}
		
//		Criteria cri2 = cri.createCriteria("classes");
//		cri2.add(Restrictions.eq("className", "class1"));
//		List<Student> list1 = cri2.list();
//		for(Student st : list1){
//			System.out.println(st.toString());
//		}
		
		session.getTransaction().commit();
		session.close();
	}

//	@Test
	public void test() {
		System.out.println("start.....");
		session = sessionFactory.openSession();
		session.beginTransaction();
		Student s = new Student();
		s.setsName("daxin"); s.setsSex("男");
		Classes classes = new Classes();
		classes.setClassName("class1");
		s.setClasses(classes);
		session.save(classes);
		session.save(s);
		session.getTransaction().commit();
		session.close();
		System.out.println("end ....");
	}

}

 经过测试则表明hibernate已经配置好了。

 特别说明:hibernate的最新版本已经更新到5.0。

 

  • 大小: 56.9 KB
  • 大小: 40.5 KB
  • 大小: 65 KB
0
2
分享到:
评论

相关推荐

    Hibernate环境搭建案例

    本案例将详细讲解如何进行Hibernate环境的搭建,以帮助初学者快速入门。 首先,我们需要准备以下基础环境: 1. **JDK安装**:Hibernate是基于Java的,所以首先确保已经安装了Java Development Kit(JDK),并且...

    hibernate环境搭建所用包

    10. `hibernate-tools.jar`(可能遗漏在提供的列表中,但通常在Hibernate环境搭建中会用到):这个库包含了Hibernate的反向工程和代码生成工具,可以帮助开发者快速地从数据库生成Java实体类和映射文件。 以上就是...

    springmvc3.1+hibernate3环境搭建架包

    在本环境中,我们将会探讨如何利用Spring MVC 3.1和Hibernate 3搭建一个完整的开发环境。 Spring MVC是Spring框架的一部分,它提供了一种优雅的方式来组织和处理Web应用程序的请求。3.1版本引入了一些增强的功能,...

    springmvc+hibernate+mysql环境搭建

    以下将详细介绍如何搭建一个基于SpringMVC、Hibernate和MySQL的开发环境。 1. **SpringMVC**:SpringMVC是Spring框架的一部分,它是一个轻量级的Web MVC框架,提供了一种灵活的方式来组织和构建Web应用程序。在搭建...

    马士兵老师搭建hibernate环境时用到的jar包

    本资源是他在教授如何搭建Hibernate环境时所使用的jar包集合,旨在帮助学员快速配置开发环境,避免在寻找和集成依赖上浪费过多时间。 Hibernate框架的核心功能包括实体管理、事务处理、查询语言(HQL)以及缓存机制等...

    maven+spring4+hibernate4环境搭建

    在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+Spring4+Hibernate4"的组合就是一种常见的开发框架,用于快速搭建Java Web项目。这个环境搭建过程涉及了三个关键组件:Maven作为项目管理和构建工具,...

    myeclipse搭建hibernate框架

    本文将详细介绍如何在MyEclipse环境中搭建Hibernate框架,以便于进行Java Web应用的开发。 首先,我们需要进行必要的准备工作。安装MyEclipse是搭建环境的第一步,它是一个强大的集成开发环境,支持多种Java应用的...

    springMVC+hibernate搭建的一个demo帮助新人

    这个“springMVC+hibernate搭建的一个demo”旨在为初学者提供一个快速入门的实例,帮助他们理解和配置这些技术的集成环境。 SpringMVC是Spring框架的一部分,它提供了处理HTTP请求、管理控制器、数据绑定、视图解析...

    hibernate5.2+SpringMVC4.3框架搭建源码

    总之,Hibernate 5.2与Spring MVC 4.3的集成搭建涉及环境配置、数据库连接、实体映射、Spring MVC配置、Controller、Service、DAO等多个层面。理解并熟练掌握这些知识点,能够帮助开发者快速构建出健壮且功能完善的...

    Hibernate快速入门教程

    首先,我们需要搭建Hibernate的开发环境。创建一个名为`HibernateDemo`的Java工程,然后导入Hibernate的核心库,包括`hibernate3.jar`以及`lib`目录下的所有jar包。如果使用最新版本的Hibernate,可能需要7个基本的...

    Hibernate入门到精通

    要使用 Hibernate,首先需要搭建 Hibernate 的开发环境。下面是 Hibernate 环境搭建的主要步骤: 1. 映射配置文件 在 Hibernate 中,映射配置文件(hibernate.cfg.xml)是用于配置 Hibernate 的核心配置文件。该...

    SpringMVC完整框架搭建(springMVC+Hibernate)

    下载此项目后,开发者可以直接在已有的基础上添加自己的业务逻辑,无需从零开始搭建环境。 总之,SpringMVC与Hibernate的结合提供了一个强大且灵活的Web应用开发框架。通过注解驱动的编程方式,可以极大地提高开发...

    SSH框架简单快速搭建MyEcplise 2013(spring2.5+struts2.1+hibernate3.1)

    本文档将指导您如何使用MyEclipse 2013集成开发环境快速搭建SSH框架(Spring 2.5、Struts 2.1 和 Hibernate 3.1)。SSH框架是一种广泛应用于Java Web项目的开发框架,通过整合Spring、Struts和Hibernate三个强大的...

    flex 4.5+BlazseDS+Spring3+Hibernate3.3开发环境搭建

    ### Flex 4.5 + BlazseDS + Spring3 + Hibernate3.3 开发环境搭建详解 #### 核心知识点: 1. **Flex 4.5**:Adobe Flex 是一个...通过上述步骤,开发者可以快速搭建起一个功能强大、易于扩展的企业级应用开发平台。

    myeclipse快速搭建hibernate完成Dept,Emp的CRUD

    本主题将详细讲解如何使用MyEclipse快速搭建一个基于Hibernate的项目,并实现Dept(部门)和Emp(员工)实体类的CRUD(创建、读取、更新、删除)操作。我们将结合Struts2框架,利用JSON进行数据传输,以及实现分页...

    孔浩-整合Hibernate实现一个用户之环境搭建

    本教程将围绕“孔浩”老师讲解的整合Hibernate实现一个用户环境的搭建展开,旨在帮助开发者快速理解和应用Hibernate。 首先,我们需要理解Hibernate的基本概念。Hibernate是一个开放源代码的Java ORM框架,它允许...

    Eclipse快速搭建Springboot项目

    Eclipse快速搭建Springboot项目 Eclipse 快速搭建 Springboot 项目是一篇详细的 Springboot 项目搭建教程,旨在帮助开发者快速搭建 Springboot 项目并整合 Cloud 相关组件。下面是该项目搭建的详细步骤和相关知识点...

    MyEclipseHibernate快速入门中文版

    这通常会包含创建Hibernate项目、配置Hibernate环境、编写实体类、映射文件、数据库连接以及运行查询等方面的基础教程内容。 【标签】"MyEclipse Hibernate 快速入门 中文版"强调了教程的关键点,即使用MyEclipse ...

Global site tag (gtag.js) - Google Analytics