- 浏览: 509040 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (136)
- SOS经典收藏 (9)
- 好文收藏 (3)
- 技术杂烩 (6)
- SQL常用操作 (8)
- J2EE开发错误 (11)
- Java开发点滴_SSH (20)
- 数据库维护 (11)
- 网络相关 (1)
- WEB JS_CSS_DIV (10)
- 加密解密 (1)
- Swing (2)
- C&C++ (8)
- Linux (2)
- 软件工程 (5)
- Util (3)
- 我的实例 (3)
- Office办公常用 (3)
- JSP_Servlet (3)
- 开发手记 (4)
- Java基础 (3)
- Oracle技术 (6)
- 基础文档库 (9)
- 设计模式 (1)
- weblogic8.1启动的时候,项目报错,找不到Class (0)
- Office应用 (1)
- VM虚拟机技术 (1)
- PHP开发日记 (0)
最新评论
-
MoonLord:
其实不需要删文件,修改一个值就好了,参考:https://gi ...
Beyond Compare报应用程序发生错误 不能打开解决办法 -
别拿土豆不当马铃薯:
${pageContext.request.contextPath} JSP取得绝对路径 -
hysunny0923:
不需要DBUtilis.java啦学到很多~感谢分享~~
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
zsxy168:
少了DBUtils.java文件
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
little_demonye:
写得好详细,清楚了很多,太感谢啦
第一个JSP+Servlet+JavaBean+JDBC示例程序
什么是POJO?
POJO是最纯粹的Java对象,也就是说这个对象没有继承任何第三方框架的任何类和实现他的任何接口。
轻量级框架:没有侵入性,也就是说没侵入Hibernate任何东西。轻量级框架最显著的一个特点就是没有侵入性,没有侵入性好在那里,就是移植性就会比较好。
类似Hibernate框架适合在那些情况下使用:
★合适的情况
S征对某一个对象,简单的把它查询下来,然后再对它进行编辑,修改,而且编辑修改只是对单个对象,而不是说对所有的对象批量修改,批量的删除等等,在这样的情况下是适合的。
S对象之间有着很清晰的关系。如:User和Group,它们有很清晰的关系,多个用户属于一个组,一个组下有多个用户。如果从关系上来看,多个用户属于一个组,我们可以映射成多对一关系,叫Many to One这样一个关系;那么从组到用户来看,一个组下有多个用户,那么这是一对多的关系,One to Many,这是一个很正常的关系。但如果这种关系已经很错综复杂了,那么其实并不适合使用类似Hibernate这种框架,也就是O-R映射工具。
★不适合的情况:
批量的对数据时行修改的时候,在这种情况下Hibernat是不适合的,还有Apache OJB、JDO等框架都不适合,这是O-R构架的一个弱点。
所谓的映射就是:这个类要存到那个表里,这个类中的属性要存在那个字段上,是这样一个过程。
Hibernate所需要加的Jar包:
1.)hibernate核心Jar包-hibernate3.jar,位于hibernate-x.x下
2.)hibernate-x.x下的lib包里的所有Jar包
3.)相应的数据库驱动程序。
第一个hibernate项目
1、新建java项目
2、创建User Library,加入如下jar
* HIBERNATE_HOME/hibernate3.jar
* HIBERNATE_HOME/lib/*.jar
* MySql jdbc驱动
3、创建hibernate配置文件hibernate.cfg.xml,为了便于调试最好加入log4j配置文件
例如:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.url">jdbc:mysql://localhost/qting</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"></property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> <mapping resource="com/bjsxt/hibernate/User.hbm.xml"/> </session-factory> </hibernate-configuration>
4、定义实体类
也就是持久类,POJO类,即要存入数据库的类
5、定义User类的映射文件User.hbm.xml
<?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.bjsxt.hibernate.User"> <id name="id"> <generator class="uuid"/> </id> <property name="name"/> <property name="password"/> <property name="createTime"/> <property name="expireTime"/> </class> </hibernate-mapping>
6、将User.hbml.xml文件加入到hibernate.cfg.xml文件中
<mapping resource="com/bjsxt/hibernate/User.hbm.xml"/>
7、编写hbm2ddl工具类,将实体类生成数据库表
这是一个工具类,专门把对象模型生成为关系模型,也就是说对象生成表,这样一个模型,这个工具类在一个项目中写一次就可以了。其实这个类起的作用就是将Hibernate.cfg.xml转化为DDl。
package pserBean; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class ExportDB { public static void main(String[] args) { //读取hibernate.cfg.xml文件,因为Hibernate默认读取的是Hibernate.prefors文件,所以得在后面加上 . Configure(); Configuration cfg = new Configuration().configure(); //编写工具类,这个类能将对象模型转换为关系模型。 SchemaExport export = new SchemaExport(cfg); export.create(true, true); } }
8、开发客户端
package com.hibernate; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class Client { public static void main(String[] args) { //读取hibernate.cfg.xml文件 Configuration cfg=new Configuration().configure(); //创建SessionFactory,一个数据库对应一个SessionFactory SessionFactory sf=cfg.buildSessionFactory(); //相当于JDBC中的Connection,但和Connectio不一样, //可以理解为对Connection做了一层封装 Session session=null; try{ //创建Session,从工厂创建出一个 session=sf.openSession(); //打开事务(hibernate默认的事务是False,所以得手动开启事务) session.beginTransaction(); //设置实例类相应的属性 User user=new User(); user.setName("qtliu"); user.setPassword("qtliu"); user.setCreateTime(new Date()); user.setExpireTime(new Date()); //进行存储 session.save(user); //手动提交,提交事务你必须得到原先开启事务的上下文,不能随便提交 //可以用Session.getTransanction()来得到先前开启事务的上下文 session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); //事务提交后如果失败得回滚 session.getTransaction().rollback(); }finally{ //如果事务不为空 if(session!=null){ //如果事务没有关闭 if(session.isOpen()){ //那么关闭事务 session.close(); } } } } }
为了方便跟踪sql执行,在hibernate.cfg.xml文件中加入
<property name="hibernate.show_sql">true</property>
Hibernate配置文件:包含数据库连接信息,表的映射信息。
表的配置文件:对类与表的映射配置信息。
Configuration类:读取Hibernate.hbm.xml文件中的内容
SessionFaction类:通过Configuration创建SessionFaction实例,实现将类和表之间的映射。
Session.类。通过Session类保存、更新,删除及查询持久化对象,充当持久化管理器。
Session.Transaction 管理事务
发表评论
-
获得运行jar包存放路径的方法
2011-04-18 00:03 1353获得运行jar包存放路径 ... -
java读取配置文件的方法
2011-04-17 10:59 1115大家可能经常会遇到在Java程序中存取程序配置文件的需求,比如 ... -
<logic:iterate>使用
2010-05-21 13:55 1566<logic:iterate> 是Logic ... -
Struts中的html:link标签使用
2010-05-21 13:23 1135Struts中的html:link标签是 ... -
Struts标签-bean:write几个属性举例
2009-12-31 17:10 8483Struts标签-bean:write几个属性举例2009-0 ... -
属性配置文件的使用方法_灵活使用配置文件来配置类
2009-12-21 19:26 728属性配置文件的使用方法 我们常常使用配置文件来进行工程属性的配 ... -
Java调用Windows命令
2009-10-09 12:08 1587Java调用Windows命令 Java调用Windows ... -
Java操作Windows注册表实例
2009-10-09 11:54 1404Microsoft Windows 9x、Windows ... -
关于Java装载库文件
2009-09-21 01:33 1648System.load 和 System.loadLibrar ... -
jar文件的打包方法
2009-09-21 01:04 1369针对:双击jar文件,即可运行相关程序 首先列表一下环境: ... -
Java代码混淆器最佳推荐
2009-09-20 23:12 6529引用从事Java编程的人都知道,可以通过逆向工程反编译得到Ja ... -
Java基础知识小结
2009-07-24 11:22 1270引用小结Java学习中的一 ... -
建立规范的项目开发程序
2009-05-21 01:18 916引用规范的开发,使得项目看起来更为清晰,更为规范: 比如在开发 ... -
ApplicationResources.properties
2009-05-19 01:18 3462引用ApplicationResources.properti ... -
Properties Editor for Eclipse3[1].0-3.2安装使用
2009-05-14 00:42 9355采用Link方式安装Propertie ... -
Log4j在开发中的使用
2009-05-11 00:27 947Log4j: Log4j的使用分为 ... -
Jsp页面传值的方法
2009-04-22 11:13 11174一.通过Form表单提交传值 客户端通过Form表单提交到服 ... -
java反编译 jar jad
2009-04-21 18:11 4970引用将CLASS文件打包成JAR文件? 一:简单的打包: ... -
Eclips 使用点滴
2009-03-30 16:29 9701.)eclipse过滤jar文件 每次看到老长的竖列jar文 ...
相关推荐
菜鸟少走弯路,快速运行第一个hibernate!祝你成功!
第一课:第一个hibernate项目 第二课:测试实体对象的生命周期 第三课:hibernate基本映射 第四课:hibernate多对一关联映射 ...................... Spring: 第一课:构建Spring的环境并建立一个例子 第三课:...
一、第一个hibernate项目 1、新建一个java项目 2、创建User Library,加入jar包 * HIBERNATE_HOME/lib/*.jar * HIBERNATE_HOME/lib/hibernate3.jar * MySql JDBC驱动 3、提供hibernate.cfg.xml文件 4、定义...
springboot + hibernate 的第一个项目
北大青鸟二年第一个Hibernate项目 影院售票系统
struts2+hibernate一周小项目总结
第一个hibernate项目(hibernate_first) 2 测试实体对象的生命周期(hibernate_session) 3 hibernate基本映射(hibernate_basemapping) 4 class实体类---表 4 标签id 5 主键生成器Generator 6 多对一, 一对一, 一...
第一个struts2和hibernate整合简单项目过程详解,包含需要什么jar包,详细过程图片详解
3.4 第一段代码 3.5 代码初解 第4章 Hibernate基础 4.1 Hibernate基础语义 4.2 基础配置 4.3 Hibernate O/R映射 4.4 数据关联 4.5 Hibernate数据检索 4.6 HQL实用技术 4.7 自定义持久化实现 第5章 ...
第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/R Mapping 11 一、 定义: 11 二、 Hibernate的创始人: 11 三、 Hibernate做什么: 12 四、 Hibernate存在的原因: ...
文档详细介绍了如何在项目中添加及使用Hibernate组件。此为上册。内容包括:1、数据库准备。2、在MyEclipse创建数据库驱动。3、在MyEclipse创建数据库驱动。其中第3点,包括:如何创建项目以及添加Hibernate组件。
本章除了讲解如何搭建源代码阅读环境,还介绍了Hibernate项目的基本配置、详细的实体映射配置等内容,详细的Hibernate项目配置将在第二章讲解。对于熟识Hibernate开发的读者,可以只看本章小结给出建议内容即可。1.2...
2.1 启动Hibernate项目 2.1.1 选择开发过程 2.1.2 建立项目 2.1.3 Hibernate配置和启动 2.1.4 运行和测试应用程序 2.2 启动Java Persistence项目 2.2.1 使用Hibernate Annotations ...
一、Hibernate的引入 二、如何获取 三、第一个Hibernate项目 四、代码优化 五、使用Hibernate进行CRUD的操作 六、Hibernate主键生成策略(generator) 七、复(联)合主键 八、对象状态九、HQL{官方推荐的方式} 十、QBC...
这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 ...
第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类 3.3 创建数据库Schema 3.4 创建对象-关系映射文件 3.4.1 映射文件的文档类型定义(DTD) 3.4.2 把Customer持久化类映射到...
这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 ...
Hibernate是开始做暑假的比赛项目之前学的第一门新技术(花了半天啃了大半本书),可惜最后项目用的是JPA。Hibernate是现在企业运用的最主流持久层中间件技术,恩,貌似可以这么说吧。 和JDBC比较一下,同样都是...
客户安全管理系统对于我的开源 Java Web 项目(主要侧重于后端设计和实现),仍在进行中特拉维斯 CI 状态结构#####Access Layer Struts2 (Dojo + ExtJs + JSON + JasperReports) #####Business Layer Spring4 + ...
3.4 第一段代码 3.5 代码初解 第4章 Hibernate基础 4.1 Hibernate基础语义 4.2 基础配置 4.3 Hibernate O/R映射 4.4 数据关联 4.5 Hibernate数据检索 4.6 HQL实用技术 4.7 自定义持久化实现 第5章 ...