Hibernate(5.2.10)快速入门 (一) 初识Hibernate、框架搭建、xml基本配置

        一、初识别Hibernate
                Hibernate是一个开放源代码的ORM(对象关系映射)框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate
                可以自动生成SQL语句,自动执行,使得我们可以随心所欲的使用对象编程思维来操纵数据库, Hibernate可以应用在任何使用JDBC的场合。
         二、框架搭建
                Hibernate框架搭建我以举例子的形式一共分四个步骤
                        1、导Hibernate必需的jar包
                        2、配置持久层映射
                        3、配置Hibernate核心配置文件(hibernate.cfg.xml)
                        4、初始化SessionFactory
                 1、普通Java项目
                         1、导Hibernate必需的jar包
                                Hibernate官网 http://hibernate.org/orm/downloads/
                                我们从Hibernate官网下载完hibernate压缩包后,解压后进入lib/required目录,这里面的所有jar包都需要导入到我们的项目中去
                         2、配置持久层
                                 所谓的配置持久层就是把遵循javaBean的Java类与数据库表建立映射关系,为了更加理解,这里我用一个java类来演示一下:
                                 1、遵循JavaBean的TestEntity类
							package com.example;
							public class TestEntity {
								private int Tid;
								private String Tname;
								
								public TestEntity(){};
								public TestEntity(int tid,String tname){
									this.Tid=tid;
									this.Tname=tname;
								}
								public TestEntity(String tname){
									this.Tname=tname;
								}
								public int getTid() {
									return Tid;
								}
								public void setTid(int tid) {
									Tid = tid;
								}
								public String getTname() {
									return Tname;
								}
								public void setTname(String tname) {
									Tname = tname;
								}
							}


                                 2、映射配置文件
                                        我们创建一个TestEntity.hbm.xml文件,内容如下:
							<?xml version="1.0"?>
							<!--
							  ~ Hibernate, Relational Persistence for Idiomatic Java
							  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
							  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
							  -->							  
							<!DOCTYPE hibernate-mapping PUBLIC
								"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
								"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
							<!--package属性对应于我们java类所在的包名-->
							<hibernate-mapping package="com.example">


								<!--name对应的Java类的类名(不需要加上包名),table对应数据库与之对应的表名-->
							    <class name="TestEntity" table="TESTENTITY">


								<!-- <id/>标签代主键列,name对应Java类中属性名,column对应数据库中列名(此属性不填写默认Java类中属性名)-->
								<id name="Tid" column="Tid">
								    <!--generator通知Hibernate用于为该实体生成主键值的策略,class值"increment":用于为long, short或者int类型生成唯一标识-->
								    <generator class="increment"/><!--详细了解generator可去百度科普-->
								</id>
								 <!--property对应除主键外的其他列,其中可以用type属性来设置该列的数据存储类型,如果在映射中未指定type属性,-->
								 <!--则Hibernate将尝试自动确定正确的转换和映射类型,方法是使用Java反射来确定已声明属性的Java类型,并为该Java类型使用默认映射类型。-->
								<property name="Tname"   column="TNAME"/> <!--想了解详细type属性值的可以去百度科普一下,这里我就不一一列出了-->
							    </class>


							</hibernate-mapping> 



                         3、配置Hibernate核心配置文件(hibernate.cfg.xml)
                                在我们的src文件下创建一个名为hibernate.cfg的xml文件,文件中的内容如下所示:
							<?xml version='1.0' encoding='utf-8'?>
							<!--
							  ~ Hibernate, Relational Persistence for Idiomatic Java
							  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
							  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
							-->
							<!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>
								<!-- 数据库连接设置 -->
																	<!--数据库驱动-->
								<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
																	<!--数据库连接-->
								<property name="connection.url">jdbc:mysql://localhost:3306/test1</property>
																	<!--数据库用户名-->
								<property name="connection.username">root</property>
																	<!--数据库密码-->
								<property name="connection.password">123456</property>


								<!-- JDBC连接池最大连接数量(使用内置的) -->
								<property name="connection.pool_size">1</property>


								<!-- 指定与Hibernate进行交互的特定SQL方言。 -->
								<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>


								<!--禁用二级缓存  -->
								<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>


								<!-- 将所有执行的SQL都打印出来 -->
								<property name="show_sql">true</property>


								<!-- 在启动时删除并重新创建数据库模式 -->
								<property name="hbm2ddl.auto">create</property>


									<!--将持久类的映射配置文件添加到配置中-->
								<mapping resource="com/example/TestEntity.hbm.xml"/>


							    </session-factory>
							</hibernate-configuration>


                         4、初始化SessionFactory
                                这里我们建一个Test类 运行main方法来初始SessionFactory,至此我们一个hibernate基本框架就搭建好了,当我们的程序运行起来后,hibernate
                                会根据我们设置的持久层映射文件在数据库创建相应的表。
						package com.example;
						import org.hibernate.Session;
						import org.hibernate.SessionFactory;
						import org.hibernate.boot.MetadataSources;
						import org.hibernate.boot.registry.StandardServiceRegistry;
						import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
						 
						public class Test {
							private SessionFactory sessionFactory;


							protected void initDataBase() throws Exception {
								//为应用程序设置了一个SessionFactory!
								final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
										.configure() //配置文件来自 hibernate.cfg.xml
										.build();
								try {
									sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
								}
								catch (Exception e) {
									//注册表将被SessionFactory销毁,但是我们在构建SessionFactory时遇到了麻烦,所以手动破坏它。
									StandardServiceRegistryBuilder.destroy( registry );
									e.printStackTrace();
								}
							}


							public static void main(String[] args) {
								try {
									Test test=new Test();
									test.initDataBase();//初始SessionFactory
								} catch (Exception e) {
									// TODO Auto-generated catch block
									e.printStackTrace();
								}
							}
						}

                 2、maven项目
                        maven项目其他配置与普通的Java项目都大致相同,只是我们jar包不需要我们手动添加进去,只需要在我们的maven配置文件pom.xml中添加相应的hibernate的核心依赖即可
                        hibernate核心依赖:
					<dependency>
					   <groupId>org.hibernate</groupId>
					   <artifactId>hibernate-core</artifactId>
					   <version>5.2.10.Final</version>
					</dependency>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值