今日公司项目开发需要整合hibernate,之前用的是mybatis,啥都别说,学呗,下边是我学习hibernate api后整理的代码,代码比较简单,有不足的地方请指正!这只是一个入门的例子。。。
项目目录:
所用的jar包(每个jar具体的作用这里就不列出来了,可以参http://nopainnogain.iteye.com/blog/761630):
具体的项目代码请查看附件,这里贴出测试代码,便于讨论问题,注:初学者,代码乱请见谅!
package com.hibernate.demo.test; import org.hibernate.Session; import java.util.List; import java.util.Date; import com.hibernate.demo.po.Event; import com.hibernate.demo.util.HibernateUtil; public class EventManager { Session session = null; public EventManager(){ session = HibernateUtil.getSessionFactory().getCurrentSession(); } public void testInsert(EventManager mgr){ mgr.createAndStoreEvent("My Event", new Date()); } @SuppressWarnings("rawtypes") public void testList(EventManager mgr){ if(true){ List events = mgr.listEvents(); for (int i = 0; i < events.size(); i++) { Event theEvent = (Event) events.get(i); System.out.println("Event: " + theEvent.getTitle() + " Time: " + theEvent.getDate()); } } } /** * ---测试load,观察返回的obj--- * 如果注释输出obj,则控制台没有输出sql语句(前提hibernate.cfg.xml设置show_sql=true), * 原来,hibernate 使用延迟加载的策略,(默认hibernate.cfg.xml class节点的lazy属性为true),只要对应的对象没有 * 被使用,hibernate 瞒天过海告诉你我有这个对象(通过cglib,返回动态构建的一个代理类),其实并没有做任何事情,只有真正想获取对象 的时候, * hibernate才开始做事(访问数据库)。好处:提高性能,只有真正用到的时候才访问数据库,减少内存消耗 * * 如果hibernate 无法取到这个对象,报ObjectNotFoundEcception异常 * * @author apprenctice */ public void testLoad(){ session.beginTransaction(); Object obj = session.load(Event.class,new Long(1)); System.out.println(obj); // session.getTransaction().commit(); 此处注释掉,commit后自动关闭session } /** * ---测试get,观察返回的obj--- * 如果你运行了这个程序,你会发现,用load输出的obj和get输出的公用同一块内存空间,what's wrong? * 不是说get每次都会访问数据库吗?原来,我在load的时候,(hibernate缓存机制)session里已经有了obj这个对象 * 聪明的hibernate还会去数据库取吗?session帮了我们大忙,提高了性能。如果session中有,则直接返回这个对象(其实是个代理) * * 如果hibernate 无法取到这个对象,返回null * * @author apprenctice * */ public void testGet(){ session.beginTransaction(); Object obj = session.get(Event.class, new Long(1)); System.out.println(obj); session.getTransaction().commit(); } public static void main(String[] args) { EventManager mgr = new EventManager(); // mgr.testInsert(mgr); //将event保存入数据库,此处需注释hibernate.cfg.xml中的 hbm2ddl.auto //否则,每次显示关闭sessionfactory时都会还原数据库 // mgr.testList(mgr); //列出所有events mgr.testLoad(); //测试load mgr.testGet(); //测试get HibernateUtil.getSessionFactory().close(); } private void createAndStoreEvent(String title, Date theDate) { session.beginTransaction(); Event theEvent = new Event(); theEvent.setTitle(title); theEvent.setDate(theDate); session.save(theEvent); session.getTransaction().commit(); } @SuppressWarnings("rawtypes") private List listEvents() { session.beginTransaction(); List result = session.createQuery("from Event").list(); session.getTransaction().commit(); return result; } }
测试结果:
Hibernate: select event0_.EVENT_ID as EVENT1_0_0_, event0_.EVENT_DATE as EVENT2_0_0_, event0_.EVENT_TITLE as EVENT3_0_0_ from EVENTS event0_ where event0_.EVENT_ID=?
com.hibernate.demo.po.Event@1b33a0e
com.hibernate.demo.po.Event@1b33a0e
代码见附件hibernate3,欢迎初学者与我交流,一同进步!!!同时也欢迎专家多多指教!!!
相关推荐
这篇文章将带你初识Hibernate 3.6,了解其基本概念、配置以及如何进行简单的数据操作。 1. **对象关系映射(ORM)**:ORM 是一种编程技术,用于将关系数据库的数据映射到面向对象的模型中。通过ORM,开发人员可以...
二、初识Hibernate 1. Hibernate环境搭建 要开始使用Hibernate,首先需要下载Hibernate的开发包(如3.6.10版本)以及相关的依赖库,包括Slf4j和Log4j。将必要的jar包添加到项目构建路径中,包括Hibernate核心库、...
《初识Hibernate源码》是针对Java开发人员深入理解Hibernate框架的一款学习资源。Hibernate作为一款强大的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够以面向对象的方式处理数据。源码分析有...
《Hibernate Tools 4.1.1:提升数据库与对象映射的效率》 Hibernate Tools是...无论你是初识Hibernate的新手还是经验丰富的老手,这个工具都能为你的开发工作带来实质性的帮助,降低项目复杂度,提升开发速度。
《初识Hibernate:针对Hibernate 5的指南》(第四版)是专为深入理解Hibernate ORM框架而编写的一本详尽教程。这本书不仅提供了全面的理论知识,还包含了配套的源代码,使得读者能够通过实践更好地掌握Hibernate的...
总之,《深入浅出Hibernate》是一本全面而深入的Hibernate教程,它将带领读者从初识Hibernate到精通使用,是Java开发者的宝贵学习资料。通过阅读本书,你将能够熟练掌握Hibernate框架,提升数据库操作的效率,更好地...
《初识Hibernate:从新手到专业》是一本深入浅出介绍Hibernate框架的书籍,适合对Java编程有一定基础但对Hibernate不熟悉的读者。Hibernate是Java领域中广泛应用的对象关系映射(ORM)框架,它极大地简化了数据库...
- "hibernate_day02_pm.zip"可能包含了初识Hibernate的基础知识,如环境搭建、基本操作等。 - "hibernate_day03_pm.zip"可能涉及到SessionFactory和Session的使用,以及实体类的创建。 - "hibernate_day04_pm.zip...
总体而言,《Hibernate - 符合Java习惯的关系数据库持久化》为Java后端开发人员提供了一套全面的指南,涵盖了从初识Hibernate到高级特性的所有关键点,对于希望掌握和使用Hibernate进行数据库操作的开发者来说,是一...
1. **初识Hibernate**:这部分介绍Hibernate的基本概念,包括它在Java应用程序中的作用,以及如何通过配置文件(如hibernate.cfg.xml)来设置数据源和连接参数。文档可能还涉及了SessionFactory和Session的创建与...
一、引言与初识Hibernate 1. **引言**:本手册旨在提供Hibernate框架的全面指南,适合初学者和有经验的开发者使用。Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用程序与数据库交互。 2. **第一部分...
**标题:“Hibernate之API初识及增删改查实现案例hibernate003”** 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,提供了对象关系映射(ORM)功能,使得开发者可以使用面向对象的方式来...
《初识Hibernate:深入浅出的Java ORM框架指南》 Hibernate是Java开发中广泛使用的对象关系映射(ORM)框架,它为Java开发者提供了一种高效、便捷的方式来管理数据库操作,将复杂的SQL语句和数据库交互转化为面向...
本章节主要介绍了初识Hibernate框架的相关知识点。 1. Hibernate框架简介 Hibernate是一个对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库。它通过XML配置文件或注解将Java类与数据库表...
《Hibernate入门:初识与实践》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本教程将带领初学者深入理解Hibernate的第一个项目,帮助你快速入门并掌握其核心概念。...
**初识Hibernate示例** 在`hibernate-examples-master`这个项目中,可以看到一系列关于Hibernate基础操作的示例。这些示例可能包括了实体类的定义、配置文件的设置、以及如何在Java代码中进行CRUD操作的演示。通过...