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

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
分享到:
评论

相关推荐

    Eclipse快速搭建Springboot项目

    Eclipse快速搭建Springboot项目

    Hibernate开发学习手册

    为了让读者快速入门,本章将从搭建开发环境入手,按照实际开发流程介绍Hibernate的具体配置,然后通过具体实例介绍在不同开发工具上创建Hibernate实例的方法。 本章包括以下内容:  ● 安装和配置JDK1.5  ● 安装...

    ssh框架快速搭建详细教程

    idea集成开发环境下的,用mysql快速搭建ssh(struts2+spring+hibernate)矿建,超详细教程,有实例供参考,方便快速入门

    Java Web整合开发实战:基于Struts 2+Hibernate+Spring(PDF)

    2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 Struts之数据校验与GJ化 7章 详解Struts之标签库 8章 Struts之拦截器使用技巧 9...

    hibernate+spring+sturts项目案例(含jar包)

    hibernate+spring+sturts项目案例包含所用到的jar包,代码中重要地方提供注释。适合新手以及熟练的朋友快速搭建ssh项目环境。你还在犹豫什么~

    SSH环境搭建

    最基本的环境配置,有全面的jar包和配置文件,没有任何多余的东西,开发工具MyEclipse7.0,直接导入即可部署运行,struts 2.2.3.1+spring 3.1.1+hibernate 3.6.7,jdk 1.5+ tomcat 6,方便快速搭建开发环境,压缩包...

    快速准确搭建好SSH框架开发环境

    在java web开发中我们总是一直专注于传统的编程方式,但是利用Stuts + Hibernate + Spring框架会让你的编程变得更加的简单高效

    SpringBootDemo:基于SpringBoot快速搭建Java Web 服务器端模块化开发框架

    基于SpringBoot快速搭建Java Web 服务器端模块化开发框架 IDE:MyEclipse 2017 JAVA环境:jdk8 数据库环境:MySql 项目管理工具:maven 技术关键词:Spring Boot,Spring MVC,Spring Data,Spring Security,Hibernate,...

    搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate,完整扫描版

    然后对java web环境的建立、数据库的搭建、一些基本技术(比如javascript、jsp、servlet、jdbc)进行了讲解;接着对ajax、struts 2、spring 3、hibernate 3进行了讲解;又对log4j、dom4j、junit和 jfreechart等工具...

    Java开源框架快速上手指南集合

    收集了全套的极速开发指南中文版 让你可以在最短时间掌握Spring,Hibernate,Ibatis,Tapestry。快速搭建自己的开发环境。

    MyBatis快速入门之环境搭建和单表映射

    一说起对象关系映射框架,大家第一时间想到的肯定是Hibernate。Hibernate作为一个著名的框架,功能十分强大。但是由于Hibernate如此强大的功能,导致了它的缺点。好吧,不多说了,具体详情大家通过本文一起学习吧

    Lucene4.6+Solr4.6实战开发垂直搜索引擎视频课程

    17.lucene4.6快速搭建 18.lucene4.6索引的相关操作 19.lucene4.6的各种Query(1) 20.lucene4.6的各种Query(2) 21.lucene4.6的各种Query(3) 22.solr4.6的快速搭建 23.solr4.6索引的相关操作 24.solr4.6搜索的相关参数...

    ssh2(struts2+spring2.5+hibernate3.3)自动生成模版

    在网上search了这样的插件,以及相关的源码,对jsmart映象比较深,试用该插件后发现功能虽然强大(能够生成各种框架的环境搭建,以及fck等编辑器的初始化),但是发现有很多的规则受限制: 1.每次自动生成的代码都是一次...

    低清版 大型门户网站是这样炼成的.pdf

    2.3.1 struts 2应用开发环境的搭建 62 2.3.2 struts 2应用基本开发步骤—搭建eportal应用 69 2.3.3 struts 2中集成fckeditor 80 2.3.4 struts 2中集成displaytag 83 2.4 struts 2国际化实现 85 2.4.1 web应用的...

    Java毕业设计-基于JAVA的安全电子商务(论文).rar

    基于JAVA的安全电子商务系统是...通过使用本资源,企业可以快速搭建一个安全、稳定的电子商务平台,提升企业的竞争力和市场占有率。同时,也为Java开发者提供了一个实践和学习的机会,有助于提升其技术水平和综合能力。

    LaySSH快速开发框架

    LaySSH是基于LayUI+SpringMVC+Spring+Hibernate+Mysql搭建而成,内置代码生成器,能够快速生成增删改查代码,节省开发时间,快速构建企业级的web应用系统。 该框架具备一整套完整的权限管理系统,代码简洁,容易...

    E_shop:基于struts + hibernate + spring + easyui + mysql的网上商城项目实战

    这是每个工程都少不了的介入,而且也会出现很多乱七八糟的问题,刚开始学SSH的时候,总是苦于搭建环境,因为不太熟练,但是熟练了就好了,主要是要“有节奏的”去建造,初始化构造一个环境工程得一步步来,很多人...

    JeeWeb敏捷开发平台

    它是一款具有代码生成功能的智能快速开发平台;是以Spring Framework为核心容器,Spring MVC为模型视图控制器,Hibernate为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Disruptor作为并发...

    SSH三大框架经典入门教程(教程文档大全) 中文PDF完整版

    SSH三大框架经典入门教程共有4章,以非常通俗易懂的方式,向我们介绍Struts、Spring、Hibernate三大现在比较流行的JAVA_WEB开发框架,非常适合刚刚接触的朋友快速入门。 资料包含:领略清晰的MVC流程- --- Struts...

    JSP环境美容服务公司网站(lw+系统+摘要).zip

    通过以上技术选择和框架搭建,该项目可以实现一个高性能、可扩展性强的Web应用程序。开发人员可以基于框架提供的功能和组件进行快速开发,减少重复代码的编写,提高开发效率。同时,使用MySQL作为数据存储,可以保证...

Global site tag (gtag.js) - Google Analytics