zoukankan      html  css  js  c++  java
  • ORM进阶:Hibernate框架搭建及开发

        本节将開始。使用hibernate搭建持久层。当然在决定用不用之前,还请斟酌一下是否使用。了解一下Hibernate的优缺点。

     

         Hibernate优劣对照

     

       Hibernate是一个持久的ORM框架。首先要简历一个Java Project  这个就不用多说了吧。之后。我们来搭建Hibernate框架。

     

    第一步:引入相关Jar包。包括两部分,核心jar(Hibernate_Home/hibernate3.jar)和相关包(Hibernate_Home/lib/*.jar 如上图。

     

        假设没有,请去下载Hibernate。解压之后 如图:

     

    第二步:建立实体类*.java

    package com.bjpowernode.hibernate;
    
    import java.util.Date;
    
    public class User {
    	
    	//主键
    	private String id;
    	//名称
    	private String name;
    	//密码
    	private String password;
    	
    	//提供getter和setter方法
    	public String getId() {
    		return id;
    	}
    
    	public void setId(String id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    }
    

     

    第三步:提供*.hbm.xml文件,该文件能够说是实体生成表的配置文件。Hibernate会依据你写的实体类对应的映射文件生成数据库表。

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
    	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping >
    	<class name="com.bjpowernode.hibernate.User">
    		<id name="id">
    			<generator class="uuid"/>
    		</id>
    		<property name="name"/>
    		<property name="password"/>
    		<property name="createTime"/>
    		<property name="expireTime"/>
    	</class>
    </hibernate-mapping>


     

    第四步:提供hibernate.cfg.xml文件,完毕主要的配置信息。并将*.hbm.xml文件配置进入。(能够參考并改动成自己的)依据自己的需求进行取舍。

    cfg.xml是整个Hibernate的入口配置

    <!DOCTYPE hibernate-configuration PUBLIC
    	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
    	<session-factory>
    		<!-- Hibernate要连接数据库的驱动。(此处使用mysql的,假设使用的替他数据库的,请上网查找) -->
    		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    		<!-- 指定连接数据库的url,此处数据库名为:hibernate_demo -->
    		<property name="hibernate.connection.url">jdbc:mysql:///hibernate_demo</property>
    		<!-- 数据库的username与password -->
    		<property name="hibernate.connection.username">root</property>
    		<property name="hibernate.connection.password">root</property>
    		<!-- 数据库的方言(用于将对象模型的存储生成对应的sql语句) -->
    		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    		<!-- 该项为true,当与数据库交互的时候,将在Console中打印 sql语句,方便学习 -->
    		<property name="hibernate.show_sql">true</property>
    	        <!-- 指定连接池里最大连接数 -->  
    	        <property name="hibernate.c3p0.max_size">20</property>  
    	        <!-- 指定连接池里最小连接数 -->  
    	        <property name="hibernate.c3p0.min_size">1</property>  
    	        <!-- 指定连接池里连接的超时时长 -->  
    	        <property name="hibernate.c3p0.timeout">5000</property>  
    	        <!-- 配置此属性,程序会依据须要自己主动创建表 -->  
    	        <property name="hbm2ddl.auto">update</property>  
    	        <!-- 显示Hibernate持久化操作所生成的SQL -->  
    	        <property name="show_sql">true</property>  
    	        <!-- 将SQL脚本进行格式化后再输出 -->  
    	        <property name="hibernate.format_sql">true</property>
        
        
    
    
    		<!-- 列出每一个要映射的 类 -->
    		<mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/>
    	</session-factory>
    </hibernate-configuration>


     

        使用工具类。将已经生成的实体类,映射到数据库中(生成数据库表)

        假设使用了设置了<propertyname="hbm2ddl.auto">update</property> 那么就不用写工具类了。

     

        注意:数据库须要手动建立

     

    Hibernate的一个特点,耦合性低,easy单元測试。所以最好建立一个单元測试类。測试一下代码的连通性。

     

    第五步:写单元測试类。调试是否成功。也是检验代码的质量

    package com.bjpowernode.hibernate;
    import org.hibernate.Session;
    import junit.framework.TestCase;
    
    public class UserTest extends TestCase {
    	
    	public void testSave1(){
    		Session session=null;
    		try{
    			session=HibernateUtils.getSession();
    			//开启事务
    			session.beginTransaction();
    
    			User user=new User();
    			user.setName("张三");
    			user.setPassword("123456");
    
          //事务提交
    			session.getTransaction().commit();
    		}catch(Exception e){
    			e.printStackTrace();
    			//事务回滚
    			session.getTransaction().rollback();
    		}finally{
          //关闭Session
    			HibernateUtils.closeSession(session);
    		}
    		
    	}
    	
    }
    


     

        通过上面几个步骤,将Hibernate的架构搭建起来。通过自測的方式逐步开发。Hibernate的核心就是OR的转换。即编写hbm映射文件。接下来,我们会在兴许解说


     

  • 相关阅读:
    字符串 CSV解析 表格 逗号分隔值 通讯录 电话簿 MD
    Context Application 使用总结 MD
    RxJava RxPermissions 动态权限 简介 原理 案例 MD
    Luban 鲁班 图片压缩 MD
    FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
    组件化 得到 DDComponent JIMU 模块 插件 MD
    gradlew 命令行 build 调试 构建错误 Manifest merger failed MD
    protobuf Protocol Buffers 简介 案例 MD
    ORM数据库框架 SQLite 常用数据库框架比较 MD
    [工具配置]requirejs 多页面,多入口js文件打包总结
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7099176.html
Copyright © 2011-2022 走看看