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映射文件。接下来,我们会在兴许解说


     

  • 相关阅读:
    androidstudio配置http proxy以及配置gradle
    发布jar到docker的方法
    idea直接发布项目到docker中
    安卓启动相机报错android.os.FileUriExposedException: file:///storage/emulated/0/
    centos 7.4搭建Harbor、push docker镜像以及常见错误
    dock的卸载与安装
    centos部署Kubernetes(k8s)集群
    Logback将日志输出到Kafka配置示例
    JavaScript设计模式 Item 5 --链式调用
    你不知道的JavaScript--Item27 异步编程异常解决方案
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7099176.html
Copyright © 2011-2022 走看看