- 浏览: 441006 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (211)
- 思考》感想 (11)
- 数据库操作 譬如Oracle大叔 (7)
- java,咱们有缘吗 (16)
- delphi,你还好吗 (2)
- SSH,哥三儿好 (31)
- 问题!问题?问题!? (9)
- WITH WORK (1)
- 算法与模式 莫事^_^ (10)
- JSP,可以叫你P兄么 (2)
- 啊,咋科斯╮(╯▽╰)╭ (6)
- 巨人肩上的小石子 (2)
- flash她妹flex (38)
- 项目管理 (10)
- 奥特曼,你弟Android来了 (4)
- 麻辣儿gis (0)
- maven 嘛味儿 (3)
- ws 哇塞 webservice (5)
- Oh,no!!!,NoSql (1)
- QQ他哥也是个企鹅,Linux (6)
- 姓i还是姓my 你都叫batis ibatis (3)
- 我喜欢夏天(春天旁边的那个季节)Springside (1)
- 测试! 测就测吧,没有喝(⊙o⊙) (3)
- 是晕+_+ 是浮云 还是云计算 (4)
- ExtJS 你是flex他哥还是他妹 (10)
- svg 你丫的资料真少 (3)
- 叫屁屁还是叫加加 ⊙﹏⊙ c++ (5)
- 鸟,还是只百灵鸟 BIRT (1)
- 权限管理 有权真好 是吧-_-! (1)
- SSH (2)
- 哥三儿好 (2)
- nginx (1)
- Oh (1)
- no!!! (1)
- NoSql (1)
最新评论
-
mong619226543:
谢谢
No identifier specified for entity -
akka_li:
没看懂啥意思!什么原因导致java.net.SocketExc ...
java.net.SocketException: Connection reset 问题解决方法 -
west_jing:
1L正解,<mvc:annotation-driven/ ...
<mvc:default-servlet-handler/> 导致 Controller失效 -
u010954806:
tgfhfdhdf
Spring Security 国际化文件 messages_zh_CN.properties 中文解释 -
yenshen:
我也碰到这个问题了,找了一大圈,最终问题解决了:<con ...
<mvc:default-servlet-handler/> 导致 Controller失效
1、hibernate介绍与动手入门体验
* hibernate.cfg.xml中必须配置的几个属性:(可以参考eg文件夹和etc文件夹下的配置
文件)
driver_class; 数据库驱动
url;
username;
password;
dialect;数据库方言
resource; 与对象对应的配置文件
hbm2ddl.auto;是否自动生成表
* show ENGINE; 能查看ENGINE,就是数据库设置的事物类型;
* 测试主程序:
Configuration cfg = new Configuration(); //初始化配置文件
cfg.configure();
SessionFactory sf = cfg.buildSessionFactiory(); //新建SessionFactory
Session se = sf.openSession(); //创建Session
* 默认情况下事务是关闭的;
2、hibernate入门案例的细节分析
* 开发流程
Domain object->mapping->db(官方推荐)
db->mapping->Domain object(使用较多)
* 必须有不带参数的构造方法;
* 如果java对象那个属性不需要存入数据库,那么在heibernate映射文件就不需要配置这
个属性;
3、hibernate入门案例的代码优化
* 加载配置文件最好写成单例模式
* src 目录并不是classpath,src编译之后的目录能把文件放入classpath 中
4、Session接口及get-load-persist方法
* 每个类其实也都是Class 的实例;
* load有懒加载特性;
* session的persist和save方法的区别:在未开启事务时persist不会插入数据;save会
先插入数据,然后回滚删除数据;
5、实体对象的三种状态与saveOrUpdate方法
* 三种状态:瞬时、持久、游离(脱管);
可以从session理解:对象新建出来时就是瞬时状态,进入session则是持久状态,
session关闭则是脱管状态;
也可以从跟数据库关系理解:新建对象是和数据库没有关系的就是瞬时状态,数据库有
记录且跟session有关系的就是持久状态,数据库有数据但和session没有关系就是脱管状
态;
* 如果不知道对象是什么状态可以用saveOrUpdate()方法;
6、hql的命名参数与Query接口的分页查询
* Query qr = s.createQuery("select o from User o where o.name =
? and o.id =? ");
qr.setParameter(0, "jim");
qr.setParameter(1, 1);
或者重命名?(占位符)
Query qr = s.createQuery("select o from User o where o.name =
:n and o.id = :i ");
qr.setParameter(n, "jim");
qr.setParameter(i, 1);
14、多对一关联关系的映射与原理分析
* 保存时尽量先保存一的一端,再保存多的一端,否则会多出update的操作
* 单双向其实体现在:domain中的bean是否有对应属性和配置文件中
25、Hibernate中使用的集合类型
* 集合映射(set\list\array\bag\map)
* 集合的简单实用原则:大部分情况下使用set,需要保证集合中的顺序用list,想用
list有不需要保证顺序用bag;
* 实体中的集合必需用接口定义,不能定义成具体类,因为集合在运行时会被替换成
Hibernate的是实现:如
private Set<Employee> emps;//正确
private HashSet<Employee> emps;//错误 不能定义为具体类,因为HIbernate中会对
Set转型,会报错。 HashSet hs = (HashSet) depart.getemps();会报错
26、关联关系的级联操作
* 级联发生在对象关系上(即检索时用);
* 常用 级联关系:none、all(同生同死)、save-update、delete、delete-orphan
(one-to-many);
* 一般对many-to-one,many-to-many不设置级联,one-to-one,one-to-many中设置
级联;
27、inverse属性的作用与原理分析
* 只存在在集合关系上如set list等
* 为防止1对n 问题的产生(产生n条更新语句),一般在one的一端关系上进行
inverse="true",让one的一端放维护关系,让many一端维护关系;
* 保存数据的时候先保存one的一端,再保存many端,这样可以避免1对n问题的产生;
* list中不能用inverse="true"属性,多的一端没有inverse属性
32、继承关系_每个具体类映射一张独立表
* 这种情况生成的表的id不能重复,所以主键生成器不能用自增长了
33、load方法的懒加载及原理分析
* 懒加载
* load方法举例:
User u = (User)s.load(User.class,1);//返回的对象u是个代理对象,继承了User,
所以User不能设置为final;
* 懒加载返回的对象只能在session关闭之前访问数据库,要想在session关闭后也能访问
可以把返回对象初始化,Hibernate.initialize(u);
* 集合查询默认也是lazy="true"的,所以要想在外部调用查询集合必须把lazy="false"
35、一对多和多对多的懒加载分析
* 比如访问depart时,Hibernate不会去查找employee,这就是因为Hibernate默认使用了
懒加载lazy="true";
* 如果初始化对象就会去查找employee
* one-to-one 要想实现懒加载必须加上constraint="true"
39、hibernate的内部缓存分析
* 缓存作用用来提高性能,可以简单的理解成一个map;
* Session是一级缓存;
* get\load\update会从一级缓存读取数据;query会将数据放入一级缓存,但不会读取一
级缓存,query能读取二级缓存;
* 一级缓存数量不可以控制,要防止内存溢出,可以用evict(object),clear()清除缓存
;
?????如果开启了二级缓存,load的对象在外部是否可以调用??不可以
42、分布式缓存的分析与研讨
* 分布缓存集群和中央缓存
44、OpenSessionInView模式的代码分析
* ThreadLocal 类似于一个map, key 是当前线程;如果把一个Session加入 一个
TreadLocal对象中,则在这个线程内可以共享这个session 对象,避免反复获取Session
;
* Open session in view :在生成页面时保持session处于打开状态;可以解决:事物边
界问题和懒加载问题
* Open session in view 缺陷:增长了事物开启时间,session的生命周期增长;
* Session 不释放缺陷:系统内存被占用;Session不关闭不会释放数据连接,影响并发
;
* UUID移植性好,不访问数据库;
50、
* Session是非线程安全的;在b/s系统中一般不会超过一个请求;如果长时间打开会占用
内存和数据库连接;
* SessionFactory是线程安全的,一个数据库对应一个SessionFactory,什么周期长,一
般在整个系统生命周期内有效;
* flush()保证一级缓存和数据库进行同步;
* 在大批量数据操作样例:
for(int i=0;i<100000;i++){
session.save(obj);
if(i%==0){
session.flush();
session.clear();
}
}
下面的方式也行:
Query q = s.createQuery("update u set birthday = :bd from User u");
q.executeUpdate();
53、iterate查询与N+1此查询问题
* 使用iterate()出现n+1次问题,用list呢????list在不存在关联查询(懒加载情况
)的情况不会产生此问题;
* 懒加载情况也会产生n+1次问题。
* ctr+t查看方法在实现类中的情况;
55、
* 本地化查询样例:
//加上ddEntity(User.class)返回对象,否则返回对象数组
Query q = s.createSqlQuery("select * from user").addEntity(User.class);
List rs = q.list();
for(User u: rs){}
56、
* 不适合OLAP(On-Line Analytical Processing 联机分析处理),以查询为主的系统;适
合OLTP(on-line transaction procession)联机事务处理;
* 不适合关系模型设计不合理的老系统;
* 数据量巨大,性能要求苛刻的系统不适合,应为Hibernate批量操作数据的效率不高;
发表评论
-
Spring Security 国际化文件 messages_zh_CN.properties 中文解释
2011-05-04 17:08 7151Spring Security 国际化文件 messages_ ... -
两个Spring Security问题
2011-05-04 17:06 2117两个Spring Security问题 ---------》 ... -
一个spring security 配置列子
2011-05-03 16:48 1267<?xml version="1.0" ... -
spring security与数据库交互实现简单例子
2011-04-19 16:34 1689spring security与数据库交互实现简单例子 最近 ... -
用struts2 验证用户登录demo
2011-01-28 15:38 2187用struts2 验证用户登录de ... -
Struts2.1.8 执行顺序
2011-01-28 15:18 893public class LoginAction extend ... -
Struts2令人纠结的一个问题
2011-01-27 09:47 1022我用Struts2加入自定义的library如下图,就报错, ... -
一份spring配置文件
2011-01-13 14:05 990<?xml version="1.0" ... -
Hibernate关系映射总结
2010-10-18 10:35 1280其实这些东东完全可以参考帮助文档;这里只是总结下。 》》》一对 ... -
No identifier specified for entity:XX.xx
2010-10-12 17:25 1687No identifier specified for ent ... -
Annotation对Hibernate中联合主键定义
2010-10-11 13:28 2242public class User { private in ... -
@MappedSuperclass的用法
2010-10-11 10:21 12674@MappedSuperclass的用法 用在实体的继承过程 ... -
公共dao的结构
2010-09-29 16:17 1389-----------》公共dao的结构 -----共用接口 ... -
No identifier specified for entity
2010-09-29 16:07 12029org.hibernate.AnnotationExcepti ... -
SSJ配置模板
2009-09-14 09:06 908web.xml-----> <?xml versi ... -
一个简单的ssh配置模板
2009-09-12 17:08 1739web.xml------> <?xml vers ... -
Struts----学习笔记 用form提交和sturts提交
2009-09-12 17:02 1239struts是这么配置的 <action path= ... -
Spring学习笔记------Spring和Hibernate的整合配置
2009-09-12 09:15 1429Spring和Hibernate整合配置有两种方式: 方 ... -
Spring学习笔记--------AOP操作
2009-09-10 10:29 1078* AOP操作可与通过注解和xml的方式实现; * 有个问题, ... -
Hibernate学习笔记1--------一个简单的应用
2009-08-30 08:26 1038工具类---------> /** *用单例模式 ...
相关推荐
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码
在本文中,我们将深入探讨`hibernate-commons-annotations-5.0.1.Final.jar`的源码,了解其内部结构和主要功能。 一、元数据注解 HCA的核心在于提供了一系列的注解,如`@Entity`、`@Table`、`@Column`、`@Id`等,...
hibernate-release-5.0.7.Final压缩包 -document -lib -project 内部Hibernate依赖库: antlr-2.7.7.jar dom4j-1.6.1.jar geronimo-jta_1.1_spec-1.1.1.jar hibernate-commons-annotations-5.0.1.Final.jar ...
很多人为了配置jpa找这个动态产生字节码的jar文件,hibernate-distribution-3.3.1.GA包太大,而hibernate-distribution-3.3.2.GA的jar没有这个jar文件,希望对大家有用
hibernate-jpa-2.0-api-1.0.1.Final.jar
2. **库文件**:包含jar包,如hibernate-core.jar、hibernate-entitymanager.jar等,这些是我们在项目中引入Hibernate时需要用到的依赖库。 3. **文档**:通常包括用户指南、API文档、开发者文档等,这些文档提供了...
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
hibernate-commons-annotations-5.1.0.Final.jar
hibernate-core-5.4.24.Final.jar
Hibernate稳定版(hibernate-release-5.3.23.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
使用hibernate-validator 进行校验的jar包,里面包括了基础hibernate-validator-5.0.0.CR2.jar hibernate-validator-annotation-processor-5.0.0.CR2.jar 之外,还包括了el-api-2.2.jar javax.el-2.2.4等项目必不可...
`hibernate-jpa-2.1-api-1.0.0.final.jar`是Hibernate对JPA 2.1规范的实现库,它使得开发者能够使用Hibernate的高效功能同时遵循JPA规范。 **1. Hibernate与JPA的关系** Hibernate最初作为一个独立的ORM框架,后来...
hibernate-commons-annotations-4.0.1.Final.jar
本次我们聚焦于`hibernate-release-4.3.10.Final`版本,这是一个稳定且功能丰富的版本,为开发者提供了强大的数据持久化支持。 1. **Hibernate概述**: Hibernate 是一款开源的 ORM 框架,它将 Java 类与数据库表...
hibernate-mapping-3.0.dtd 最新从官网下载,无损无修改