恐怕我认识的95%的搞软件的人,在开发一个项目的时候,都会费好大力气去做一个叫做“数据库”文档的东西。
里面使用了大量的表格,文字,等等,告诉用户:你看,我已经把系统的50%设计出来了!
可是,这真的是正确的吗?如果是正确的,为什么我发现90%的情况,这个文档竟然没有被同步更新?或者直到
项目 release 阶段,才会去最后更新一次这个文档?
我终于发现了答案:项目的设计阶段,把数据库扔在一边!
到今天我们已经达到一个共识,就是数据库的操作,其实就是数据持久的操作。什么是持久?就是把一个类里需要
的数据保存到磁盘上。你可以保存到文件里,可以保存到数据库里, ...
1、环境属性
在之前的文档里,我们已经学会如何去初始化一个内容上下文,例如:
java 代码
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory"); ...
1、jndi 高级应用之 Name
1.1、什么是 Name?
这之前的文档中,我们所用的例子里,对象的名字都是 java.lang.String 类型的,也就是字符串类型。
在这个文档里,我们则会介绍一些其他的对象名字类型,如 Name,以及他们的使用方法。
我们首先会讲讲什么是字符串的名字和结构化的名字,以及它们的存在的必要性。
然后,我们会介绍2个结 ...
1、目录服务的操作
我们会用LDAP作为例子来讲解目录服务的操作。与命名服务不同,目录服务的内容上下文的初始化方式需要
改变:
java 代码
// Set up the environment for creating the initial context
Hashtable env = new Hashtable(); ...
命名服务的操作
1、寻找一个对象
为了从命名服务中找到一个对象,你可以使用 Context.lookup() 方法,只要传递给它你要寻找的对象的名字就可以。例如,在当前的
命名服务中,有一个对象的名字是“report.txt”,为了找到这个对象,你可以使用
Object obj = ctx.lookup("report.txt");
lookup 返回的对象类型,依据你的实际情况来看。命名系统里可以保存各种类型的对象,在这个例子中,& ...
1、准备工作
1.1 需要的软件环境
现在我们都已经都使用java 1.4 版本了,或者更高的版本,所以,java的版本这就不详细说了。
服务提供商(Ser ...
你真的十分了解JNDI吗?真的知道命名服务和目录服务的区别吗?
真的知道为什么有的时候 new InitContext() 会出错?原因是什么?
JNDI是J2EE的重要组成部分,让我们来好好学习一下Sun的JNDI教程吧,
把这些疑惑一一解开。
这些资料都来自Sun的JNDI教程,我会每天坚持翻译一点,但是不会全部翻译的,例如如何操作LDAP部分。
有的地方原文档有些啰嗦,我就改成简单的表达方式了。如果有翻译错的地方,请指证出来,我会修改。
1、命名服务
“命名”是计算 ...
装修行业与IT行业有什么联系吗?现在我说有,因为他们都是提供服务的行业。且看我详细道来。
周末楼下的邻居告诉我他家厨房顶上漏水了,我下去一看,确实有水在嘀嗒嘀嗒。那就赶紧看看原因吧,自己找了半天,
发现自己家的厨房地面都是干的,所以怀疑是哪里的水管坏了,只好联系装修公司来修理。
那个王经理听我说完情况,和我说:“现在工人都忙着,能不能下周二或三给你去看看?”
一听这话我就来气:“楼下在那漏水呢,你周二 ...
在DBUnit中使用脚本来生成测试数据
用过rails 的人都会觉得rails的测试中,fixtures 实在是一个非常方便的工具。在Java中,我们通常会使用dbunit 来维护我们的测试数据,但是,dbunit有一个不方便的地方,就是测试数据要手写。虽然我们也可以从数据库中导出来,但这并不是万灵药。
在Rails中,我们可以在fixtures中写ruby 代码,这称为动态fixtures。在dbunit 中如果也能这么做就好了!
首先,如果要实现这个功能,那么肯定涉及动态脚本的内容。自己写一个?太费劲了,浪费时间,最主要是没这个能力:)。
那么怎么办?当然是“站在巨人的肩膀上” ...
//使用dbutils1.0版本
import java.util.*;
import java.util.logging.*;
import java.sql.*;
import org.apache.commons.dbutils.*;
import org.apache.commons.dbutils.handlers.*;
public class TestDBUnits {
public static void main(String[]args) throws Exception {
TestDBUnits test = new TestDB ...
使用dbunit,可以帮助我们在测试中维护数据,也可以辅助我们的测试。
首先当然是下载dbunit, http://dbunit.sourceforge.net
我测试用的是 MYSQL 5.0 。
建立数据库:
create table test1(
id int not null auto_increment,
user_name varchar(50),
primary key(id)) engine=innodb;
保存数据的xml文件:
<dataset>
<test1 user_name="tom"/>
...
这篇文档翻译自 http://www.javaworld.com/javaworld/jw-10-2004/jw-1004-soa_p.html?page=1 ,这个文档的时间是 04年的,所以从今天的角度来看,原文的观点未必全部正确,但是作者用一个如此简单的例子来阐述了SOA,我想对SOA的理解还是有一定帮助的。
yananay@126.com
2007年6月
现在大家都有一个共识,就是开源的项目会对大家的项目有所帮助:Structs,Spring,Hibernate,Tiles,Avalon,WebWorks,Tapestry,Oracle ADF,等等还有很多很多。但是许多人 ...
这篇文档对Spring 2.0 自带的例子进行了简解,其中最主要的还是对配置文件的用法进行了分析。希望能够帮助入门者更加了解Spring及Spring的一些习惯用法。
Spring自带的例子虽然不难,但是一定程度上体现了Spring开发者对使用Spring所推荐的方法。所以,这些例子,也可以说是Spring的一个小小的教程。
这篇文档翻译自 《RestFul Rails Development》,一些地方为了表达清楚,
转换了表达方式,有的地方甚至加了一些自己的想法。
希望能帮助更多的人熟悉用rails 开发 REST风格的应用!
有什么建议或者发现错误,可以发信给我,我会进行修改。
今天看看 petportal 这个例子。
首先我们得明白什么是 portal, portlet.
关于什么是 portlet,可以参考这个文档:
http://www.blogjava.net/ericwang/archive/2005/12/05/22626.html
关于spring 中的portlet MVC 的使用,可以参考这个:
http://www.redsaga.com/spring_ref/2.0/html/portlet.html
好,那么先来看看 web.xml .
<context-param>
<param-name>context ...
首先还是来看看 web.xml.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-jdbc.xml</param-value>
</context-param>
这个和我们之前看得例子不同,这里制定了spring 的配置文件的名称,就是 applicationContext-jdbc.xml。
如果不指定的话,默认就是 applicationCon ...
通过对 spring 2.0 sample 的简解,也是学习spring 2.0 的一种方式
- 13:10
- 浏览 (436)
- 评论 (0)
首先还是先看看 web.xml.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/dataAccessContext-local.xml /WEB-INF/applicationContext.xml
</param-value>
<!--
<param-value>
/WEB-INF/dataAccessContext-jta.xml /WEB-INF/applicati ...
阅读spring 的代码首先从配置文件看起,首先看看 web.xml.
xml 代码
<context-param>
<param-name>contextConfigLocationparam-name>
<param-value>
&nb ...
首先当然是从配置文件入手。先看看 web.xml.
java 代码
xml 代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
listener>
这句的作用是初始化 applicationContext, 默认使用的配置文件就是 ...
开发阶段恐怕是整个阶段的最关键的阶段了。
开发阶段的细节决定了成败,如果这个阶段的细节不能很好的控制,那么就等着项目后期的rework吧!
这个阶段,不管出于什么理由,都会提倡使用测试驱动开发。
测试驱动开发如何去控制细节? 下面举一个简单的例子。
需求:用户登录页面。
在开始编写代码之前,我们先来写测试。那么该写什么样的测试呢?该写多少测试呢?
总之一句话:把你的需求用测试描述出来就可以了。
...
- 浏览: 144957 次

- 详细资料
搜索本博客
我的相册
tdd
共 3 张
共 3 张
最新评论
-
网站的静态页面生成方案
笑 喘 写道yananay 写道 把对 index.do 请求后的结果保存成一个 ...
-- by tianmo2008 -
网站的静态页面生成方案
我曾经尝试过在ASP.NET中做这样的事情,用某户访问某个页面时,先从配置里读取 ...
-- by 活靶子 -
网站的静态页面生成方案
对于CMS静态发布,我用的是用Veocity模板去 生产的,根据一定的业务逻辑去 ...
-- by pablo3518 -
聊聊大连新的残疾人制度
政府张口要钱,什么理由已经不重要了。。。
-- by issppt -
请先不要讨论细节好吗
[quote="ayis"][quote="kimmking"][quote=" ...
-- by gzstyxb






评论排行榜