整理收集的一些常用java工具类

1.json转换工具

1.package com.taotao.utils;3.import java.util.List;5.import com.fasterxml.jackson.core.JsonProcessingException;6.import com.fasterxml.jackson.databind.JavaType;7.import com.fasterxml.jackson.databind.JsonNode;8.import com.fasterxml.jackson.databind.ObjectMapper;10./**

11.  * json转换工具类

12.  */13.publicclassJsonUtils{15.// 定义jackson对象  16.privatestaticfinalObjectMapper MAPPER =newObjectMapper();18./** 19.  * 将对象转换成json字符串。 20.  *

Title: pojoToJson

21.  *

Description:

22.  *@paramdata 23.  *@return24.  */25.publicstaticString objectToJson(Object data) {26.try{27.String string = MAPPER.writeValueAsString(data);28.returnstring;29.}catch(JsonProcessingException e) {30.e.printStackTrace();31.}32.returnnull;33.}35./** 36.  * 将json结果集转化为对象 37.  *  38.  *@paramjsonData json数据 39.  *@paramclazz 对象中的object类型 40.  *@return41.  */42.publicstatic T jsonToPojo(String jsonData,ClassbeanType){43.try{44.T t = MAPPER.readValue(jsonData, beanType);45.returnt;46.}catch(Exceptione) {47.e.printStackTrace();48.}49.returnnull;50.}52./** 53.  * 将json数据转换成pojo对象list 54.  *

Title: jsonToList

55.  *

Description:

56.  *@paramjsonData 57.  *@parambeanType 58.  *@return59.  */60.publicstaticList jsonToList(String jsonData,ClassbeanType){61.JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);62.try{63.Listlist= MAPPER.readValue(jsonData, javaType);64.returnlist;65.}catch(Exceptione) {66.e.printStackTrace();67.}69.returnnull;70.}72.}

2.cookie的读写

