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

这篇文章主要介绍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文件如下:

185715_WbmQ_2481244.png

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

185831_2BmA_2481244.png

 

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

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

185953_P3Kd_2481244.png

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类型:

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

194208_WuIT_2481244.png

<?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的连接参数和一些其他的参数。(包括数据库表和实体类之间的映射表的导入):

194841_mLfr_2481244.png

<?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()方法。具体测试代码如下:

        195440_f0gy_2481244.png

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();
	}
}

 

转载于:https://my.oschina.net/qkmc/blog/870294

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值