- 博客(31)
- 收藏
- 关注
原创 Hibernate中的缓存
Hibernate中提供了两个级别的缓存Session级别的缓存:它是属于事务范围的缓存,这一级别的缓存由hibernate管理,一般情况下无需进行干预SessionFactory级别的缓存:它是属于进程范围的缓存启用二级缓存的条件:1、 很少被修改2、 很多系统得模块都是要用到的3、 不是私有的数据,是共享的配置二级缓存的方法【每种方法操作之前都要把co
2011-12-27 17:40:54 442
原创 12月27日笔记
连接分为内连接、外连接和全连接外连接分为:左外连接、右连接内连接又叫自然连接createQuery()的括号里面不能写select * .mySQL不支持full join inner join(等值连接):只返回两个表中连结字段相等的行left join(左连接):返回包括左表中的所有记录和右表中连结字段相等的记录A表 left join B表 左连 以
2011-12-27 14:47:28 443
转载 mysql 左连接、右连接和内连接
以MySql为例。在MySQL数据库中建立两张数据表,并分别插入一些数据。 脚本如下: drop table table1; CREATE TABLE`andrew`.`table1` ( `name` VARCHAR(32)NOT NULL, `city` VARCHAR(32)NOT NULL ) ENGINE = MyISAM;
2011-12-27 14:13:19 1094
原创 Hibernate的检索方式
HQL(Hibernate Query Language)HQL(Hibernate Query Language)是面向对象的查询语言,它和SQL语言有些相似。在hibernate提供的各种检索方式中,HQL是使用最广泛的一种检索方式。它有如下功能:1、 在查询语句中设定各种查询条件2、 支持投影查询, 即仅检索出对象的部分属性方式一:@Test public
2011-12-26 19:04:58 606
原创 Hibernate检索策略
默认的检索策略是立即检索。在Hibernate映射文件中,通过在上配置 lazy属性来确定检索策略。对于Session的检索方式,类级别检索策略仅适用于load方法;也就说,对于get、qurey检索,持久化对象都会被立即加载而不管lazy是false还是true.一般来说,我们检索对象就是要访问它,因此立即检索是通常的选择。由于load方法在检索不到对象时会抛出异常(立即检索的情况下)
2011-12-25 16:06:33 764
原创 类与类之间的关系
类与类之间的关系可以分为以下几种:1、 关联两个相对独立的对象,当一个对象的实例与另一个对象的特定实例存在固定关系时,这两个对象之间就存在关联关系1) 单向关联A1--àA2 表示A1认识A2,A1知道A2的存在,A1可以调用A2中的方法和属性例如:订单和商品,订单中包括商品,但是商品并不了解订单的存在2) 双向关联两者之间互相知道对方的存在,并可
2011-12-25 16:04:55 682
转载 Hibernate中的Inverse和cascade属性配置
Inverse和cascade是Hibernate映射中最难掌握的两个属性。两者都在对象的关联操作中发挥作用。1.明确inverse和cascade的作用 inverse 决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用,也就是只对one-to-many或many-to-many有效(因 为只有这两种关联关系包含集合,而one-to-one和many-to-on
2011-12-22 21:01:59 595
原创 get、load与懒加载小总结
一、get()与load()1、 是否支持懒加载Load支持懒加载,get不支持懒加载2、 加载时机不同Load采用延迟加载,等到使用非主键时才去读库Get马上读库3、 搜素不到数据时的情况当搜素的数据不存在时,load会返回一个对象,在使用该对象的非主键属性时会抛出一个ObjectNotFoundException。 当搜素的数据不存在时,get会返回null;
2011-12-22 19:11:48 2064
原创 主键的生成策略
主键的生成策略的取值可以为:1、 increment:用于long,short或者int类型生成的唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用,在集群下不要使用2、 identity:返回的标识符是long,short或者int类型。对DB2,MS SQL Service,Sybase和HypersonicSQL的内置标识符字段提供支持3、 sequence:在
2011-12-21 17:37:12 2657 1
原创 Hibernate中的三个异常
异常一:java.lang.ExceptionInInitializerError atcom.hibernate.service.UserServiceImpl.(UserServiceImpl.java:11) atcom.hibernate.junit.UserTest.(UserTest.java:12) atsun.reflect.Na
2011-12-21 17:33:21 3967
原创 12月21日hibernate课堂笔记
今天上午上课了,下面是课堂笔记,里面记录了一些原来可能讲过但却忘了的一些东西 Hibernate中用的约束是dtd的: "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> Eleme
2011-12-21 17:25:31 525
转载 多线程的概念
多线程的概念 一、程序与进程1、程序:一段静态的代码。2、进程:程序的一次动态执行过程,它对应从代码加载、执行到执行完毕的一个完整过程。3、进程也称任务,支持多个进程同时执行的OS就被称为多进程OS或多任务OS。二、进程与线程在一个程序内部也可以实现多个任务并发执行,其中每个任务称为线程。线程是比进程更小的执行单位,它是在一个进程中独立的控制流,即程序内部的控制流。
2011-12-19 13:25:22 353
转载 hibernate中持久化对象的生命周期
三态的基本概念:①自由态:只存在于内存中,而在数据库中没有相应数据。②持久态:与session关联并且在数据库中有相应数据③游离态:在数据库中有相应数据,但与session无关 三态之间的转换方法:①如何成为自由态?对象通过构造方法成为自由态;持久态和游离态则通过session的delete方法成为自由态②如何成为持久态?对象可以由session的load或get
2011-12-19 11:23:14 506
原创 缓存
缓存 缓存的作用主要用来提高性能、优化查询,可以简单的理解成一个Map;使用缓存涉及到三个操作:把数据放入缓存、从缓存中获取数据、删除缓存中的无效数据。 可以通过下面这个小例子理解缓存package com.hbsi.hibernate;import java.util.HashMap;import java.util.Map;import com.hbsi.dom
2011-12-17 19:36:50 888
转载 Hibernate jar包的作用
Hibernate jar包的作用 (1)hibernate3.jar:Hibernate的核心库,没有什么可说的,必须使用的jar包(2)cglib-asm.jar:CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包(3)dom4j.jar:dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。d
2011-12-14 18:38:47 863
原创 Hibernate性能优化之————延迟加载与抓取策略
Hibernate性能优化之————延迟加载与抓取策略 懒加载【延迟加载】:主要目的:为了推迟与数据库交互的时间,提高系统的系能它是hibernate为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据才会创建实现方式:Hibernate中主要通过代理(proxy)机制来实现延迟加载延迟加载的具体过程:Hibernate从数据库获取某一个对象数据时、获
2011-12-14 15:51:16 3565 1
原创 继承映射
集合映射在list中不能放弃关联关系,如果放弃了关联关系就没法维护插入的员工的顺序了在set集合中才可以放弃关联关系在一对多和多对多才可以放弃关联关系 inverse的默认值为false,既不放弃关联关系 继承映射继承对象模型是is a(是一个)的关系,在关系模型中,实体间只有has a(有一个)的关系,也就是说,继承在对象模型和关系模型上是不匹配的 方式一:整个
2011-12-13 21:59:48 1306
转载 Web开发中的session
Web开发中的session 在web开发中,session是个非常重要的概念。在许多动态网站的开发者看来,session就是一个变量,而且其表现像个黑洞,他只需要将东西在合适的时机放进这个洞里,等需要的时候再把东西取出来。这是开发者对session最直观的感受,但是黑洞里的景象或者说session内部到底是怎么工作的呢?当笔者向身边的一些同事或朋友问及相关的更进一步的细节时,很多人往往要
2011-12-12 19:04:16 16956 3
转载 Hibernate中的Session
Hibernate中的Session 一.主配置 ◆查询缓存,同下面讲的缓存不太一样,它是针对HQL语句的缓存,即完全一样的语句再次执行时可以利用缓存数据。但是,查询缓存在一个交易系统(数据变更频繁,查询条件相同的机率并不大)中可能会起反作用:它会白白耗费大量的系统资源但却难以派上用场。 ◆fetch_size,同JDBC的相关参数作用类似,参数并不是越大越好,而应根据业务
2011-12-12 18:58:30 911
转载 jar包作用
Hibernate jar包的作用(转)Hibernatelog4jJBossApacheAnt(1)hibernate3.jar:Hibernate的核心库,没有什么可说的,必须使用的jar包(2)cglib-asm.jar:CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包(3)dom4j.jar:dom4j是一个Jav
2011-12-12 17:45:56 3780
原创 Hbm2ddl
Hbm2ddl配置文件中的属性hbm2ddl的作用是创建数据库表结构在配置文件中的语法为:"hibernate.hbm2ddl.auto">createHbn2ddl有四种状态,分别为:1、 create:在程序运行时生成表格,在程序结束时不会销毁表格,在下次运行时销毁重建2、 update:在原有继续保持的基础上,更新3、 create_drop:在程序运行时生成表格
2011-12-12 16:29:38 702
原创 组件映射
组件映射Hibernate建议在进行领域模型时要细粒度一些,简单的说,就是类比表多,这种映射方式就是组建映射组件类是值类型,既它没有对象标识符属性,在数据库中也没有对应的表,它只是隶属于另一个持久化类的实例值类型对象是指它对应的类没有对象标识符属性,只能作为一个持久化类的属性使用 当组件的属性已经不能和表中的字段简单的对应时使用 组建映射的应用有三种情况:1、 把组
2011-12-12 15:46:54 487
原创 集合映射
集合映射 保存值类型集合的数据的表叫做集合表值类型对象参考组件映射 选择集合接口:1、元素:可以映射类型为java.util.Set接口的属性,它的元素存放在没有顺序且不重复的;也可以映射类型为java.util.SortSet接口的属性,它的元素可以按自然顺序排列Student.java部分:public class Student { private
2011-12-12 15:45:48 515
原创 双向多对多
双向多对多 学生和老师之间的关系是多对多的,一个老师可以对应多个学生,而一个学生也可以对应多个老师,所有老师与学生之间的关系需要生成三张表,学生表、教师表和中间表。中间表中分为两列,一列为student_id,另一列为teacher_id,这两列合起来为中间表的主键 在Student.java中,设定了三个属性,id,name和Teacher的集合对象Teacher的集合对象用
2011-12-09 15:24:53 690
原创 基于主键的一对一小实例
基于主键的一对一小实例Person.javaprivate int id; private String name; private IdCard idCard; public IdCard getIdCard() { return idCard; } public void setIdCard(IdCard i
2011-12-08 17:13:27 1475
原创 关联映射-----一对多小实例
关联映射-----一对多小实例Employee.javapackage com.hbsi.domain;//员工类public class Employee { private int id; private String name; public int getId() { return id; }
2011-12-08 17:12:21 475
原创 关联映射----多对一小实例
关联映射----多对一小实例Department.javapublic class Department { private int id; private String name; public int getId() { return id; } public void setId(int id) { t
2011-12-08 17:11:03 570
原创 HQL和Criteria
HQL和CriteriaHQL(Hibernate Query Language) 面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类和属性其他部分不区分大小写);HQL中查的是对象而不是和表,并且支持多态;HQL主要通过Query来操作,Query的创建方式: Queryq = session.createQuery(hql);
2011-12-07 16:28:13 4513
原创 Hibernate增删改查(通过id查询)
Hibernate增删改查(通过id查询)package com.hbsi.hibernate.utils;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration
2011-12-07 16:27:43 15071
原创 Hibernate基本概念
Hibernate基本概念1、对数据进行开发时需要的三类文件[理论上知道其中一个,其他两个都可以利用工具生成]:(1) domain类User(2) 映射文件User.hbm.xml(3) 数据库的表create table user(….); 2、这三类文件的顺序(三个开发流程):(1) 由Domain objectàm
2011-12-06 18:00:33 804
原创 Hibernate原理与应用(一)
Hibernate原理与应用(一)引入模型不匹配(阻抗不匹配)Java面向对象语言,对象模型,其主要概念有:继承、关联、多态等;数据库是关系模型,其主要概念有:表、主键、外键等 解决办法1、使用JDBC手工转换:重复性较高把关系模型转换成对象模型rs结果集对象----à移动游标if(rs.next()){//把读取到的封装到对象中 user.setI
2011-12-05 15:46:11 2314
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人