坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Yearly Archives: 2012

rose手册第三章B节:DAO层:DAO进阶:SQLParm支持和表达式SQL

3.B.1 SQLParam介绍:DAO方法传递参数 SQLParam作为DAO支持中的参数传递使者,可以传递一个常见的变量,也可以是一个自定义的对象。 比如: @SQL("insert into test (id,msg) values (:t.id,:t.msg)")    public void insertTest(@SQLParam("t") Test test);   上列中Test对象通过t传递到sql执行中去,并且可以分别使用其中的属性。这感觉是不是很自然? 当然,如果是一个int、long、String等自在不言中。 当是list时,会有自动的batch操作,将sql拆为多条sql执行。这个小技巧会在后面的章节里讲。平时很少用到。 3.B.2 ReturnGeneratedKeys介绍:返回刚刚插入的ID号 特别是使用mysql开发的广大劳苦大众,常常会使用到auto_increament的字段。 当一条insert语句在执行的时候,我们常常会去需要拿它的当前的自增id是多少。 @ReturnGeneratedKeys   @SQL("insert into test (id,msg) values (:t.id,:t.msg)")   public&nbs

Continue reading

Posted in java | Tagged | 35 Comments

54chen Twitter memo 2012-07-01

rose手册第三章A节:DAO层:DAO的基本配置与使用 http://t.co/Whs4IMIL # 开始DAO层的文档写作,恰逢公司热火朝天融资翻番,本想说点啥感言吧,最后只留下在文章末尾附招人广告邮箱一枚,哈哈。 # 有朋友在观望rose-jade的时候发现无法用注解做更加灵活的动态sql,其实jade提供了常规的一些if表达式之类的支持。 # 54chen Twitter memo 2012-06-24 http://t.co/a13H2rOR #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

rose手册第三章A节:DAO层:DAO的基本配置与使用

本章开始进入对DB层的支持,同进也是日常开发用得最多的章节。 3.A.1 什么是jade? jade大概是java access data layer的意思吧,具体的来由,在章节写到末尾的时候,我再找qieqie和liaohan大侠们写一写编年史。 用jade的好处在于,尽可能减少重复的从db把数据对bean进行装配的过程,统一入口,隔离业务逻辑,方便review。 jade是在spring完成的数据层的良好实践总结,无缝接入rose中,可以算得上是rose亲密无间的好模块。 3.A.2 引入基础配置 要开始使用jade,一定要先引用jade的基础包: pom.xml <dependency>       <groupId>com.54chen</groupId>       <artifactId>paoding-rose-jade</artifactId>       <version>1.1</version>   </dependency>   除了需要jade的包外,还需要引入数据源连接池的jar,这里使用了dbcp,还是在pom.xml中: <dependency>   &

Continue reading

Posted in java | Tagged | 28 Comments

54chen Twitter memo 2012-06-24

有写ansi C的人吗,都用tclsh做测试吗? # rose手册第三章七节:controller层:上传文件 http://t.co/AhYPKs9o # 一群人揉吧揉吧出来的产品与一个霸权主义老大整出来的产品哪个更靠谱? # 三十岁前你养成习惯,三十岁后习惯养成你。 # 54chen Twitter memo 2012-06-17 http://t.co/zBXFE46s #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

rose手册第三章九节:controller层:上传文件

3.9.1 其实很简单 添加依赖包:commons-io.jar html中使用 enctype="multipart/form-data",method="POST" 直接看后端代码吧。 @Post("/doUpload")      public String doUpload(@Param("file") MultipartFile file) {          return "@ upload ok!" + file.getOriginalFilename();      }   3.9.2 其他 可以同时接收所有的文件 // 不声明@Param   // files可以是一个数组或者List   public String upload(MultipartFile[] files) {       return "@ok-" + Arrays.toString(files);   } &nbs

Continue reading

Posted in java | Tagged | 8 Comments

54chen Twitter memo 2012-06-17

现代中国互联网产品的拼杀到技术上最终都到了sql的拼杀,抛开框架层面的东西,大面上来说,还需要大量的写sql的人员,新的职业,就叫做SQLer吧。肯定有人不愿意了叫SQLer,工作多年还能写出二分查找、双向链表反序的不在此列。 # @javasoze we too, haha # 搞后台的遇到的最苦逼的事情No.1:线上挂了,N多用户等着,经理老板在屁股后头问怎么回事,MD技术选型时图新鲜,觉得不会挂,这下SB了,从源代码开始解起。 [所幸这事工作中还没遇到过,在大学里搞BBS时天天干这事] # rose手册第三章八节:controller层:门户必备pipe支持 http://t.co/A0T2v2f3 # @javasoze Derby doesn't support auto_increament.H2Database is better than it. # 看你的右手中指第一个关节近食指的一面,是不是茧要厚些,这是你好好学习的象征。 # mysql要是能够提供一个纯java的内存数据库,那对写test case会提供巨大的帮助。 # 54chen Twitter memo 2012-06-10 http://t.co/VQwbDOst #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