1.packagecom.taotao.common.utils;3.importjava.io.UnsupportedEncodingException;4.importjava.net.URLDecoder;5.importjava.net.URLEncoder;7.importjavax.servlet.http.Cookie;8.importjavax.servlet.http.HttpServletRequest;9.importjavax.servlet.http.HttpServletResponse;12./**

13.  * 

14.  * Cookie 工具类

15.  *

16.  */17.publicfinalclassCookieUtils{19./** 20.  * 得到Cookie的值, 不编码 21.  *  22.  *@paramrequest 23.  *@paramcookieName 24.  *@return25.  */26.publicstaticStringgetCookieValue(HttpServletRequest request, String cookieName){27.returngetCookieValue(request, cookieName,false);28.  }30./** 31.  * 得到Cookie的值, 32.  *  33.  *@paramrequest 34.  *@paramcookieName 35.  *@return36.  */37.publicstaticStringgetCookieValue(HttpServletRequest request, String cookieName,booleanisDecoder){38.  Cookie[] cookieList = request.getCookies();39.if(cookieList ==null|| cookieName ==null) {40.returnnull;41.  }42.  String retValue =null;43.try{44.for(inti =0; i < cookieList.length; i++) {45.if(cookieList[i].getName().equals(cookieName)) {46.if(isDecoder) {47.  retValue = URLDecoder.decode(cookieList[i].getValue(),"UTF-8");48.  }else{49.  retValue = cookieList[i].getValue();50.  }51.break;52.  }53.  }54.  }catch(UnsupportedEncodingException e) {55.  e.printStackTrace();56.  }57.returnretValue;58.  }60./** 61.  * 得到Cookie的值, 62.  *  63.  *@paramrequest 64.  *@paramcookieName 65.  *@return66.  */67.publicstaticStringgetCookieValue(HttpServletRequest request, String cookieName, String encodeString){68.  Cookie[] cookieList = request.getCookies();69.if(cookieList ==null|| cookieName ==null) {70.returnnull;71.  }72.  String retValue =null;73.try{74.for(inti =0; i < cookieList.length; i++) {75.if(cookieList[i].getName().equals(cookieName)) {76.  retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString);77.break;78.  }79.  }80.  }catch(UnsupportedEncodingException e) {81.  e.printStackTrace();82.  }83.returnretValue;84.  }86./**

87.  * 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码

88.  */89.publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,90.String cookieValue){91.  setCookie(request, response, cookieName, cookieValue, -1);92.  }94./**

95.  * 设置Cookie的值 在指定时间内生效,但不编码

96.  */97.publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,98.String cookieValue,intcookieMaxage){99.  setCookie(request, response, cookieName, cookieValue, cookieMaxage,false);100.  }102./**

103.  * 设置Cookie的值 不设置生效时间,但编码

104.  */105.publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,106.String cookieValue,booleanisEncode){107.  setCookie(request, response, cookieName, cookieValue, -1, isEncode);108.  }110./**

111.  * 设置Cookie的值 在指定时间内生效, 编码参数

112.  */113.publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,114.String cookieValue,intcookieMaxage,booleanisEncode){115.  doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode);116.  }118./**

119.  * 设置Cookie的值 在指定时间内生效, 编码参数(指定编码)

120.  */121.publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,122.String cookieValue,intcookieMaxage, String encodeString){123.  doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString);124.  }126./**

127.  * 删除Cookie带cookie域名

128.  */129.publicstaticvoiddeleteCookie(HttpServletRequest request, HttpServletResponse response,130.String cookieName){131.  doSetCookie(request, response, cookieName,"", -1,false);132.  }134./** 135.  * 设置Cookie的值,并使其在指定时间内生效 136.  *  137.  *@paramcookieMaxage cookie生效的最大秒数 138.  */139.privatestaticfinalvoiddoSetCookie(HttpServletRequest request, HttpServletResponse response,140.String cookieName, String cookieValue,intcookieMaxage,booleanisEncode){141.try{142.if(cookieValue ==null) {143.  cookieValue ="";144.  }elseif(isEncode) {145.  cookieValue = URLEncoder.encode(cookieValue,"utf-8");146.  }147.  Cookie cookie =newCookie(cookieName, cookieValue);148.if(cookieMaxage >0)149.  cookie.setMaxAge(cookieMaxage);150.if(null!= request) {// 设置域名的cookie  151.  String domainName = getDomainName(request);152.  System.out.println(domainName);153.if(!"localhost".equals(domainName)) {154.  cookie.setDomain(domainName);155.  }156.  }157.  cookie.setPath("/");158.  response.addCookie(cookie);159.  }catch(Exception e) {160.  e.printStackTrace();161.  }162.  }164./** 165.  * 设置Cookie的值,并使其在指定时间内生效 166.  *  167.  *@paramcookieMaxage cookie生效的最大秒数 168.  */169.privatestaticfinalvoiddoSetCookie(HttpServletRequest request, HttpServletResponse response,170.String cookieName, String cookieValue,intcookieMaxage, String encodeString){171.try{172.if(cookieValue ==null) {173.  cookieValue ="";174.  }else{175.  cookieValue = URLEncoder.encode(cookieValue, encodeString);176.  }177.  Cookie cookie =newCookie(cookieName, cookieValue);178.if(cookieMaxage >0)179.  cookie.setMaxAge(cookieMaxage);180.if(null!= request) {// 设置域名的cookie  181.  String domainName = getDomainName(request);182.  System.out.println(domainName);183.if(!"localhost".equals(domainName)) {184.  cookie.setDomain(domainName);185.  }186.  }187.  cookie.setPath("/");188.  response.addCookie(cookie);189.  }catch(Exception e) {190.  e.printStackTrace();191.  }192.  }194./**

195.  * 得到cookie的域名

196.  */197.privatestaticfinalStringgetDomainName(HttpServletRequest request){198.  String domainName =null;200.  String serverName = request.getRequestURL().toString();201.if(serverName ==null|| serverName.equals("")) {202.  domainName ="";203.  }else{204.  serverName = serverName.toLowerCase();205.  serverName = serverName.substring(7);206.finalintend = serverName.indexOf("/");207.  serverName = serverName.substring(0, end);208.finalString[] domains = serverName.split("\\.");209.intlen = domains.length;210.if(len >3) {211.// www.xxx.com.cn  212.  domainName ="."+ domains[len -3] +"."+ domains[len -2] +"."+ domains[len -1];213.  }elseif(len <=3&& len >1) {214.// xxx.com or xxx.cn  215.  domainName ="."+ domains[len -2] +"."+ domains[len -1];216.  }else{217.  domainName = serverName;218.  }219.  }221.if(domainName !=null&& domainName.indexOf(":") >0) {222.  String[] ary = domainName.split("\\:");223.  domainName = ary[0];224.  }225.returndomainName;226.  }228.  }

3.HttpClientUtil

1.package com.taotao.utils;3.importjava.io.IOException;4.importjava.net.URI;5.importjava.util.ArrayList;6.importjava.util.List;7.importjava.util.Map;9.importorg.apache.http.NameValuePair;10.importorg.apache.http.client.entity.UrlEncodedFormEntity;11.importorg.apache.http.client.methods.CloseableHttpResponse;12.importorg.apache.http.client.methods.HttpGet;13.importorg.apache.http.client.methods.HttpPost;14.importorg.apache.http.client.utils.URIBuilder;15.importorg.apache.http.entity.ContentType;16.importorg.apache.http.entity.StringEntity;17.importorg.apache.http.impl.client.CloseableHttpClient;18.importorg.apache.http.impl.client.HttpClients;19.importorg.apache.http.message.BasicNameValuePair;20.importorg.apache.http.util.EntityUtils;22.publicclassHttpClientUtil{24.publicstaticStringdoGet(Stringurl,Map param) {26.// 创建Httpclient对象  27.CloseableHttpClient httpclient = HttpClients.createDefault();29.StringresultString ="";30.CloseableHttpResponse response =null;31.try{32.// 创建uri  33.URIBuilder builder =newURIBuilder(url);34.if(param !=null) {35.for(Stringkey : param.keySet()) {36.builder.addParameter(key, param.get(key));37.}38.}39.URI uri = builder.build();41.// 创建http GET请求  42.HttpGet httpGet =newHttpGet(uri);44.// 执行请求  45.response = httpclient.execute(httpGet);46.// 判断返回状态是否为200  47.if(response.getStatusLine().getStatusCode() ==200) {48.resultString = EntityUtils.toString(response.getEntity(),"UTF-8");49.}50.}catch(Exception e) {51.e.printStackTrace();52.}finally{53.try{54.if(response !=null) {55.response.close();56.}57.httpclient.close();58.}catch(IOException e) {59.e.printStackTrace();60.}61.}62.returnresultString;63.}65.publicstaticStringdoGet(Stringurl) {66.returndoGet(url,null);67.}69.publicstaticStringdoPost(Stringurl,Map param) {70.// 创建Httpclient对象  71.CloseableHttpClient httpClient = HttpClients.createDefault();72.CloseableHttpResponse response =null;73.StringresultString ="";74.try{75.// 创建Http Post请求  76.HttpPost httpPost =newHttpPost(url);77.// 创建参数列表  78.if(param !=null) {79.List paramList =newArrayList<>();80.for(Stringkey : param.keySet()) {81.paramList.add(newBasicNameValuePair(key, param.get(key)));82.}83.// 模拟表单  84.UrlEncodedFormEntity entity =newUrlEncodedFormEntity(paramList);85.httpPost.setEntity(entity);86.}87.// 执行http请求  88.response = httpClient.execute(httpPost);89.resultString = EntityUtils.toString(response.getEntity(),"utf-8");90.}catch(Exception e) {91.e.printStackTrace();92.}finally{93.try{94.response.close();95.}catch(IOException e) {96.// TODO Auto-generated catch block  97.e.printStackTrace();98.}99.}101.returnresultString;102.}104.publicstaticStringdoPost(Stringurl) {105.returndoPost(url,null);106.}108.publicstaticStringdoPostJson(Stringurl,Stringjson) {109.// 创建Httpclient对象  110.CloseableHttpClient httpClient = HttpClients.createDefault();111.CloseableHttpResponse response =null;112.StringresultString ="";113.try{114.// 创建Http Post请求  115.HttpPost httpPost =newHttpPost(url);116.// 创建请求内容  117.StringEntity entity =newStringEntity(json, ContentType.APPLICATION_JSON);118.httpPost.setEntity(entity);119.// 执行http请求  120.response = httpClient.execute(httpPost);121.resultString = EntityUtils.toString(response.getEntity(),"utf-8");122.}catch(Exception e) {123.e.printStackTrace();124.}finally{125.try{126.response.close();127.}catch(IOException e) {128.// TODO Auto-generated catch block  129.e.printStackTrace();130.}131.}133.returnresultString;134.}135.}

4.FastDFSClient工具类

1.packagecn.itcast.fastdfs.cliennt;3.importorg.csource.common.NameValuePair;4.importorg.csource.fastdfs.ClientGlobal;5.importorg.csource.fastdfs.StorageClient1;6.importorg.csource.fastdfs.StorageServer;7.importorg.csource.fastdfs.TrackerClient;8.importorg.csource.fastdfs.TrackerServer;10.publicclassFastDFSClient{12.privateTrackerClient trackerClient =null;13.privateTrackerServer trackerServer =null;14.privateStorageServer storageServer =null;15.privateStorageClient1 storageClient =null;17.publicFastDFSClient(String conf)throwsException{18.if(conf.contains("classpath:")) {19.  conf = conf.replace("classpath:",this.getClass().getResource("/").getPath());20.  }21.  ClientGlobal.init(conf);22.  trackerClient =newTrackerClient();23.  trackerServer = trackerClient.getConnection();24.  storageServer =null;25.  storageClient =newStorageClient1(trackerServer, storageServer);26.  }28./** 29.  * 上传文件方法 30.  *

Title: uploadFile

31.  *

Description:

32.  *@paramfileName 文件全路径 33.  *@paramextName 文件扩展名,不包含(.) 34.  *@parammetas 文件扩展信息 35.  *@return36.  *@throwsException 37.  */38.publicStringuploadFile(String fileName, String extName, NameValuePair[] metas)throwsException{39.  String result = storageClient.upload_file1(fileName, extName, metas);40.returnresult;41.  }43.publicStringuploadFile(String fileName)throwsException{44.returnuploadFile(fileName,null,null);45.  }47.publicStringuploadFile(String fileName, String extName)throwsException{48.returnuploadFile(fileName, extName,null);49.  }51./** 52.  * 上传文件方法 53.  *

Title: uploadFile

54.  *

Description:

55.  *@paramfileContent 文件的内容,字节数组 56.  *@paramextName 文件扩展名 57.  *@parammetas 文件扩展信息 58.  *@return59.  *@throwsException 60.  */61.publicStringuploadFile(byte[] fileContent, String extName, NameValuePair[] metas)throwsException{63.  String result = storageClient.upload_file1(fileContent, extName, metas);64.returnresult;65.  }67.publicStringuploadFile(byte[] fileContent)throwsException{68.returnuploadFile(fileContent,null,null);69.  }71.publicStringuploadFile(byte[] fileContent, String extName)throwsException{72.returnuploadFile(fileContent, extName,null);73.  }74.  }

1.publicclassFastDFSTest{3.@Test4.publicvoid testFileUpload() throwsException{5.// 1、加载配置文件,配置文件中的内容就是tracker服务的地址。  6.ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf");7.// 2、创建一个TrackerClient对象。直接new一个。  8.TrackerClient trackerClient =newTrackerClient();9.// 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。  10.TrackerServer trackerServer = trackerClient.getConnection();11.// 4、创建一个StorageServer的引用,值为null  12.StorageServer storageServer =null;13.// 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用  14.StorageClient storageClient =newStorageClient(trackerServer, storageServer);15.// 6、使用StorageClient对象上传图片。  16.//扩展名不带“.”  17.String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg","jpg",null);18.// 7、返回数组。包含组名和图片的路径。  19.for(String string : strings) {20.System.out.println(string);21.}22.}23.}# ![image](http://upload-images.jianshu.io/upload_images/2509688-45370c9d24b87e31?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5.获取异常的堆栈信息

1.packagecom.taotao.utils;3.importjava.io.PrintWriter;4.importjava.io.StringWriter;6.publicclassExceptionUtil{8./** 9.  * 获取异常的堆栈信息 10.  *  11.  *@paramt 12.  *@return13.  */14.publicstaticStringgetStackTrace(Throwable t){15.  StringWriter sw =newStringWriter();16.  PrintWriter pw =newPrintWriter(sw);18.try{19.  t.printStackTrace(pw);20.returnsw.toString();21.  }finally{22.  pw.close();23.  }24.  }25.  }

#6.easyUIDataGrid对象返回值

1.packagecom.taotao.result;3.importjava.util.List;5./** 6.  * easyUIDataGrid对象返回值 7.  *

Title: EasyUIResult

8.  *

Description:

9.  *

Company: www.itcast.com

  10.  *@author入云龙 11.  *@date2015年7月21日下午4:12:52 12.  *@version1.0 13.  */14.publicclassEasyUIResult{16.privateInteger total;18.privateList rows;20.publicEasyUIResult(Integer total, List rows){21.this.total = total;22.this.rows = rows;23.  }25.publicEasyUIResult(longtotal, List rows){26.this.total = (int) total;27.this.rows = rows;28.  }30.publicIntegergetTotal(){31.returntotal;32.  }33.publicvoidsetTotal(Integer total){34.this.total = total;35.  }36.publicList getRows() {37.returnrows;38.  }39.publicvoidsetRows(List rows){40.this.rows = rows;41.  }44.  }

7.ftp上传下载工具类

1.packagecom.taotao.utils;3.importjava.io.File;4.importjava.io.FileInputStream;5.importjava.io.FileNotFoundException;6.importjava.io.FileOutputStream;7.importjava.io.IOException;8.importjava.io.InputStream;9.importjava.io.OutputStream;11.importorg.apache.commons.net.ftp.FTP;12.importorg.apache.commons.net.ftp.FTPClient;13.importorg.apache.commons.net.ftp.FTPFile;14.importorg.apache.commons.net.ftp.FTPReply;16./** 17.  * ftp上传下载工具类 18.  *

Title: FtpUtil

19.  *

Description:

20.  *

Company: www.itcast.com

  21.  *@author入云龙 22.  *@date2015年7月29日下午8:11:51 23.  *@version1.0 24.  */25.publicclassFtpUtil{27./**  28.  * Description: 向FTP服务器上传文件  29.  *@paramhost FTP服务器hostname  30.  *@paramport FTP服务器端口  31.  *@paramusername FTP登录账号  32.  *@parampassword FTP登录密码  33.  *@parambasePath FTP服务器基础目录 34.  *@paramfilePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath 35.  *@paramfilename 上传到FTP服务器上的文件名  36.  *@paraminput 输入流  37.  *@return成功返回true,否则返回false  38.  */39.publicstaticbooleanuploadFile(String host,intport, String username, String password, String basePath,40.String filePath, String filename, InputStream input){41.booleanresult =false;42.  FTPClient ftp =newFTPClient();43.try{44.intreply;45.  ftp.connect(host, port);// 连接FTP服务器  46.// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器  47.  ftp.login(username, password);// 登录  48.  reply = ftp.getReplyCode();49.if(!FTPReply.isPositiveCompletion(reply)) {50.  ftp.disconnect();51.returnresult;52.  }53.//切换到上传目录  54.if(!ftp.changeWorkingDirectory(basePath+filePath)) {55.//如果目录不存在创建目录  56.  String[] dirs = filePath.split("/");57.  String tempPath = basePath;58.for(String dir : dirs) {59.if(null== dir ||"".equals(dir))continue;60.  tempPath +="/"+ dir;61.if(!ftp.changeWorkingDirectory(tempPath)) {62.if(!ftp.makeDirectory(tempPath)) {63.returnresult;64.  }else{65.  ftp.changeWorkingDirectory(tempPath);66.  }67.  }68.  }69.  }70.//设置上传文件的类型为二进制类型  71.  ftp.setFileType(FTP.BINARY_FILE_TYPE);72.//上传文件  73.if(!ftp.storeFile(filename, input)) {74.returnresult;75.  }76.  input.close();77.  ftp.logout();78.  result =true;79.  }catch(IOException e) {80.  e.printStackTrace();81.  }finally{82.if(ftp.isConnected()) {83.try{84.  ftp.disconnect();85.  }catch(IOException ioe) {86.  }87.  }88.  }89.returnresult;90.  }92./**  93.  * Description: 从FTP服务器下载文件  94.  *@paramhost FTP服务器hostname  95.  *@paramport FTP服务器端口  96.  *@paramusername FTP登录账号  97.  *@parampassword FTP登录密码  98.  *@paramremotePath FTP服务器上的相对路径  99.  *@paramfileName 要下载的文件名  100.  *@paramlocalPath 下载后保存到本地的路径  101.  *@return102.  */103.publicstaticbooleandownloadFile(String host,intport, String username, String password, String remotePath,104.String fileName, String localPath){105.booleanresult =false;106.  FTPClient ftp =newFTPClient();107.try{108.intreply;109.  ftp.connect(host, port);110.// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器  111.  ftp.login(username, password);// 登录  112.  reply = ftp.getReplyCode();113.if(!FTPReply.isPositiveCompletion(reply)) {114.  ftp.disconnect();115.returnresult;116.  }117.  ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录  118.  FTPFile[] fs = ftp.listFiles();119.for(FTPFile ff : fs) {120.if(ff.getName().equals(fileName)) {121.  File localFile =newFile(localPath +"/"+ ff.getName());123.  OutputStream is =newFileOutputStream(localFile);124.  ftp.retrieveFile(ff.getName(), is);125.  is.close();126.  }127.  }129.  ftp.logout();130.  result =true;131.  }catch(IOException e) {132.  e.printStackTrace();133.  }finally{134.if(ftp.isConnected()) {135.try{136.  ftp.disconnect();137.  }catch(IOException ioe) {138.  }139.  }140.  }141.returnresult;142.  }144.publicstaticvoidmain(String[] args){145.try{146.  FileInputStream in=newFileInputStream(newFile("D:\\temp\\image\\gaigeming.jpg"));147.booleanflag = uploadFile("192.168.25.133",21,"ftpuser","ftpuser","/home/ftpuser/www/images","/2015/01/21","gaigeming.jpg", in);148.  System.out.println(flag);149.  }catch(FileNotFoundException e) {150.  e.printStackTrace();151.  }152.  }153.  }

8.各种id生成策略

1.package com.taotao.utils;3.importjava.util.Random;5./**

6.  * 各种id生成策略

7.  *

Title: IDUtils

8.  *

Description:

9.  * @date    2015年7月22日下午2:32:10

10.  * @version 1.0

11.  */12.publicclassIDUtils{14./**

15.  * 图片名生成

16.  */17.publicstaticStringgenImageName(){18.//取当前时间的长整形值包含毫秒  19.longmillis = System.currentTimeMillis();20.//long millis = System.nanoTime();  21.//加上三位随机数  22.Random random =newRandom();23.intend3 = random.nextInt(999);24.//如果不足三位前面补0  25.String str = millis + String.format("%03d", end3);27.returnstr;28.}30./**

31.  * 商品id生成

32.  */33.publicstaticlonggenItemId(){34.//取当前时间的长整形值包含毫秒  35.longmillis = System.currentTimeMillis();36.//long millis = System.nanoTime();  37.//加上两位随机数  38.Random random =newRandom();39.intend2 = random.nextInt(99);40.//如果不足两位前面补0  41.String str = millis + String.format("%02d", end2);42.longid =newLong(str);43.returnid;44.}46.publicstaticvoidmain(String[] args){47.for(inti=0;i<100;i++)48.System.out.println(genItemId());49.}50.}

##9.上传图片返回值

1.package com.result;2./**

3.  * 上传图片返回值

4.  *

Title: PictureResult

5.  *

Description:

6.  *

Company: www.itcast.com

 

7.  * @author  入云龙

8.  * @date    2015年7月22日下午2:09:02

9.  * @version 1.0

10.  */11.publicclassPictureResult{13./**

14.  * 上传图片返回值,成功:0 失败:1   

15.  */16.privateInteger error;17./**

18.  * 回显图片使用的url

19.  */20.privateString url;21./**

22.  * 错误时的错误消息

23.  */24.privateString message;25.publicPictureResult(Integer state, String url){26.this.url = url;27.this.error = state;28.}29.publicPictureResult(Integer state, String url, String errorMessage){30.this.url = url;31.this.error = state;32.this.message = errorMessage;33.}34.publicIntegergetError(){35.returnerror;36.}37.publicvoidsetError(Integer error){38.this.error = error;39.}40.publicStringgetUrl(){41.returnurl;42.}43.publicvoidsetUrl(String url){44.this.url = url;45.}46.publicStringgetMessage(){47.returnmessage;48.}49.publicvoidsetMessage(String message){50.this.message = message;51.}53.}

10.自定义响应结构

1.packagecom.result;3.importjava.util.List;5.importcom.fasterxml.jackson.databind.JsonNode;6.importcom.fasterxml.jackson.databind.ObjectMapper;8./**

9.  * 自定义响应结构

10.  */11.publicclassTaotaoResult{13.// 定义jackson对象  14.privatestaticfinalObjectMapper MAPPER =newObjectMapper();16.// 响应业务状态  17.privateInteger status;19.// 响应消息  20.privateString msg;22.// 响应中的数据  23.privateObject data;25.publicstaticTaotaoResultbuild(Integer status, String msg, Object data){26.returnnewTaotaoResult(status, msg, data);27.  }29.publicstaticTaotaoResultok(Object data){30.returnnewTaotaoResult(data);31.  }33.publicstaticTaotaoResultok(){34.returnnewTaotaoResult(null);35.  }37.publicTaotaoResult(){39.  }41.publicstaticTaotaoResultbuild(Integer status, String msg){42.returnnewTaotaoResult(status, msg,null);43.  }45.publicTaotaoResult(Integer status, String msg, Object data){46.this.status = status;47.this.msg = msg;48.this.data = data;49.  }51.publicTaotaoResult(Object data){52.this.status =200;53.this.msg ="OK";54.this.data = data;55.  }57.//    public Boolean isOK() {  58.//        return this.status == 200;  59.//    }  61.publicIntegergetStatus(){62.returnstatus;63.  }65.publicvoidsetStatus(Integer status){66.this.status = status;67.  }69.publicStringgetMsg(){70.returnmsg;71.  }73.publicvoidsetMsg(String msg){74.this.msg = msg;75.  }77.publicObjectgetData(){78.returndata;79.  }81.publicvoidsetData(Object data){82.this.data = data;83.  }85./** 86.  * 将json结果集转化为TaotaoResult对象 87.  *  88.  *@paramjsonData json数据 89.  *@paramclazz TaotaoResult中的object类型 90.  *@return91.  */92.publicstaticTaotaoResultformatToPojo(String jsonData, Class clazz){93.try{94.if(clazz ==null) {95.returnMAPPER.readValue(jsonData, TaotaoResult.class);96.  }97.  JsonNode jsonNode = MAPPER.readTree(jsonData);98.  JsonNode data = jsonNode.get("data");99.  Object obj =null;100.if(clazz !=null) {101.if(data.isObject()) {102.  obj = MAPPER.readValue(data.traverse(), clazz);103.  }elseif(data.isTextual()) {104.  obj = MAPPER.readValue(data.asText(), clazz);105.  }106.  }107.returnbuild(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);108.  }catch(Exception e) {109.returnnull;110.  }111.  }113./** 114.  * 没有object对象的转化 115.  *  116.  *@paramjson 117.  *@return118.  */119.publicstaticTaotaoResultformat(String json){120.try{121.returnMAPPER.readValue(json, TaotaoResult.class);122.  }catch(Exception e) {123.  e.printStackTrace();124.  }125.returnnull;126.  }128./** 129.  * Object是集合转化 130.  *  131.  *@paramjsonData json数据 132.  *@paramclazz 集合中的类型 133.  *@return134.  */135.publicstaticTaotaoResultformatToList(String jsonData, Class clazz){136.try{137.  JsonNode jsonNode = MAPPER.readTree(jsonData);138.  JsonNode data = jsonNode.get("data");139.  Object obj =null;140.if(data.isArray() && data.size() >0) {141.  obj = MAPPER.readValue(data.traverse(),142.  MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));143.  }144.returnbuild(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);145.  }catch(Exception e) {146.returnnull;147.  }148.  }150.  }

##11.jedis操作

1.package com.taotao.jedis;3.public interface JedisClient {5.Stringset(Stringkey,Stringvalue);6.Stringget(Stringkey);7.Booleanexists(Stringkey);8.Long expire(Stringkey, int seconds);9.Long ttl(Stringkey);10.Long incr(Stringkey);11.Long hset(Stringkey,Stringfield,Stringvalue);12.Stringhget(Stringkey,Stringfield);13.Long hdel(Stringkey,String... field);14.}

1.packagecom.taotao.jedis;3.importorg.springframework.beans.factory.annotation.Autowired;5.importredis.clients.jedis.JedisCluster;7.publicclassJedisClientClusterimplementsJedisClient{9.@Autowired10.privateJedisCluster jedisCluster;12.@Override13.publicStringset(String key, String value){14.returnjedisCluster.set(key, value);15.  }17.@Override18.publicStringget(String key){19.returnjedisCluster.get(key);20.  }22.@Override23.publicBooleanexists(String key){24.returnjedisCluster.exists(key);25.  }27.@Override28.publicLongexpire(String key,intseconds){29.returnjedisCluster.expire(key, seconds);30.  }32.@Override33.publicLongttl(String key){34.returnjedisCluster.ttl(key);35.  }37.@Override38.publicLongincr(String key){39.returnjedisCluster.incr(key);40.  }42.@Override43.publicLonghset(String key, String field, String value){44.returnjedisCluster.hset(key, field, value);45.  }47.@Override48.publicStringhget(String key, String field){49.returnjedisCluster.hget(key, field);50.  }52.@Override53.publicLonghdel(String key, String... field){54.returnjedisCluster.hdel(key, field);55.  }57.  }

1.packagecom.taotao.jedis;4.importorg.springframework.beans.factory.annotation.Autowired;7.importredis.clients.jedis.Jedis;8.importredis.clients.jedis.JedisPool;11.publicclassJedisClientPoolimplementsJedisClient{13.@Autowired14.privateJedisPool jedisPool;17.@Override18.publicStringset(String key, String value){19.  Jedis jedis = jedisPool.getResource();20.  String result = jedis.set(key, value);21.  jedis.close();22.returnresult;23.  }26.@Override27.publicStringget(String key){28.  Jedis jedis = jedisPool.getResource();29.  String result = jedis.get(key);30.  jedis.close();31.returnresult;32.  }35.@Override36.publicBooleanexists(String key){37.  Jedis jedis = jedisPool.getResource();38.  Boolean result = jedis.exists(key);39.  jedis.close();40.returnresult;41.  }44.@Override45.publicLongexpire(String key,intseconds){46.  Jedis jedis = jedisPool.getResource();47.  Long result = jedis.expire(key, seconds);48.  jedis.close();49.returnresult;50.  }53.@Override54.publicLongttl(String key){55.  Jedis jedis = jedisPool.getResource();56.  Long result = jedis.ttl(key);57.  jedis.close();58.returnresult;59.  }62.@Override63.publicLongincr(String key){64.  Jedis jedis = jedisPool.getResource();65.  Long result = jedis.incr(key);66.  jedis.close();67.returnresult;68.  }71.@Override72.publicLonghset(String key, String field, String value){73.  Jedis jedis = jedisPool.getResource();74.  Long result = jedis.hset(key, field, value);75.  jedis.close();76.returnresult;77.  }80.@Override81.publicStringhget(String key, String field){82.  Jedis jedis = jedisPool.getResource();83.  String result = jedis.hget(key, field);84.  jedis.close();85.returnresult;86.  }89.@Override90.publicLonghdel(String key, String... field){91.  Jedis jedis = jedisPool.getResource();92.  Long result = jedis.hdel(key, field);93.  jedis.close();94.returnresult;95.  }98.  }  本文作者:[一个小迷糊][阅读原文]([http://click.aliyun.com/m/50526/]本文为云栖社区原创内容,未经允许不得转载。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容