- 浏览: 702334 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (362)
- java基础 (33)
- html/css+div/javascript (17)
- Ajax/XML/JSON/XSL (7)
- JQuery (11)
- Extjs (1)
- JSP/Servlet (19)
- MVC模式 (4)
- struts 1 (17)
- Struts 2.3.4 (17)
- Spring 3.2 (26)
- Springmvc (3)
- Hibernate 4.1 (21)
- ibatis (6)
- Velocity模板语言 (2)
- Rose框架 (5)
- EJB (1)
- JUnit测试 (2)
- 数据库DB (24)
- 重构 / 设计模式 (3)
- 开发工具IDE (37)
- 数据结构与算法设计 (3)
- Android (12)
- Linux (4)
- bug集合 (29)
- 缓存技术(redis) (3)
- Lucene全文索引 (15)
- maven3.0.5 (4)
- 小工具集合 (18)
- 面试题 (5)
- 闲聊 (11)
- 其他 (4)
- 接口API (2)
- work (2)
- Flex (0)
- JMS (1)
- 开源项目集合 (1)
- 技术博客 (1)
- 分类04 (0)
- 分类05555 (0)
最新评论
-
小小小羊:
好屌...
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Refle -
liubinli2005:
这个可以脱底spring。单独使用吗?
DAO层:jade -
cangbaotu:
我觉得对于开发者来说,能脚本化编写爬虫是一件挺开心的事情( ̄▽ ...
网页爬取 -
asjava:
很好的文章, 但每段代码清单都重复了一次.
spring 事务 -
xia635317478:
jethypc 写道验证码的session无法传过去啊 还是我 ...
登陆验证码(struts2实现)
Hibernate 注解和配置文件由ORM框架连接库
xml优点
不需要改变和重新编译代码,就可以灵活配置
xml缺点:
◆ 描述符多,不容易记忆,掌握。要深入了解还得看DTD文件
◆ 无法做自动校验,需要人工查找
◆ 读取和解析xml配置要消耗一定时间,导致应用启动慢,不便于测试和维护
◆ 当系统很大时,大量的xml文件难以管理
◆ 运行中保存xml配置需要消耗额外的内存
◆ 在O/R Mapping的时候需要在java文件和xml配置文件之间交替,增大了工作量
◆ 标签语义不清,需要大量试验才能掌握。
◆ 细节太多。有时没规律可循,需要大量试验才能掌握。
annotation优点
◆ 描述符减少。以前在xml配置中往往需要描述java属性的类型,关系等等。而元数
据本身就是java语言,从而省略了大量的描述符
◆ 编译期校验。错误的批注在编译期间就会报错。
◆ 元数据批注在java代码中,避免了额外的文件维护工作
◆ 元数据被编译成java bytecode,消耗的内存少,读取也很快,利于测试和维护
Annotation缺点
没法灵活部署
语义有的不是很清楚
Annotation放在field上,还是放在还是放在method上?
推荐放在method上,这样更灵活
也有可能没有成员变量,但是有getter/setter,
比如一个订单求总价
Getter/setter和成员变量的名字最好一致;
Annotation要么全加在field上,要么全加在method上
1.通过配置 bean.hbm.xml
a.hibernate.cfg.xml文件里面
<?xml version="1.0" encoding="UTF-8"?> <!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="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/beichuang</property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.autocommit">true</property> <property name="show_sql">true</property> <mapping resource="com/chuanxi/training/bean/Team.hbm.xml"></mapping> <mapping resource="com/chuanxi/training/bean/Student.hbm.xml"></mapping> <mapping resource="com/chuanxi/training/bean/Admin.hbm.xml"></mapping> <mapping resource="com/chuanxi/training/bean/Log.hbm.xml"></mapping> </session-factory> </hibernate-configuration>
b.team.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.chuanxi.training.bean"> <class name="Team" table="team"> <id name="id" column="team_id"> <generator class="identity"/> </id> <property name="name" column="name"></property> <property name="leader" column="leader"></property> <property name="slogan" column="slogan"></property> <set name="members" inverse="true" lazy="false"> <key> <column name="team_id"/> </key> <one-to-many class="com.chuanxi.training.bean.Student"/> </set> </class> </hibernate-mapping>
2.Hibernate的注解
a.hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!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="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/beichuang</property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.autocommit">true</property> <property name="show_sql">true</property> <mapping class="com.org.momo.bean.Team"></mapping> <mapping class="com.org.momo.bean.Student"></mapping> <mapping class="com.org.momo.bean.Log"></mapping> <mapping class="com.org.momo.bean.Admin"></mapping> </session-factory> </hibernate-configuration>
b.team.java
package com.org.momo.bean; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name="team") public class Team { @Id @Column(name="team_id") @GeneratedValue(strategy=GenerationType.AUTO) private Integer id; @Column(name="name") private String name; @Column(name="leader") private String leader; @Column(name="slogan") private String slogan; @OneToMany(mappedBy="team",fetch=FetchType.EAGER) private Set<Student> members; public Team() { } public Team(String name, String leader, String slogan) { this.name = name; this.leader = leader; this.slogan = slogan; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLeader() { return leader; } public void setLeader(String leader) { this.leader = leader; } public String getSlogan() { return slogan; } public void setSlogan(String slogan) { this.slogan = slogan; } public Set<Student> getMembers() { return members; } public void setMembers(Set<Student> members) { this.members = members; } }
发表评论
-
hibernate缓存总结
2013-09-05 09:54 745hibernate缓存总结 Hibernat ... -
Hibernate原理
2013-09-05 09:10 1189Hibernate原理 1.hibernate ... -
getHibernateTemplate().save和super.getHibernateTemplate().merge
2012-12-05 15:16 3004代码1_save: super.getHibernate ... -
分页查询
2012-12-03 16:57 847HibernateTemplate提供了非常多的常用方法来完成 ... -
mappingResource属性和mappingDirectoryLocations属性的使用
2012-11-19 16:54 647mappingResource属性和mappingDirect ... -
S2SH整合
2012-11-12 16:08 1084Struts2_spring_Hibernate整合 MyE ... -
spring中配置log4j
2012-11-10 16:30 1651log4j 和 slf4j slf4j和log4j用于做日志 ... -
log4j 和slf4j
2012-11-11 20:55 874http://sishuok.com/forum/blogPo ... -
Hibernate两级缓存
2012-10-29 17:01 768Hibernate两级缓存 一级缓存就是Session级别 ... -
数据加载 load get list iterator
2012-10-07 11:14 1072Hibernate的优化-数据加载 除了对映射文件的配置外 ... -
栏目、帖子、回复(设置导航ManyToOne便于操作 QBC/QBE语句)02
2012-10-06 11:39 1081栏目、帖子、回复(设置导航ManyToOne便于操作QBC/Q ... -
栏目、帖子、回复(设置导航便于操作)HQL使用01
2012-10-06 11:28 960栏目、帖子、回复(设置导航ManyToOne便于操作 HQL语 ... -
Many-To-Many (学生、课程、分数)
2012-10-05 17:41 1340Many-To-Many (学生、课程、分数) 多对多: 一个 ... -
树状结构Tree
2012-10-05 17:09 1157树状结构Tree 一、部门类Org.java impo ... -
CUDR_Fetch 和 Cascade
2012-10-05 16:05 4705CUDR_Fetch 和 Cascade 1.Fetch ... -
OneToOne 、OneToMany 、 ManyToMany
2012-10-05 10:31 3547OneToOne OneToMany ManyToMa ... -
ID生成策略
2012-10-04 16:18 3924ID生成策略 1.XX.hbm.xml方 ... -
对象的几种状态
2012-10-04 14:10 1401对象的几种状态 1.Transient 刚new一个 ... -
load 和 get的区别
2012-10-04 11:49 1253session加载数据库数据时,load 和 get 1. ... -
Hibernate 实现原理
2012-09-12 23:20 4188整体流程 1:通过configuration来读cfg.xml ...
相关推荐
博文链接虽然没有提供,但通常这类博客会包含作者在模仿Hibernate过程中的代码示例和实现思路,帮助读者理解如何构建类似功能的框架。 【标签】"源码"和"工具"表明我们将会关注源代码级别的实现,以及这个自定义...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者通过Java对象来操作数据库,而无需直接编写SQL语句。本文将详细介绍如何生成Hibernate配置文件和XML映射文件的辅助类,以及这个过程...
- `dom4j.jar`:用于XML处理,因为Hibernate的配置文件和HQL查询是基于XML的。 - `slf4j-api.jar` 和 `slf4j-log4j12.jar`:日志框架接口和实现,用于记录Hibernate的操作日志。 - `commons-collections.jar`:...
Hibernate是JPA的一个实现,它是一个强大的ORM框架,提供了更丰富的功能和更好的性能优化。Hibernate不仅支持JPA规范,还提供了一套自己的API,包括 Criteria 查询、HQL(Hibernate查询语言)等,使得数据操作更加...
标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...
Hibernate作为ORM框架,消除了Java与数据库之间的直接交互,将对象与数据库表进行映射。使用@Entity注解定义实体类,@Table指定对应的数据库表,@Id定义主键,@GeneratedValue自动生成主键值。通过Session和Criteria...
1. **对象关系映射**: Hibernate通过XML配置文件或注解来定义对象与数据库表之间的映射关系,使得我们可以直接操作对象,而无需编写SQL语句。 2. **Session接口**: Hibernate的核心接口是Session,它提供了与数据库...
2. **Maven或Gradle**:选择一个构建工具管理项目依赖,包括Hibernate库和其他必要的库。 3. **数据库驱动**:根据使用的数据库(如MySQL、Oracle等),添加对应的数据库驱动到项目中。 **三、配置Hibernate** 1. *...
标题 "spring+hibernate+webwork相关配置" 指的是一个集成开发环境的配置,其中涵盖了三个关键的技术框架:Spring、Hibernate和WebWork。这些框架在Java Web开发中非常常见,主要用于实现依赖注入、持久化管理和MVC...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在某些复杂的应用场景下,我们可能需要同时连接并操作多个不同的数据库,例如,一个用于存储主业务...
在Java的持久化框架Hibernate中,XML配置文件是至关重要的组成部分,它定义了数据库连接、实体映射以及事务管理等核心设置。标题“hibernate支持xml配置文件跳转”指出,Hibernate允许开发者直接从代码中跳转到XML...
- **配置SessionFactoryBean**:将DataSource与Hibernate配置文件链接起来,并设置其他属性如缓存策略、实体扫描路径等。 - **定义SessionFactory的Bean**:在Spring配置文件中声明SessionFactory Bean,方便其他...
Hibernate是一个流行的ORM框架,它允许开发者用面向对象的方式来处理数据库操作,极大地减少了编写SQL代码的工作量。Hibernate通过实体类、映射文件或注解将Java对象与数据库表进行绑定,实现了对象与关系数据之间的...
- **hibernate.cfg.xml**:这是Hibernate的核心配置文件,用于定义Hibernate的工作环境。通常情况下,你需要指定数据库连接信息(如URL、用户名、密码等)、事务管理方式、缓存策略等设置。可以通过以下步骤在项目...
Spring允许开发者通过配置文件或注解来管理对象的生命周期和相互依赖关系,降低了代码的耦合度。此外,Spring还提供了事务管理、数据访问抽象、Web MVC框架等功能,可以无缝集成其他框架如Struts和Hibernate。 在...
1. **配置Struts和Hibernate**:首先,需要在项目中引入Struts和Hibernate的相关库,配置Struts的struts-config.xml文件和Hibernate的hibernate.cfg.xml配置文件。 2. **定义实体类**:根据数据库中的表结构,创建...
4. **配置SessionFactory**:在Java代码中,通过`Configuration`类加载配置文件,创建`SessionFactory`,它是Hibernate的核心,负责管理会话。 ```java Configuration config = new Configuration().configure(...
11. **0/R Mapping框架**:除了Hibernate,还有其他如MyBatis等ORM框架,它们各有特点,了解这些框架可以帮助开发者选择最适合项目的解决方案。 通过这份笔记的学习,读者不仅可以掌握Hibernate的基本用法,还能...
3. Hibernate框架:Hibernate是一个ORM框架,它简化了Java应用与数据库之间的交互。通过XML映射文件或者注解,Hibernate可以将Java对象自动持久化到关系数据库中,减少了对JDBC的直接操作。在SSH整合中,Hibernate...