- 浏览: 686654 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 723hibernate缓存总结 Hibernat ... -
Hibernate原理
2013-09-05 09:10 1158Hibernate原理 1.hibernate ... -
getHibernateTemplate().save和super.getHibernateTemplate().merge
2012-12-05 15:16 2974代码1_save: super.getHibernate ... -
分页查询
2012-12-03 16:57 818HibernateTemplate提供了非常多的常用方法来完成 ... -
mappingResource属性和mappingDirectoryLocations属性的使用
2012-11-19 16:54 579mappingResource属性和mappingDirect ... -
S2SH整合
2012-11-12 16:08 1035Struts2_spring_Hibernate整合 MyE ... -
spring中配置log4j
2012-11-10 16:30 1616log4j 和 slf4j slf4j和log4j用于做日志 ... -
log4j 和slf4j
2012-11-11 20:55 839http://sishuok.com/forum/blogPo ... -
Hibernate两级缓存
2012-10-29 17:01 749Hibernate两级缓存 一级缓存就是Session级别 ... -
数据加载 load get list iterator
2012-10-07 11:14 1045Hibernate的优化-数据加载 除了对映射文件的配置外 ... -
栏目、帖子、回复(设置导航ManyToOne便于操作 QBC/QBE语句)02
2012-10-06 11:39 1046栏目、帖子、回复(设置导航ManyToOne便于操作QBC/Q ... -
栏目、帖子、回复(设置导航便于操作)HQL使用01
2012-10-06 11:28 926栏目、帖子、回复(设置导航ManyToOne便于操作 HQL语 ... -
Many-To-Many (学生、课程、分数)
2012-10-05 17:41 1303Many-To-Many (学生、课程、分数) 多对多: 一个 ... -
树状结构Tree
2012-10-05 17:09 1138树状结构Tree 一、部门类Org.java impo ... -
CUDR_Fetch 和 Cascade
2012-10-05 16:05 4682CUDR_Fetch 和 Cascade 1.Fetch ... -
OneToOne 、OneToMany 、 ManyToMany
2012-10-05 10:31 3460OneToOne OneToMany ManyToMa ... -
ID生成策略
2012-10-04 16:18 3864ID生成策略 1.XX.hbm.xml方 ... -
对象的几种状态
2012-10-04 14:10 1358对象的几种状态 1.Transient 刚new一个 ... -
load 和 get的区别
2012-10-04 11:49 1175session加载数据库数据时,load 和 get 1. ... -
Hibernate 实现原理
2012-09-12 23:20 4109整体流程 1:通过configuration来读cfg.xml ...
相关推荐
Hibernate框架ORM的实现原理.doc
详细介绍了ORM框架Hibernate的注解配置和xml配置。
将Hibernate和iBatis两Orm框架整合,取长补短 博文链接:https://youlong05.iteye.com/blog/24872
Ebean:开源ORM框架 Ebean是一个Java实现的开源ORM框架,具有数据访问快速和易于学习、使用等特点。
Myeclipse自动生成Hibernate配置文件及实体类映射ORM配置文件--hibernate方式
能实现基本的数据库操作能实现基本的数据库操作
一种基于反射和注解的HBase-ORM框架
手写ORM框架笔记
android 数据库orm框架依赖库 非常简便的数据库框架lib
sqltoy-orm是比hibernate+myBatis(plus)更加贴合项目的orm框架(依赖spring),具有jpa式的对象CRUD的同时具有比myBatis(plus)更直观简洁性能强大的查询功能。 支持以下数据库: oracle 11g+ db2 9.5+,建议从10.5 开始...
使用运算符重载,实现 ORM 框架里的 INSERT、UPDATE、DELETE 和 SELECT 语句动态生成。SELECT 语句支持 INNER JOIN、LEFT OUTER JOIN 和RIGHT OUTER JOIN 多表联合查询,但不支持同一表的联合查询。 代码中只实现了 ...
简单高效的ORM框架
NULL 博文链接:https://itjiehun.iteye.com/blog/1184168
hibernate源码
Hibernat详解、MyBatis详解,详细的入门教程和相关知识解析,代码截图,代码都可运行。
Sqlite ORM 是一个简单的C#类,对Sqlite的操作进行了封装,主要功能包括:表定义、生成,访问,更新等,其中,支持,多表的连接操作,语法类似Linq语法,使用非常方便,附加了使用说明文档。 例如,添加记录操作为...
典型的ORM框架实例,方便易学易用,方便入手。