`
wangqisen
  • 浏览: 47086 次
文章分类
社区版块
存档分类
最新评论
文章列表
HashMap是我们常用的容器类之一,阅读了HashMap类的源码之后,来分析一下其源码。 1.HashMap的类组织结构 HashMap继承自AbstractMap抽象类,AbstractMap抽象类则是对Map接口的简单实现,AbstractMap实际上已经实现了大部分Map接口的方法,并 ...
由于ajax技术禁止跨域访问,因此,受到同源策略影响,不同域名不能进行ajax请求。但是,开发人员有时候又需要这样做,于是,出于方便的需要,他们很有可能通过document.domain="a.com"将网站的域设置后,这样,该网站的子域名就可以跨域请求,但是,这样,造成的安全漏洞提供了跨域攻击的可能。 根据窗口引用的同源策略,可以做出跨域脚本注入的实验如下: 在自己的腾讯微博发出一条连接如下:http://www.qq.com。由于开发人员设置document.domain="qq.com",因此,在这个t腾讯首页页中可以对微博页面进行脚本注入 ...
JDBC数据源(DataSource)的简单实现 2010-01-13 21:51:44 标签:DataSourceJDBC休闲职场 原创作品,允许转载,转载时请务必以超链接形式标明文章
观察者模式大家应该十分熟悉,贴一张别人的图如下: 上图十分清晰的展示了观察者模式是什么样的。在java的util包里,实际上有内置的对观察者模式的实现,java.uti.Observable类就是这里的主题,而Observer接口对应的就是Observer观察者接口。 但是,实际上,虽然java对Observable的实现不是使用接口来实现,因此,实际上并不是很符合设计模式的多用组合,少用继承的原则,而且,其对应于setSate()方法也就是setChanged()方法访问权限为setChanged,因此,很难不通过继承来将其组合到自己的代码中去,但是,其对观察者模式的实现毕竟还是十分的 ...
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础,因此,下面我们着重讨论回调机制在不同软件 ...
Hibernate的对象有3种状态,分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。 瞬时态 由new命令开辟内存空间的java对象, eg. Person person = new Person("xxx", "xx"); 如果没有变量对该对象进行引用,它将被java虚拟机回收。 瞬时对象在内存孤立存在,它是携带信息的载体 ...
hibernate提供了saveOrUpdate的方法来进行数据库的操作。对于saveOrUpdate的解析,robbin有很精辟的文章了,这里不再重复,hibernate会根据对象的状态决定是insert还是update,其根本是通过xml文件中unsaved-value来确定的。如果设置null,系统会根据传入的对象的id的值判断,如果是null,则表示对象不存在,那么insert,如果不是Null,则表示已经存在,那么update如果设置为none,那么表示对象不存在,会始终调用insert如果设置为any,那么表示对象始终存在,会始终调用update了解这些后,在使用的过程中发现了一个问 ...
( update() 更新,没有主键会报错的 saveOrUpdate() 保存或更新, 没有主键就执行插入. Update:是对暂态(transient )或是只是脱管(detached)的更新操作,对于暂态对象的更新操作通常不产生效果,对于脱 管对象是做了同步的操作,即数据 ...
这是在一次事务提交时遇到的异常。 an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session) net.sf.hibernate.AssertionFailure: possible nonthreadsafe access to session 注:非possible non-threadsafe access to the session (那是另外的错误,类似但不一样) 这个异常应该很多的朋友都遇 ...
概述: 为了学习事务的管理,实现了如下的一个简单版本的事务管理器,进行实验。该管理器简化了事务管理的各种异常类型的考虑。 对于Transaction 管理 为了实现数据一致性,对于数据库的JDBC编程通常需要在代码中显示的调用Connection方法的事务相关API来完成工作。 常见的代码如下: Java代码 publicvoiddoService(){ Connectionconnection=getConnection();
1.3 SQL SERVER 的事务管理1.3.1 SQL SERVER 2005的并发控制模型 SQL SERVER 提供了悲观并发控制模式和乐观并发控制模式。 悲观并发控制模式假定系统中存在足够多的数据修改操作以致任何确定的读操作都可能会受到由别的用户所制造的数据修改的影响。换言之,数据库系统具有悲观的行为并且假定冲突是会发生的。采用了锁机制实现占有被锁定的资源,在悲观并发环境中,读者(reader)和写者(writer)之间是会互相阻塞的。 乐观并发控制模式假定系统中存在非常少的相冲突的数据修改操作,以致任何单独的事务都不太可能修改其他事务正在修改的数据。乐观并发控制的默认行为是采用行版本 ...
概述 事务控制是保证系统数据完整一致性的基础。也是企业应用系统必须解决的一个技术问题。不单是企业审计上需要,更重要是企业及时有效的通过数据监控企业当前状态的需要。所以对于一个企业级的应用数据的完整一致性是必须的。那么如何简单快速,而又可以从全局上充分的对系统的事务进行有效的控制就显得至关重要了。这里简述系统事务控制的基本概念(数据库的数据一致性问题,数据库的锁机制,数据库的隔离级别的实现),JDBC,JTA的事务控制的实现方法,Spring的事务控制这三方面进行叙述,充分的了解事务控制的细节。事务的基本概念 数据库事务有严格的定义,它必须同时满足四个特性:原子性(Atomic)、一致性(Cons ...
Hibernate的基本特征是完成面向对象的程序设计语言到关系数据库的映射,在Hibernate中使用持久化对象PO(Persistent Object)完成持久化操作,对PO的操作必须在Session管理下才能同步到数据库,但是这里的Session并非指HttpSession,可以理解为基于JDBC的Connnection,Session是 Hibernate运作的中心,对象的生命周期、事务的管理、数据库的存取都与Session息息相关,首先,我们需要知道,SessionFactory负责创建Session,SessionFactory是线程安全的,多个并发线程可以同时访问一个SessionF ...
volatile 变量使用指南 Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的
对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统开发中遇到的各种安全相关的问题,熟悉和了解这些安全技术的基本原理和使用场景还是非常必要的。本文将对非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS等这些安全领域内的技术进行一番简要的介绍,解释他们之间的关系,同时补充一些周边话题。 安全领域的技术众多,但是归根结底,他们都是为了保障如下三个方面: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器 2)加密数据以防止数据中途被窃取 3)维护数据的完整性,确保数据在传输过程中不被改变。 对称加密和非对称密钥加解密 对 ...
Global site tag (gtag.js) - Google Analytics