rose手册第三章八节:controller层:门户必备pipe支持

3.8.1 什么是pipe? ------------------ * pipe起源于facebook的工程师对他们网页提速的方案:将网页分解为Pagelets的小块(在rose叫做window的小块),然后通过后端多重管道运行,以达到性能的最佳。 * pipe巧妙使用了http 1.1连接有timeout的机制,充分使用一次http连接来传递数据。 * pipe可使用户在大多数浏览器中感受到延迟减少了一半。 3.8.2 与facebook的bigpipe相比rose pipe如何? -------------------------------------------- * fb并未在开源项目中公布过使用方法 * bigpipe神似是php+js搞定的 * rose pipe可以自由选择线程池大小,完全出自上一节的portal的基础 * 完全实现bigpipe功能,天然的对业务开发者透明 3.8.3 看实例 ------------ HelloController.java @Get("/3.8")   public String pipe(Pipe pipe) {       pipe.addWindow("p1", "/wp1");       pipe.addWindow("p2", "/wp2");      &

Continue reading

Posted in java | Tagged | 13 Comments

54chen Twitter memo 2012-06-10

移动互联网必备:各平台自助渠道打包手段公开 http://t.co/L5wXmdMX # rose手册第三章七节:controller层:门户必备portal支持 http://t.co/104PdX8K # linux下使用java打包wp7的包时,按照zip解压后重新压缩成xap,wp就不认了,有哪位大侠支个招?初步估计与file Separator有关系。 # gmail同时收到人人网和facebook的邮件,都是说你的好友有过生日的,因为gmail默认不显示图片,facebook的邮件组织完整,表格正常,只是图片不显示,人人网的乱七八糟不知所云,所谓用户体验不过是比正常情况多考虑一步。 # 54chen Twitter memo 2012-06-03 http://t.co/fU12PNOy #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

移动互联网必备:各平台自助渠道打包手段公开

移动互联网做app是个酷毙的事情,同等产品条件下比拼的是渠道。怎么样让渠道人员(非技术)快捷地拿到想到的标识有相关渠道信息的包,是个关键的问题。 因为平台不一样,打包手法也不尽相同,下面总结下54chen在工作过程中遇到的问题和解决的办法: 1.android android下无法将一个apk包修改字节流之后apk还重新生效,因为android加key的过程会使这一过程变得无效。 采取的办法:用ant或者maven在对java代码进行build时传入渠道信息。 简单地说:当你有一个xxx渠道的包需要打的时候,后台要做的事情就是 ant -Dchannel=xxx 或者 mvn -U clean package -Dchannel=xxx 2.iphone iphone的正式渠道很少,先说越狱过的: 一个ipa包就是一个标准的zip包,只要在包里放一个channel.txt,保存渠道信息。 简单地说:当你有一个xxx渠道包需要打的时候,后台要做的事情就是打开这个ipa,修改channel.txt的内容为xxx,重新按zip压缩为ipa。 没有越狱过的iphone(占多数): 安装渠道只有一个,那就是appstore。但是推广渠道可能是多个,用户点击后到达appstore,再从appstore下载。这个过程中,ipa包没有办法携带渠道信息,希望apple公司改进。有人用一次跳转记录用户ip,但是不能准确反馈这个渠道的安装量。 3.塞班 sis/sisx的签名比较弱,签好的包,可以在包末尾写入一些字节达到携带渠道信息。 简单地说:当你有一个xxx渠道包需要打的时候,后台要做的事情

Continue reading

Posted in 资料文档 | Tagged | 1 Comment

rose手册第三章七节:controller层:门户必备portal支持

3.7.1 什么是portal? -------------------- *字面意思,做门户用的。 *简单来说,把一个网页分成了N个区域,每个区域由不同的action去执行,多线程并行提高cpu使用率。 3.7.2 使用例子 ----------- *要使用portal,必须先在web.xml里声明所使用的线程池大小: <context-param>           <param-name>portalExecutorCorePoolSize</param-name>           <param-value>1024</param-value>   </context-param>   *然后看示例代码: @Get("/3.7")   public String portal(Portal portal) {       portal.addWindow("p1", "/wp1");       portal.addWindow("p2", "

Continue reading

Posted in java | Tagged | 11 Comments
Page 4 of 8« First...23456...Last »