文档章节

在JAVA EE中配置hibernate以及hibernate hello world

阮少爷
 阮少爷
发布于 2017/03/29 19:56
字数 1023
阅读 91
收藏 0

这篇文章主要介绍hibernate的配置以及如何实现hello world。至于如何使用maven等工具获取到hibernate的jar文件以及配置文件请大家自行解决。

注意,在eclipse中使用hibernate需要先下载其插件。

 

1.hibernate介绍:

         hibernate核心内容是ORM(关系对象模型)。可以将对象自动的生成数据库中的信息,使得开发更加的面向对象。这样作为程序员就可以使用面向对象的思想来操作数据库,而不用关心繁琐的JDBC。所以,Hibernate处于三层架构中的D层(持久层)。

     通俗的讲:hibernate是关系--对象映射框架,意思就是hibernate可以把数据库中的表对应到java的普通对象(POJO),通过xml映射文件。然后hibernate将数据库操作封装在一个类当中,当用户需要存数据,取数据的时候,就不用使用JDBC了,直接调用方法即可。

 

2.项目中使用hibernate时需要什么?如何整合?

            hibernate的jar文件可以在hibernate官网下载到,若是没有直接下载链接,可以使用maven项目自动下载。

        jar文件如下:

        是由一部分核心jar包和其依赖包所组成。将这些jar包复制到项目的classpath中即可

 

3.将jar包加入classpath中,然后进行下面几步操作:

(1).建立包和对应的java文件:

package org.cat.test;
public class User {
	private int userid;
	private String username;
	private String userpassword;

	..........//getter and setter
	..........//constructors
	
    //toString
	@Override
	public String toString() {
		return "User [userid=" + userid + ", username=" + username + ", userpassword=" + userpassword + "]";
	}
	
}

(2).在类路径下新建一个个xml文件,类型是hbm.xml类型:

这个文件对应着类的映射类型,将其对应到同名的数据库表名:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-3-28 23:06:05 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>

    <class name="org.cat.test.User" table="USER">
        <id name="userid" type="int">
            <column name="user_id" />
            <generator class="native" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="user_name" />
        </property>
        <property name="userpassword" type="java.lang.String">
            <column name="user_password" />
        </property>
    </class>
</hibernate-mapping>

这个文件中的信息连小学6年级的同学都能看懂是什么意思。

(3)紧接着在项目中右键建立一个新的source foler,(不是folder),命名为conf,可以存一些配置文件,在资源文件夹中新建一个hibernate的配置文件,用于配置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="connection.username">root</property>
     	<property name="connection.password">1314</property>
     	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
     	<property name="connection.url">jdbc:mysql://localhost:3306/mrtah</property>
     	<!-- 配置hibernate基本信息 -->
     	<!-- 数据库方言 -->     	  
     	<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>   
     	<!-- console diaplay sqls -->
     	<property name="show_sql">true</property>	
     	<!-- 對sql進行格式化 -->
     	<property name="format_sql">true</property>
     	<!-- 指定自動生成數據表的策略 -->
     	<property name="hbm2ddl.auto">update</property>
     	
     	<!-- 指定關聯的.hbm.xml文件 -->
     	<mapping resource="org/cat/test/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

在这个xml中,有5种信息配置,大家请自己仔细看看。

(4).然后就差不多配置完了,现在剩下的就是我们要在项目中使用hibernate来进行数据持久化和查询等相关操作了。比如登陆,就可以从数据库中取数据,使用get()方法。具体测试代码如下:

        

package org.cat.test;

import static org.junit.Assert.*;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;

/**
* @author Mrruan qkmc@outlook.com:
* @version 类诞生:2017年3月28日 下午11:09:26
*/
public class testHibernate {

	@Test
	public void test() {
		fail("Not yet implemented");
	}
	@Test
	public void m1(){
		//1.創建sessionfactory
		SessionFactory sessionFactory = null;
		Configuration configuration = new Configuration().configure();
		//3.0前
		//sessionFactory = configuration.buildSessionFactory();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
				.buildServiceRegistry();
		sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		//2.session
		Session session = sessionFactory.openSession();
		//3.open transaction
		Transaction transaction = session.beginTransaction();
		//4.save data
		User user = new User("liyanlin","liyanlin520");
		
		
		//保存到数据库
		//session.save(user);
		//从数据库获取一个数据吧
		User user2 = (User) session.get(User.class, 1);
		System.out.println(user2);
		
		//5.commite transaction
		transaction.commit();
		//6.close session
		session.close();
		//7.close session factory
		sessionFactory.close();
	}
}

 

© 著作权归作者所有

阮少爷
粉丝 8
博文 174
码字总数 124470
作品 0
成都
CTO(技术副总裁)
私信 提问
实习生-后台开发指引

Road map: 1. 学习框架、工具的使用 2. 遵守开发规范进行编码 (待补充) 学会使用以下工具: GIT SVN MAVEN : 项目的构建、打包 了解项目 pom.xml ,setting.xml 的各个配置文件之间的关系...

Chris
2014/11/19
3
0
译:Hibernate Search - Getting started(Chapter 2)

Getting started with Hibernate Search 本章内容包括: ■ 什么是 Hibernate Search? ■ 如何建立和配置 Hibernate Search ■ 领域模型映射简介 ■ 数据索引简介 ■ 全文查询简介 ■ 如何使...

cwalet
2012/06/01
327
0
java EE学习笔记 ---- Hibernate/Struts/Spring

2013/1/3 开始Java EE之旅 Java EE核心应是框架,先了解几个框架 Hibernate ORM工具,通过文件把值对象和数据表之间建立一个映射关系。 这句话个人理解是:实现了将应用程序的数据读写到数据...

fcsong000833
2013/01/03
228
0
Hinernate中获得数据库连接池的方式及应用

Hibernate可以与任何一种java应用的运行环境集成。Java应用的运行环境可分为两种。 (1)受管理环境(Managed environment):由容器负责管理各种共享资源(如线程池和数据库连接池),以及管理...

_守望者_
2014/04/22
289
0
2011 年 Java EE 生产力报告

Zero Turnaround分析了1027名Java EE开发者的反馈问卷,公布了2011年的Java EE生产力报告,统计了开发者最常使用的编译工具,IDE以及Java框架等。 开发者对编译工具Ant和Maven的偏好几乎相等...

红薯
2010/12/16
1K
19

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
5
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部