自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 API分页最佳实践

提供API分页功能的时候, 有一些最佳实践值得分享, 列出来如下1. 对于合格数据量特别大的情况 比如表中数据1000W, where之后还有30W这种,  禁止使用 limit m,n 这种分页, 越翻越慢, 从而导致mysql消耗资源过高, 此类分页是查出前XX页, 舍弃掉, 如果 limit 100000, 2, 会查出100000条, 然后舍弃掉,推荐使用基于自增id进行分

2013-12-18 11:46:48 800

原创 如何利用反射获得注解的名称和内部的值

使用httpclient向后端API POST数据的时候, 需要构建POST的param, 如果使用代码写的话太不优雅了, 所以考虑一种比较通用的方式实现, 详见代码, 我们使用的注解是 fastjson的, 大家可以使用其他的替换, 意思都是相通的package zhwb.service.util;import com.alibaba.fastjson.annotation.JS

2013-12-06 17:49:23 802

原创 Spring 通过注解注入Properties文件

原来一直使用spring xml来管理properties 的 placeholder, 这种方式造成无法使用Spring注解方式注入, 造成了xml的代码冗余, 现在Spring提供了一种更加优雅的方式来配合annotation的注入方式, 详见代码原本是要这么写的 xml<context:property-placeholder location="

2013-12-06 17:40:35 1810

原创 httpclient4 的封装

支持可配置的连接池, 单例的httpclinet, 更好的response handlepackage zhwb.util;import org.apache.http.HttpHost;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpUriRequest;i

2013-12-01 18:15:06 1264

原创 TestNG和PowerMock EasyMock的结合

PowerMock比较强大, 是一个基于EasyMock之上的mock工具, 它可以帮你mock内部new的对象, final方法, 私有方法等等, 具体请看他的官网, 例子很详细https://code.google.com/p/powermock/我这边想mock httpclient 对象, 因为这个对象是在方法中被new出来的  jmock easymock无能为力

2013-12-01 17:58:41 2107

原创 数据库优雅地实现软删除

一提到软删除, 大家一定会说到, isDeleted这个字段, 或者叫status,关于这个可以看一下其他博友的文章但是这种设计真的好吗, 其实针对不同的场景, 我们可以采用不同的设计方案来减少设计的复杂度。考虑下面的场景: 你是后台API提供方, 调用者每天会定时向你发送一批全量数据, 这些数据每天都会有一定的差别, 比如新增了xx新的记录, 减少了xx条老的记录, 还有

2013-12-01 17:48:46 9700

原创 iBtais 多重嵌套循环

iBatis支持集合循环, 但是如何做到双重循环, 请见下例子例子描述:需要去三张结构相同的表中获取信息, 需要将信息拼合去重后返回入参数据类型: Map,   regions  = Listclass OrderRegionNums{String regionSchemaString regionCodeList orderNums}

2013-12-01 16:53:11 1012

原创 JAVA与数据库直接时间问题汇总

java存DB的时候 按照本地timeZone 然后toString后的时间存到DBDB中取的时候 按照本地TimeZone作为取到的时间的TimeZone 所以 对于 DB中的时间 取出来的seconds 是根据timeZone不同而不同的,需要特别注意1. DateFormat 不是线程安全 不能作为静态变量 sdf.setLenient(false);要求格式强匹配2.

2013-12-01 16:42:00 375

原创 MySQL 因 select for update 导致的死锁问题 原因及解决方案

问题描述: 检查程序运行日志的时候, 发现了很多DB死锁, 我这边程序中使用的是悲观锁, 因为考虑到不想让调用端重试。死锁原因:有多个请求同时希望insert表, 程序中逻辑如下:select for update where uid = ?if [obj ]not existinsert elseupdate死锁原因就是 select for upda

2013-12-01 16:28:41 14245

汇编语言课件(清华版)

汇编语言 《清华版》 有各章节介绍和软件下载

2009-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除