`

二 细节分析 入门

阅读更多
写道
开发hibernate 牵扯到实体类的编写 映射文件的编写 表的编写
开发流程 三种方式
 1由Domain object -> mapping->db。(官方推荐)
 2由DB开始,用工具生成mapping和Domain object。(使用较多)
 3由映射文件开始。
Domain Object限制
 1.默认的构造方法(必须的)。
 2有无意义的标示符id(主键)(可选)
 3非final的,对懒加载有影响(可选)
 Domain Java Object(User)
public class User {
 private int id;
 private String name;
 private Date birthDay;
 //getter setter…
}
解释
默认的构造方法 必须要有
id可选 如果实体类没有这个id 那么就不能充分发挥hibernate的作用
实体类修饰符 final 最好不要使用 否则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 package="dao.service">
 <class name="User"> 
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name"/>
  <property name="birthday"/> 
 </class>
 
</hibernate-mapping>
分析 class 指定一个实体 对应的表 默认的是实体类的小写 如不指定 将是默认的表名 user
里面有个tabel属性 对应的映射的表名称
id 指定主键 generator属性指定的是主键生成方式 name实体属性名称
property 指定实体属性 name指定实体属性名称
Java代码
 1.初始化代码(只做一次)
  Configuration cfg = new Configuration();
  cfg.configure(“config.cfg.xml”);
  也可以通过cfg.setProperty设置属性。
  SessionFactory sessionFactory = cfg.buildSessionFactory(); 
 2.模板代码
Session session = null;Transaction tx = null;
try{
 session = sessionFactory.openSession();
 tx = session.beginTransaction();
 //…你的代码save,delete,update,get…
 tx.commit();
}catch(Exception e){
 if(tx !=null)tx.rollback();throw e;
}finally{
 if(session != null)session.close();
}
例子程序
工具类
package dao.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * 这是个工具类 一般不希望别的类去继承修改的
 * 并且设置为单例模式  private修饰构造方法表示这个类不可以实例化
 * 在这个类中有一断静态的代码块 这样的话,这个类就成为单例模式
 * @author Administrator
 *
 */
public final class HibernateUtil {
    private static SessionFactory sessionFactory;
 private HibernateUtil(){
  
 }
 static {
  Configuration ctf=new Configuration();
        ctf.configure();
        //获取连接工厂
        sessionFactory=ctf.buildSessionFactory();
 }
 public static SessionFactory getSessionFactory() {
  return sessionFactory;
 }
 
 public static Session getSession(){
    return sessionFactory.openSession();
 }
}
测试类
package dao.test;
import java.util.Date;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import dao.service.User;
import dao.util.HibernateUtil;
public class Base {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //对hibernate进行初始化操作
//  Configuration ctf=new Configuration();
//        ctf.configure();
//        //获取连接工厂
//        SessionFactory sf=ctf.buildSessionFactory();
//        //获取连接对象
//        Session s=sf.openSession();
//        Transaction tx=s.beginTransaction();
        User user=new User();
        user.setBirthday(new Date());
        user.setName("name");
        addUser2(user);
        System.out.print("end");
 }
   static void addUser1(User user)
   {
       Session s=null;
       Transaction tx=null;
       try{
          s=HibernateUtil.getSession();
          tx=s.beginTransaction();
          s.save(user);
          tx.commit();
       }catch(HibernateException e)
       {
          if(tx!=null){
           tx.rollback();
           throw e;
          }
       }finally
       {
        if(s!=null)
        {
         s.close();
        }
       }
   }
  
  
   static void addUser2(User user)
   {
       Session s=null;
       Transaction tx=null;
       try{
          s=HibernateUtil.getSession();
          tx=s.beginTransaction();
          s.save(user);
          tx.commit();
       }finally
       {
        if(s!=null)
        {
         s.close();
        }
       }
   }
}
完毕!

 

分享到:
评论

相关推荐

    有限元分析入门资料.pdf

    有限元分析(Finite Element Analysis,简称FEA)是一种计算机模拟技术,广泛应用于...通过本入门资料的学习,即使是没有接触过CAE的新手也能够对有限元分析有一个基本的理解,并为将来深入学习和实践打下坚实的基础。

    时序分析入门教程

    在学习时序分析的过程中,初学者应重点关注时序约束的细节,如时钟约束、输入输出延迟约束等,它们是保证电路按预期工作的关键。此外,对于静态时序分析工具的使用,如TimeQuest,应掌握其操作流程、约束文件的编写...

    软件漏洞分析入门

    软件漏洞分析入门 软件漏洞分析是软件安全技术中的一项重要技术,涉及到软件漏洞的研究价值、研究方法、堆栈利用的基础知识、shellcode 的调试方法、漏洞调试方法、漏洞分析、漏洞挖掘和软件安全性测试等方面。本...

    02_传智播客hibernate教程_hibernate入门案例的细节分析

    【标题】:“02_传智播客hibernate教程_hibernate入门案例的细节分析” 在本教程中,我们将深入探讨Hibernate,一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更加专注于业务逻辑而不是...

    SQLite入门与分析

    ### SQLite入门与分析 #### 一、SQLite简介 SQLite是一个开源的嵌入式关系数据库管理系统,自2000年发布以来,因其独特的设计特点和优势,在软件开发领域获得了广泛的应用。随着软件应用逐渐模块化,传统的大型...

    Stata基本操作和数据分析入门:第二讲 统计描述入门.doc

    如果想要查看分位数等更多细节,可以加上参数`d`,即`su x,d`。执行这个命令后,你会看到包含百分位数、最小值和最大值等更丰富的统计信息。 在给出的数据集中,样本量为110,平均身高(均数)约为175.37厘米,标准...

    TA分析入门指南

    ### TA分析入门指南知识点 #### 一、热重分析软件(TA Instruments Universal Analysis 2000)概览 **1.1 软件功能介绍** - **概述**:TA Instruments 的 Universal Analysis 2000 是一款专业的数据分析软件,...

    软件测试:软件漏洞分析入门

    《软件测试:软件漏洞分析入门》是一份专为初学者设计的资料,旨在引导读者进入软件漏洞分析的世界。软件测试是软件开发过程中不可或缺的一环,它确保了产品的质量和安全性。漏洞分析则是软件测试中的一个重要分支,...

    aysys workbench 结构分析快速入门指南

    《aysys workbench 结构分析快速入门指南》不仅适合初学者快速掌握ANSYS Workbench的基本操作,也是一本宝贵的参考资料,可以帮助从业人员深入理解结构分析的核心原理和技术细节。通过系统学习,读者能够在实践中...

    Excel入门数据分析

    ### Excel入门数据分析知识点详解 #### 一、数据预处理概述 数据预处理是数据分析过程中的第一步,也是至关重要的一步。良好的数据预处理能够确保后续的数据分析工作顺利进行,并提高数据分析的准确性和有效性。 ...

    《算法设计、分析与实现从入门到精通》源码

    《算法设计、分析与实现从入门到精通》是徐子珊教授编写的一本经典教材,旨在帮助初学者和进阶者深入理解算法的本质,掌握设计、分析和实现算法的技能。这本书涵盖了C、C++和Java三种编程语言,使得读者可以根据自己...

    售前交流,客户与需要分析入门

    【售前交流,客户与需要分析入门】 售前交流是销售过程中至关重要的环节,它涉及到对客户的理解、需求的挖掘以及有效的沟通技巧。本部分主要介绍了四种社交行为风格的分析,帮助销售人员更好地理解和应对不同类型的...

    MAPGIS70二次开发教程―入门篇(C++版).rar

    《MAPGIS70二次开发教程—入门篇(C++版)》是针对MapGIS7.0平台,使用C++语言进行扩展开发的详细指导教材。该教程深入浅出地阐述了如何利用C++与MapGIS接口进行集成开发,旨在帮助开发者快速掌握MapGIS的二次开发技能...

    有限元分析入门 -百度文库专用.docx

    有限元分析是一种数值计算方法...最后,建立数学模型时需要对几何特征进行清理和理想化,以减少非重要细节对分析的影响。通过这些步骤,工程师可以运用有限元分析解决实际问题,预测结构行为,优化设计并预防潜在失效。

    逻辑分析仪基础知识入门手册1

    它们能够提供高采样率和带宽,展示信号的细节,例如振铃、过冲和上升沿滚降,这在评估信号质量时至关重要。然而,当需要同时监测大量数字信号或者复杂触发条件时,示波器的局限性就显现出来。 **逻辑分析仪的核心...

    pc样本学习笔记之动静结合分析技术入门.docx

    ### pc样本学习笔记之动静结合分析技术入门 #### 动静结合分析技术概述 在计算机安全领域,尤其是恶意软件分析中,“动静结合分析技术”是一种非常重要的方法论。该技术结合了静态分析与动态分析的优点,能够更...

    射频和无线技术入门(第二版)1.pdf

    《射频和无线技术入门(第二版)》是一部内容丰富、涵盖面广的专业教材,它不仅为读者提供了射频和无线技术的基础理论知识,还涵盖了大量实践案例和技术细节。对于希望深入了解无线通信技术的人来说,本书无疑是一本...

    小波分析入门和提高讲座PPT

    小波分析是一种强大的数学工具,它在信号处理和图像分析领域有着广泛的应用。该讲座主要涵盖了小波分析的基础概念、小波变换以及多分辨率分析。小波分析的核心在于其能够同时提供时间局部化和频率局部化的特性,这...

Global site tag (gtag.js) - Google Analytics