摘要: 在了解Hibernate的LockMode之前,我们先讲一下LockMode是什么东西?其实LockMode只是在使用Hibernate 中 的session.load()加载数据时指定的模式,也叫悲观锁(模式),然而,悲观锁是为了弥补read-committed 机制的不足,从而解决non-repeatable (不可重复读)和 phantom-read (幻读)问题,而non-repeatable 和 phantom-read 这两个问题也只是事务并发是产生的两种问题... 看了我写的这一段后,我相信很多读者会有点懵,这就对了,看完下面的文章,再后过头来读这一段,就全都明白了。我们知道,事 阅读全文
posted @ 2013-05-08 08:59 jack_ou 阅读(986) 评论(0) 推荐(0)
摘要: session.evict(obj),会把指定的缓冲对象进行清除session.clear(),把缓冲区内的全部对象清除,但不包括操作中的对象所以,hibernate执行的顺序如下,(1)生成一个事务的对象,并标记当前的Session处于事务状态(注:此时并未启动数据库级事务)。 (2)应用使用s.save保存对象,这个时候Session将这个对象放入entityEntries,用来标记对象已经和当前的会话建立了关联,由于应用对对象做了保存的操作,Session还要在insertions中登记应用的这个插入行为(行为包括:对象引用、对象id、Session、持久化处理类)。(3)s.evict 阅读全文
posted @ 2013-05-08 08:51 jack_ou 阅读(439) 评论(0) 推荐(0)
摘要: find,iterator(1)iterator首先会获取符合条件的记录的id,再跟据id在本地缓存中查找数据,查找不到的再在数据库中查找,结果再存在缓存中。N+1条SQL。(2)find跟据生成的sql语句,直接访问数据库,查到的数据存在缓存中,一条sql。如果找不到符合条件的纪录,get()方法将返回null.如果找不到符合条件的纪录,find()方法将返回null.如果找不到符合条件的纪录,load()将会报出ObjectNotFoundEcception.get()方法会忽略二级缓存,若内部缓存没有查询到会到数据库中去查询 .find()方法会忽略二级缓存,若内部缓存没有查询到会到数据 阅读全文
posted @ 2013-05-08 08:43 jack_ou 阅读(422) 评论(0) 推荐(0)
摘要: hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别: 一、预备知识: 在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached 下边是常见的翻译办法: transient:瞬态或者自由态 persistent:持久化状态 detached:脱管状态或者游离态游离状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。 持久化实例可以通过调用 delete()变成脱管状态。通过get()或load()方法得到的实例都 阅读全文
posted @ 2013-05-08 08:39 jack_ou 阅读(355) 评论(1) 推荐(1)
摘要: persist和save区别 这个是最迷离的一对,表面上看起来使用哪个都行,在hibernate reference文档中也没有明确的区分他们. 这里给出一个明确的区分。(可以跟进src看一下,虽然实现步骤类似,但是还是有细微的差别) 主要内容区别: 1,persist把一个瞬态的实例持久化,但是并"不保证"标识符(identifier主键对应的属性)被立刻填入到持久化实例中,标识符的填入可能被推迟到flush的时候。---不直接进数据库,多用于批量处理等2,save, 把一个瞬态的实例持久化标识符,及时的产生,它要返回标识符,所以它会立即执行Sql insert,---- 阅读全文
posted @ 2013-05-08 08:38 jack_ou 阅读(321) 评论(0) 推荐(0)
摘要: Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.10。目录调度简单内部架构调度器框架特征调度简单Quartz是一个完全由java编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能, 但就其简易形式看,你会发现它易用得简直让人受不了!。简单地创建一个实现org.quartz. 阅读全文
posted @ 2013-04-27 22:49 jack_ou 阅读(480) 评论(0) 推荐(0)
摘要: 按顺序依次为 名称 是否必须 允许值 特殊字符 秒 是 0-59 , - * / 分 是 0-59 , - * / 时 是 0-23 , - * / 日 是 1-31 , - * ? / L W C 月 是 1-12 或 JAN-DEC - * / 周 是 1-7 或 SUN-SAT - * ? / 阅读全文
posted @ 2013-04-27 22:47 jack_ou 阅读(228) 评论(0) 推荐(0)
摘要: 在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。 然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。 Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的, 它通过提供一个不同步的基类和一个同步的包装器Collections.synchronizedMap,解决了线程安全性问题。 通过将基本的功能从线程安全性中分离开来,Collections.synchronizedMa 阅读全文
posted @ 2013-04-25 23:31 jack_ou 阅读(941) 评论(0) 推荐(0)
摘要: sql级联删除功能:在删除主表时,自动删除副表(外键约束)相应内容删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用。在级联删除中,还删除其外键值引用删除的主键值的所有行。如:create database tempgouse tempgocreate table UserInfo(UserId int identity(1,1) primary key ,UserName varchar(20), --用户名password varchar(20) not null --密码)create table UserDetails(id int identity(1,1) primary 阅读全文
posted @ 2013-04-25 09:43 jack_ou 阅读(985) 评论(0) 推荐(0)
摘要: 什么是unchecked异常? 即RuntimeException(运行时异常) 不需要try...catch...或throws 机制去处理的异常 列举最常用的五种RuntimeException: 这是JAVA认证考试中最常见的题目,事实上,runtime exception中最常见的,经常碰到 阅读全文
posted @ 2013-04-24 00:06 jack_ou 阅读(1007) 评论(0) 推荐(0)
摘要: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单 阅读全文
posted @ 2013-04-23 22:13 jack_ou 阅读(588) 评论(0) 推荐(0)
摘要: JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理:在程序运行时,运用反射机制动态创建而成。首先看一下静态代理: 1、Count.j 阅读全文
posted @ 2013-04-22 20:09 jack_ou 阅读(443) 评论(0) 推荐(0)
摘要: 1 URL(Uniform Resoure Locator:统一资源定位器)是WWW页的地址,它从左到右由下述部分组成: ·Internet资源类型(scheme):指出WWW客户程序用来操作的工具。如“http://”表示WWW服务器,“ftp://”表示FTP服务器,“gopher://”表示Gopher服务器,而“new:”表示Newgroup新闻组。 ·服务器地址(host):指出WWW页所在的服务器域名。 ·端口(port):有时(并非总是这样),对某些资源的访问来说,需给出相应的服务器提供端口号。 ·路径(path):指明服务器上某资源的位置 阅读全文
posted @ 2013-04-21 17:51 jack_ou 阅读(320) 评论(0) 推荐(0)
摘要: SAXReader说明:SAXReader主要用于解析XML文件,是当前比较流行的xml解决方案.代码以基础类函数的形式展现如下:java 代码package com.dc.framework.taglib; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.Servle 阅读全文
posted @ 2013-04-21 17:22 jack_ou 阅读(2575) 评论(1) 推荐(0)
摘要: 解决思路: 在文本框的内容只作于演示而不允许用户随意修改时这样做就非常有必要。具体步骤: 方法一:设置readonly属性为true。Html代码<input type="text" value="readonly" readonly><input type="text" value="readonly" readonly>方法二:设置disabled属性为true。Html代码<input type="text" value="disabled" 阅读全文
posted @ 2013-04-19 11:23 jack_ou 阅读(2479) 评论(0) 推荐(0)
摘要: javascript通过className取得dom集合function getElementsByClassName(n) { var classElements = [],allElements = document.getElementsByTagName('*'); for (var i=0; i< allElements.length; i++ ) { if (allElements[i].className == n ) { classElements[classElements.length] = allElements[i]; } } return cla 阅读全文
posted @ 2013-04-18 17:12 jack_ou 阅读(811) 评论(0) 推荐(0)
摘要: document.all用法一.document.all是页面内所有元素的一个集合。例如: document.all(0)表示页面内第一个元素二.document.all可以判断浏览器是否是IE if(document.all){ alert("is IE!"); }三.也可以通过给某个元素设置id属性(id=aaaa),然后用document.all.aaaa调用该元素四.案例:代码1: <input name=aaa value=aaa> <input id=bbb value=bbb> <script language=Jscript&g 阅读全文
posted @ 2013-04-18 15:15 jack_ou 阅读(200) 评论(0) 推荐(0)
摘要: 首先推荐你看的是apple的developer(苹果开发者联盟)网站 ,这里边有3个文档是必须看的,作为开发者,你可以在这了解到很多一手咨询。 你应该知道cocoachina的吧,实际上ios的开发问题去那边比来百度知道得到的答案会专业些。如果真的是想买书籍的话,推荐的有:Objective-C 2.0 iPhone开发基础教程如果你对iPhone Development有兴趣,以下是入门门槛供参考:首先你要有一台Mac电脑(因为 iPhone App 使用 Mac 平台内建的 Xcode 开发工具),网上也有在Windows下搭设开发环境的教程,请大家自行谷歌一下,接著下载 iPhone S 阅读全文
posted @ 2013-04-17 23:03 jack_ou 阅读(211) 评论(0) 推荐(0)
摘要: 包含了抽象方法的一个类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。下面是抽象方法声明时采用的语法:abstract void f();如果从一个抽象类继承,而且想生成新类型的一个对象,就必须为基础类中的所有抽象方法提供方法定义。如果不这样做(完全可以选择不做),则衍生类也会是抽象的,而且编译器会强迫我们用abstract 关键字标志那个类的“抽象”本质。即使不包括任何abstract 方法,亦可将一个类声明成“抽象类”。如果一个类没必要拥有任何抽象方法,而且我们想禁止那个类的所有 阅读全文
posted @ 2013-04-17 21:08 jack_ou 阅读(379) 评论(0) 推荐(0)
摘要: Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口的两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种... 阅读全文
posted @ 2013-04-17 21:05 jack_ou 阅读(679) 评论(0) 推荐(0)
摘要: 1.JAR包简介要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:commons-lang.jarcommons-beanutils.jarcommons-collections.jarcommons-logging.jarezmorph.jarjson-lib-2.2.2-jdk15.jar2.JSONObject对象使用JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。在本例中,我们将使用JSONObject类创建JSONObject对象,然后我们打印这些对象的值。为了使用JS 阅读全文
posted @ 2013-04-17 09:55 jack_ou 阅读(418) 评论(0) 推荐(0)
摘要: ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会 阅读全文
posted @ 2013-04-16 22:25 jack_ou 阅读(259) 评论(0) 推荐(0)
摘要: 和一般查询区别不同的有三个地方1、首先是实体里面,以前存的是string 现在肯定要修改为 对象学生类:package bean;import java.sql.Timestamp;import java.util.Date;import baseparam.DeptBean;//存对象public class StudentBean{ private String id; private String name; private String email; private Date birthday; private DeptBean dept; public DeptBean g... 阅读全文
posted @ 2013-04-16 11:39 jack_ou 阅读(5474) 评论(0) 推荐(0)
摘要: 流程:1、创建pojo类(在一对多关联关系中,应该在“一”这端的pojo有一个“多”这一端的引用,而多这端有一这端的集合引用(即聚合关联)2、创建pojo对应的数据库表,并插入数据3、在ibatis配置文件中配置pojo类(配置方法:SqlMappingConfig.xml文件中添加如<typeAlias alias="Key" type="com.longsky.ibatis.lock.model.Key"/>配置,下文会看到。)4、在pojo对应的xml配置文件中配置resultMap,比如在Lock.xml文件中添加<result 阅读全文
posted @ 2013-04-16 10:21 jack_ou 阅读(19112) 评论(0) 推荐(0)
摘要: 一个标准的JavaBean应该具有如下几个特点1、JavaBean必须是一个公开的类,也就是说JavaBean的类访问权限必须是public的。2、JavaBean必须是具有一个无参数的构造方法。如果在JavaBean中定义了自定义的有参构造方法,就必须添加一个无参数构造方法,否则将无法设置属性,如果没有定义自定义的有参构造方法,则可以利用编译器自动添加的无参构造方法。3、JavaBean一般将属性设置成私有的,通过使用getXXX()方法和setXXX()方法来进行属性的设置 阅读全文
posted @ 2013-04-16 09:41 jack_ou 阅读(1149) 评论(0) 推荐(0)
摘要: 有两种方法: 方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码: import java.util.*; import java.text.*; //以下默认时间日期显示方式都是汉语语言方式 //一般语言就默认汉语就可以了 阅读全文
posted @ 2013-04-15 14:10 jack_ou 阅读(4997) 评论(0) 推荐(0)
摘要: http://wenku.baidu.com/view/d4be001a59eef8c75fbfb3e6.html 阅读全文
posted @ 2013-04-15 00:38 jack_ou 阅读(264) 评论(0) 推荐(0)
摘要: 当系统中的组件需要调用某一服务来完成特定的任务时,通常最简单的做法是使用new关键字来创建该服务的实例,或者通过工厂模式来解耦该组件与服务的具体实现部分,以便通过配置信息等更为灵活的方式获得该服务的实例。然而,这些做法都有着各自的弊端:在组件中直接维护对服务实例的引用,会造成组件与服务之间的关联依赖,当需要替换服务的具体实现时,不得不修改组件中调用服务的部分并重新编译解决方案;即使采用工厂模式来根据配置信息动态地获得服务的实例,也无法针对不同的服务类型向组件提供一个管理服务实例的中心位置由于组件与服务之间的这种关联依赖,使得项目的开发过程受到约束。在实际项目中,开发过程往往是并行的,但又不是完 阅读全文
posted @ 2013-04-15 00:28 jack_ou 阅读(351) 评论(0) 推荐(0)
摘要: 数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。一个数据库模式包含该数据库中所有实体的描述定义。这些定义包括结构定义、操作方法定义等。 数据库模式定义语言并非程序设计语言,DDL数据库模式定义语言是SQL语言(结构化程序设计 阅读全文
posted @ 2013-04-14 23:14 jack_ou 阅读(1097) 评论(0) 推荐(0)
摘要: 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。编辑本段存储过程概述在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,... 阅读全文
posted @ 2013-04-14 15:03 jack_ou 阅读(717) 评论(0) 推荐(0)
摘要: 键、索引、约束及其区别今天下午刚好没事,把一些基础性的概念理顺一下,存档,省的麻烦,嘿嘿一.索引1. 什么是索引?索引是对数据库表中一列或多列的值进行排序的一种结构。在关系型数据库中,索引是一种与表有关的数据库结构,是事实存在的。它可以使对于表的select等等操作更加快速,相当于一本书的目录。对于一张表,如果我们想要找到某一列符合特定值的记录,第一种方法是全表搜索,匹配,然后把所有符合的记录列出,但是这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。索 阅读全文
posted @ 2013-04-13 18:15 jack_ou 阅读(520) 评论(0) 推荐(0)
摘要: 触发器求助编辑百科名片触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。编辑本段触发器简介触发器可以查询其他表,而且可以包含复杂的 SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表 阅读全文
posted @ 2013-04-13 18:04 jack_ou 阅读(511) 评论(0) 推荐(0)
摘要: 1、索引是什么索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行。表或视图可以包含以下类型的索引:* 聚集 o 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序。 o 只有当表包含聚集索引时,表中的数据行才按排序顺序存储。如果表具有聚集索引,则该表称为聚集表。如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。 * 非聚集 o 非聚集索引具有独 阅读全文
posted @ 2013-04-13 18:01 jack_ou 阅读(508) 评论(0) 推荐(0)
摘要: 视图的含义从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自 阅读全文
posted @ 2013-04-13 16:05 jack_ou 阅读(873) 评论(0) 推荐(0)
摘要: 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库 性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。编辑本段乐观锁介绍乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机... 阅读全文
posted @ 2013-04-13 15:35 jack_ou 阅读(382) 评论(0) 推荐(0)
摘要: 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。目录简介缓存范围并发访问二级缓存编辑本段简介缓存的介质一般是内存,... 阅读全文
posted @ 2013-04-11 21:18 jack_ou 阅读(333) 评论(0) 推荐(0)
摘要: 概述:联合查询效率较高,举例子来说明联合查询:内联inner join 、左联left outer join 、右联right outer join 、全联full outer join 的好处及用法。联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联)的好处: T1表结构(用户名,密... 阅读全文
posted @ 2013-04-11 18:03 jack_ou 阅读(572) 评论(0) 推荐(0)
摘要: SQL里各种联合查询总结create database mytestgo www.2cto.com use mytestgocreate table t_dept(d_id int primary key identity(1,1),d_name varchar(20),d_remark varchar(20))gocreate table t_emp(e_id int primary key identity(1,1),d_id int references t_dept(d_id),e_name varchar(20),e_sex varchar(4))go www.2cto.com in 阅读全文
posted @ 2013-04-11 18:02 jack_ou 阅读(349) 评论(0) 推荐(0)
摘要: JSON是 JavaScript Object Notation的简称,是一种轻量的数据表示方法。jason格式采用key:value的方式记录数据,非常直观,比XML简洁,因而大受欢迎介绍jason格式前,先让我们看看XML格式。显然,XML 得到了相当多的关注(正面和负面的评价都有),已经在 Ajax 应用程序中广泛使用:<request> <firstName>Brett</firstName> <lastName>McLaughlin</lastName> <email>brett@newInstance.com& 阅读全文
posted @ 2013-04-11 10:42 jack_ou 阅读(3792) 评论(0) 推荐(0)
摘要: struts2系统自带了很多拦截器,有时需要我们自己定义,一般有两种方式: 并实现上述方法 相关:Struts2拦截器的使用 阅读全文
posted @ 2013-04-10 14:59 jack_ou 阅读(8523) 评论(0) 推荐(1)