君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 61 62 63 64 65 66 67 68 69 ··· 107 下一页

2012年9月7日 #

摘要: JdbcTemplate针对数据查询提供了多个重载的模板方法,你可以根据需要选用不同的模板方法。 如果你的查询很简单,仅仅是传入相应SQL或者相关参数,然后取得一个单一的结果,那么你可以选择如下一组便利的模板方法:int queryForInt(String sql)int queryForInt(String sql, Object[] args)long queryForLong(String sql)long queryForLong(String sql, Object[] args)Object queryForObject(String sql, Class requiredTyp 阅读全文
posted @ 2012-09-07 00:46 刺猬的温驯 阅读(470) 评论(0) 推荐(0)

2012年9月6日 #

摘要: Spring对JDBC的抽象和对Hibernate的集成,都采用了一种理念或者处理方式,那就是模板方法模式与相应的Callback接口相结合。采用模板方法模式是为了以一种统一而集中的方式来处理资源的获取和释放,以JdbcTempalte为例,如下:Java代码publicabstractclassJdbcTemplate{publicfinalObjectexecute(Stringsql){Connectioncon=null;Statementstmt=null;try{con=getConnection();stmt=con.createStatement();ObjectretValu 阅读全文
posted @ 2012-09-06 23:27 刺猬的温驯 阅读(2934) 评论(0) 推荐(0)

摘要: 概述模板方法模式是GOF设计模式中很典型的设计模式,其意图是由抽象父类控制顶级逻辑,并把基本操作的实现推迟到子类去实现,这是通过继承的手段来达到对象的复用。Spring模板方法模式实际是模板方法模式和回调模式的结合,Spring几乎所有的外接扩展都采用这种模式,如JNDI,JMS,JCA的CCI,JDBC,ORM中的Hiberate3、jdo、Toplink等扩展都采用模板方法模式来扩展。经典的模板方法设计模式开闭原则是指一个软件实体应该对扩展开放,对修改关闭。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。如图所示,面向接口编程,client只需调用Template接口中的exe 阅读全文
posted @ 2012-09-06 23:26 刺猬的温驯 阅读(1320) 评论(0) 推荐(0)

2012年9月5日 #

摘要: 了解另外一种轻量级ORM框架地址:http://www.easyjf.com/easydbo/download.htm SVN::http://svn.easyjf.com/repository/easyjf/easydbo/序言 EasyDBO是一个非常适合中小型软件数据库开发的数据持久层框架,系统参考hibernate、JDO等,结合中小项目软件的开发实际,实现简单的对象-关系数据库映射。本文主要简介EasyDBO的使用方法,作为初学者的快速上手指南。由于EasyDBO是一个不断更新的开源项目,本教程中一些新特性、功能的介绍及应用将不定期的在EasyDBO官方网站上提供。目录:序言一... 阅读全文
posted @ 2012-09-05 18:12 刺猬的温驯 阅读(413) 评论(0) 推荐(0)

摘要: 顾名思义它是local variable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,使每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。使用场景To keep state with a thread (user-id, transaction-id, logging-id)To cache objects which you need frequentlyThreadLocal类它主要由四个方法组成initialValue(),get(),set(T),remove(),其中值得注意的 阅读全文
posted @ 2012-09-05 13:26 刺猬的温驯 阅读(236) 评论(0) 推荐(0)

摘要: 前段时间我们的系统接到新增多一个频道的需求,原本我们的系统只是针对于广州的业务,现在需要新增另一个城市上海,经过和产品人员沟通和分析,城市之间的业务逻辑除了一些小差异基本还是一样的,数据库的结构经过整合两个城市也可以达到一样的结构,但上海需要独立出另一个数据库.我们以前发布器的做法是用作为方法的一个参数由调用者一直传到访问对象(索引或数据库),虽然这种做法一样可以很快的实现,但是将数据库,索引的选择和业务逻辑混搭在一起的设计在感觉上是比较混乱,并且不利于将来多个城市(频道)的建立,所以选了通过ThreadLocal来实现多数据源的动态切换.ThreadLocal 是一个依赖于执行线程的存储器, 阅读全文
posted @ 2012-09-05 13:20 刺猬的温驯 阅读(724) 评论(0) 推荐(0)

摘要: 在大型的应用中,为了提高数据库的水平伸缩性,对多个数据库实例进行管理,需要配置多数据源。在Spring框架被广泛运用的今天,可以很简单的运用Spring中的特性配置动态多数据。1. 首先配置一个基于c3p0.ComboPooledDataSource的数据源A,数据源B.daoContext.xml[html]view plaincopy<beanid="dataSourceA"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close">& 阅读全文
posted @ 2012-09-05 13:17 刺猬的温驯 阅读(4208) 评论(0) 推荐(0)

摘要: 在利用Hibernate开发DAO模块时,我们和Session打的交道最多,所以如何合理的管理Session,避免Session的频繁创建和销毁,对于提高系统的性能来说是非常重要的。我们知道Session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一个SessionFactory并从中获取Session实例,那么Session是否是线程安全的呢?很遗憾,答案是否定的。Session中包含了数据库操作相关的状态信息,那么说如果多个线程同时使用一个Session实例进行CRUD,就很有可能导致数据存取的混乱,你能够想像那些 阅读全文
posted @ 2012-09-05 12:34 刺猬的温驯 阅读(425) 评论(0) 推荐(0)

摘要: 概述 我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。 我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。 虽然模板类通过资源池获取数据连接或会话,但资源池本身解决的是数据连接或会话的缓存问题,并非数据连接或会话的线程安全问题。 按照传统经验,如果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但Spring的DAO模板类并 阅读全文
posted @ 2012-09-05 12:31 刺猬的温驯 阅读(10624) 评论(0) 推荐(1)

摘要: 一.Spring中的WebAppRootListener这个listner的作用就是监听web.xml中的配置para-name为webAppRootKey的值,比如我的web应用为tsts,那么我配置这样一个1.<context-param>2. <param-name>webAppRootKey</param-name>3. <param-value>tsts.root</param-value>4. </context-param>5.,然后再配置这样一个监听器:1.<listener>2. <li 阅读全文
posted @ 2012-09-05 09:12 刺猬的温驯 阅读(8535) 评论(0) 推荐(1)

上一页 1 ··· 61 62 63 64 65 66 67 68 69 ··· 107 下一页