- 浏览: 889314 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (306)
- c#历程 (8)
- java (51)
- ruby & rails (40)
- web开发 (5)
- 工作流 (4)
- 数据库技术 (7)
- 数据结构与算法 (12)
- 设计模式 (5)
- 涂鸦 (36)
- erlang (8)
- my open-source (1)
- 源码解读 (6)
- [网站分类]1.网站买球买球官网平台官网平台首页原创java技术区(对买球买球官网平台官网平台首页文章的要求: 原创、高质量、经过认真思考并精心写作。blogjava管理团队会对买球买球官网平台官网平台首页的文章进行管理。) (0)
- [网站分类]4.其他技术区 (12)
- [网站分类]3.非技术区 (1)
- [网站分类]2.java新手区 (0)
社区版块
- ( 33)
- ( 1529)
- ( 28)
最新评论
-
hw7777777:
非常感谢作者提供这么好的工具,在使用的过程中遇到一些问题?1、 ...
基于java nio的memcached客户端——xmemcached -
since1978:
多久过去了时间能抹平一切
无路用的人 -
fangruanyjq:
[img][/img]引用
用osworkflow写一个请假例子(提供代码下载) -
thinkingmysky:
楼主,你确定,java memached client能处理并 ...
memcached java client性能测试的几点疑问和说明 -
hellostory:
aaa5131421 写道07年2月hibernate已经出来 ...
dozer与beanutils
呵呵,在《develope j2ee without ejb》中,dto被狠很地批判了一把,rod说这完全是反模式。可实际项目当中,我们还是不得不在使用。vo,po,一牵扯到概念总是多么复杂。。。把一个po从头传到尾??从页面到数据库,一捅到底?no,no,万一你要显示给用户的是几个po的结合怎么办?万一我们只是需要某几个属性组合在一起显示怎么办?一捅到底的策略是多么丑陋,而且你完全把你的数据库设计模型暴露给用户。所以我们需要一些map工具来转换,在这方面,过去我只知道有个 beanutils,不够灵活,而今天,接触了下dozer,啊,跟spring一样的理念!灵活多变,你想怎么映射,想怎么换都可以。看看它支持的转换类型:
• primitive to primitive wrapper
• primitive to custom wrapper
• primitive wrapper to primitive wrapper
• primitive to primitive
• complex type to complex type
• string to primitive
• string to primitive wrapper
• string to complex type if the complex type contains a string constructor
• each of these can be mapped to one another: java.util.date, java.sql.date, java.sql.time,
java.sql.timestamp, java.util.calendar, java.util.gregoriancalendar
• string to any of the supported date/calendar objects if an explicit date format mapping attribute is
specified.
• objects containing a tostring() method that produces a long representing time in (ms) to any
supported date/calendar object.
几乎我们能想到的,它都提供了方法来做到。而且dozer可以很容易地跟spring集成。下面举个简单例子:
定义一个book对象:
package com.denny_blue.dozerdemo;
public class book {
private string name;
private string author;
public book(){
}
public void setauthor(string author) {
this.author = author;
}
public string getauthor() {
return (this.author);
}
public void setname(string name){
this.name=name;
}
public string getname(){
return this.name;
}
}
简单的,我们要实例化一个对象,然后clone此对象,注意,是clone!
package com.denny_blue.dozerdemo;
import net.sf.dozer.util.mapping.dozerbeanmapper;
import java.util.list;
import java.util.arraylist;
public class myfirstdozerdemo {
public static void main(string args[]){
book book1=new book();
book1.setauthor("dennis");
book1.setname("dozer demo");
dozerbeanmapper mapper=new dozerbeanmapper();
book book2=new book();
mapper.map(book1,book2);
book2=(book)mapper.map(book1,com.denny_blue.dozerdemo.book.class);
system.out.println("book2's name:" book2.getname());
}
}
ok,如此简单,我们把book1的属性完全复制给了book2,两者现在是完全独立的对象。可如果仅仅是这样,我们用beanutils不是也很容易办到? book2=(book)beanutils.clonebean(book1);可如果我要把book1映射给一个完全不同的类的对象怎么办?而且他们的属性名也不相同,怎么办?比如,一个cookbook类:
package com.denny_blue.dozerdemo;
public class cookbook {
private string bookname;
private string author;
public cookbook(){}
public string getbookname() {
return (this.bookname);
}
public void setbookname(string bookname) {
this.bookname = bookname;
}
public string getauthor() {
return (this.author);
}
public void setauthor(string author) {
this.author = author;
}
}
它的bookname属性与book的name属性名不一样,我们该如何复制?dozer通过xml文件的配置来灵活地达到这个目的。我们配置一个dozerbeanmapping.xml:
"">
bookname
author
如上所示,
- 2007-02-06 12:45
- 浏览 11342
- 评论(3)
评论
数据库设计并不是暴漏给用户,只是界面而已。如果有远程调用,确实会暴漏给客户,可是暴漏了又有什么问题吗?其实归根暴漏的是业务逻辑,数据库只是你的实现方式恰好和领域模型一致罢了。一个不想给客户看业务逻辑的接口,你想让客户怎么去调用呢
如果user表有一个字段是isadmin,然后对应类user也有一个属性是isadmin,莫非也放在界面的隐藏域?你真是xxxx!
数据库设计并不是暴漏给用户,只是界面而已。如果有远程调用,确实会暴漏给客户,可是暴漏了又有什么问题吗?其实归根暴漏的是业务逻辑,数据库只是你的实现方式恰好和领域模型一致罢了。一个不想给客户看业务逻辑的接口,你想让客户怎么去调用呢
发表评论
-
memcached分布测试报告(一致性哈希情况下的散列函数选择)
2009-03-10 16:30 7968一、背景资料 memcached本身是集中式的缓存系统 ... -
xmemcached vs spymemcached 3th(linux下测试结果和多节点下表现)
2009-03-07 10:43 4314翠花,上图,首先是容器类和自定义对象的get、set在不同并发 ... -
xmemcached发布1.0-beta版
2009-03-09 15:32 3564xmemcached 发布1.0-beta ,从0.6 ... -
山寨nio框架yanf4j发布0.50-alpha
2009-02-04 19:28 3726俺的山寨nio框架yanf4j发布0.50-alpha版本,下 ... -
yanf4j引入了客户端非阻塞api
2009-02-19 00:15 2569yanf4j 发布一个0.50-beta2 版本,这个版本最 ... -
基于java nio的memcached客户端——xmemcached
2009-03-03 16:31 68681、xmemcached是什么? xmemcached是基于 ...
相关推荐
内含dozer的完整实例,以及jar包。dozer比beanutils更灵活,同时可以很容易地跟spring集成。也可以用注解@mapping("asstmanagerid")来代替xml配置
dozer是一种javabean的映射工具,类似于apache的beanutils
下载内容包含 commons-beanutils-1.7.0.jar commons-collections.jar commons-lang-2.5.jar dozer-5.2.0.jar等
dozer是一种javabean的映射工具,类似于apache的beanutils。但是dozer更强大,它可以灵活的处理复杂类型之间的映射
dozer-5.5.1.jar dozer-5.5.1.jar dozer-5.5.1.jar dozer-5.5.1.jar
dozer是一种javabean的映射工具,类似于apache的beanutils。它可以灵活地处理复杂类型之间的映射。不但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,并且可以通过xml配置文件进行灵活的配置。 ...
赠送jar包:dozer-5.5.1.jar; 赠送原api文档:dozer-5.5.1-javadoc.jar; 赠送源代码:dozer-5.5.1-sources.jar; 赠送maven依赖信息文件:dozer-5.5.1.pom; 包含翻译后的api文档:dozer-5.5.1-javadoc-api文档-...
dozer的eclipse插件,使用该插件可以可视化编辑对应属性,简化你的编码工作
dozer 的配置mapping,包含普通映射配置,list复杂类型配置。reqparam.json 是转换类的参数值,stringutils 读取文件。
需要lib[dozer-5.0.jar, commons-lang.jar],有需要的请猛击下载
该文件是拷贝对象工具dozer相关的jar包和dozer的配置用法的详细说明,简洁实用。
有关于dozer的用法 毕业了~ 所有资料拿出来分享~ 难免有错误~多见谅~
dozer5.5.1 ( 可集成spring 及 osgi ) , 不论在spring及osgi 下均可使用 包含所有5.5.1 所依赖的jar包,可根据需求添加。
dozer是一款优秀的java bean映射开源框架,完成深度转换bean<->bean的mapper实现
赠送jar包:dozer-5.5.1.jar; 赠送原api文档:dozer-5.5.1-javadoc.jar; 赠送源代码:dozer-5.5.1-sources.jar; 赠送maven依赖信息文件:dozer-5.5.1.pom; 包含翻译后的api文档:dozer-5.5.1-javadoc-api文档-...
好用简洁的开源mac osx下的菜单栏管理软件,完美替代bartender
null 博文链接:https://gaojiewyh.iteye.com/blog/1528587
dozer使用总结.rar,dozer使用总结.doc
dozer.rar,dozer-5.3.2.jar,dozer.pdf