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

1.json轉(zhuǎn)換工具

package com.taotao.utils;? import java.util.List;? import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType;? import com.fasterxml.jackson.databind.JsonNode;? import com.fasterxml.jackson.databind.ObjectMapper;/** * json轉(zhuǎn)換工具類 */publicclassJsonUtils{// 定義jackson對(duì)象 privatestaticfinalObjectMapper MAPPER =newObjectMapper();/** * 將對(duì)象轉(zhuǎn)換成json字符串。? *

Title: pojoToJson

? *

Description:

? *@paramdata *@return*/publicstaticString objectToJson(Object data) {try{ String string = MAPPER.writeValueAsString(data);returnstring; }catch(JsonProcessingException e) {? e.printStackTrace(); }returnnull; }/** * 將json結(jié)果集轉(zhuǎn)化為對(duì)象? *@paramjsonData json數(shù)據(jù)? *@paramclazz 對(duì)象中的object類型? *@return*/publicstatic T jsonToPojo(String jsonData,ClassbeanType){try{ T t = MAPPER.readValue(jsonData, beanType);returnt; }catch(Exceptione) {? e.printStackTrace(); }returnnull; }/** * 將json數(shù)據(jù)轉(zhuǎn)換成pojo對(duì)象list? *

Title: jsonToList

? *

Description:

? *@paramjsonData? *@parambeanType? *@return*/publicstaticList jsonToList(String jsonData,ClassbeanType){? JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try{Listlist= MAPPER.readValue(jsonData, javaType); .returnlist;? }catch(Exceptione) { . e.printStackTrace(); }returnnull; } }

2.cookie的讀寫

package com.taotao.common.utils;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net.URLEncoder;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/** *.* Cookie 工具類 **/publicfinalclassCookieUtils{/** *得到Cookie的值, 不編碼 . ** @param request .* @param cookieName *@return */publicstaticStringgetCookieValue(HttpServletRequest request,StringcookieName) {returngetCookieValue(request, cookieName,false); }/** . *得到Cookie的值,* *@param request * @param cookieName* @return . */publicstaticStringgetCookieValue(HttpServletRequest request,StringcookieName, boolean isDecoder) {? Cookie[] cookieList = request.getCookies();if(cookieList ==null|| cookieName ==null) {returnnull; }StringretValue =null;try{for(inti =0; i < cookieList.length; i++) { .if(cookieList[i].getName().equals(cookieName)) {if(isDecoder) {? retValue = URLDecoder.decode(cookieList[i].getValue(),"UTF-8");? }else{? retValue = cookieList[i].getValue(); }break; } }? }catch(UnsupportedEncodingException e) {? e.printStackTrace(); }returnretValue; }/** * 得到Cookie的值, **@param request* @param cookieName *@return */publicstaticStringgetCookieValue(HttpServletRequest request,StringcookieName,StringencodeString) {? Cookie[] cookieList = request.getCookies();if(cookieList ==null|| cookieName ==null) {returnnull; }StringretValue =null;try{for(inti =0; i < cookieList.length; i++) {if(cookieList[i].getName().equals(cookieName)) {? retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString);break; } }? }catch(UnsupportedEncodingException e) {? e.printStackTrace(); }returnretValue; }/** *設(shè)置Cookie的值 不設(shè)置生效時(shí)間默認(rèn)瀏覽器關(guān)閉即失效,也不編碼 */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue) {? setCookie(request, response, cookieName, cookieValue,-1); . }/** *設(shè)置Cookie的值 在指定時(shí)間內(nèi)生效,但不編碼 */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage) {? setCookie(request, response, cookieName, cookieValue, cookieMaxage,false); }/** *設(shè)置Cookie的值 不設(shè)置生效時(shí)間,但編碼 */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue, boolean isEncode) {? setCookie(request, response, cookieName, cookieValue,-1, isEncode); }/** *設(shè)置Cookie的值 在指定時(shí)間內(nèi)生效, 編碼參數(shù) */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage, boolean isEncode) {? doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode); }/** *設(shè)置Cookie的值 在指定時(shí)間內(nèi)生效, 編碼參數(shù)(指定編碼) */publicstaticvoidsetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage,StringencodeString) {? doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString); }/** *刪除Cookie帶cookie域名 */publicstaticvoiddeleteCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName) {? doSetCookie(request, response, cookieName,"",-1,false); }/** *設(shè)置Cookie的值,并使其在指定時(shí)間內(nèi)生效* *@param cookieMaxage cookie生效的最大秒數(shù) */privatestaticfinalvoiddoSetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage, boolean isEncode) {try{if(cookieValue ==null) {? cookieValue =""; }elseif(isEncode) {? cookieValue = URLEncoder.encode(cookieValue,"utf-8"); }? Cookie cookie =newCookie(cookieName, cookieValue);if(cookieMaxage >0)? cookie.setMaxAge(cookieMaxage);if(null!= request) {// 設(shè)置域名的cookie StringdomainName = getDomainName(request);? System.out.println(domainName);if(!"localhost".equals(domainName)) {? cookie.setDomain(domainName); } }? cookie.setPath("/"); response.addCookie(cookie); }catch(Exception e) {? e.printStackTrace(); } }/** *設(shè)置Cookie的值爆捞,并使其在指定時(shí)間內(nèi)生效* *@param cookieMaxage cookie生效的最大秒數(shù) */privatestaticfinalvoiddoSetCookie(HttpServletRequest request, HttpServletResponse response,StringcookieName,StringcookieValue,intcookieMaxage,StringencodeString) {try{if(cookieValue ==null) { cookieValue =""; }else{? cookieValue = URLEncoder.encode(cookieValue, encodeString); }? Cookie cookie =newCookie(cookieName, cookieValue);if(cookieMaxage >0)? cookie.setMaxAge(cookieMaxage);if(null!= request) {// 設(shè)置域名的cookie StringdomainName = getDomainName(request);? System.out.println(domainName);if(!"localhost".equals(domainName)) {? cookie.setDomain(domainName); } }? cookie.setPath("/"); response.addCookie(cookie); }catch(Exception e) {? e.printStackTrace(); } }/** *得到cookie的域名 */privatestaticfinalStringgetDomainName(HttpServletRequest request) {StringdomainName =null;StringserverName = request.getRequestURL().toString();if(serverName ==null|| serverName.equals("")) {? domainName =""; }else{? serverName = serverName.toLowerCase();? serverName = serverName.substring(7);finalintend = serverName.indexOf("/");? serverName = serverName.substring(0, end);finalString[] domains = serverName.split("\\.");intlen = domains.length;if(len >3) {// www.xxx.com.cn domainName ="."+ domains[len -3] +"."+ domains[len -2] +"."+ domains[len -1]; }elseif(len <=3&& len >1) {// xxx.com or xxx.cn domainName ="."+ domains[len -2] +"."+ domains[len -1]; }else{? domainName = serverName; } }if(domainName !=null&& domainName.indexOf(":") >0) {String[] ary = domainName.split("\\:");? domainName = ary[0]; }returndomainName; } }

3.HttpClientUtil

packagecom.taotao.utils;importjava.io.IOException;importjava.net.URI;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.client.utils.URIBuilder;importorg.apache.http.entity.ContentType;importorg.apache.http.entity.StringEntity;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.message.BasicNameValuePair;importorg.apache.http.util.EntityUtils;publicclass HttpClientUtil {publicstaticStringdoGet(Stringurl, Map param) {// 創(chuàng)建Httpclient對(duì)象 CloseableHttpClient httpclient = HttpClients.createDefault();StringresultString ="";? CloseableHttpResponse response =null;try{// 創(chuàng)建uri URIBuilder builder = new URIBuilder(url); if(param !=null) {for(Stringkey: param.keySet()) {? builder.addParameter(key, param.get(key)); } }? URI uri = builder.build();// 創(chuàng)建http GET請(qǐng)求 HttpGet httpGet = new HttpGet(uri); // 執(zhí)行請(qǐng)求 response = httpclient.execute(httpGet); // 判斷返回狀態(tài)是否為200 if (response.getStatusLine().getStatusCode() == 200) { resultString = EntityUtils.toString(response.getEntity(),"UTF-8"); }? }catch(Exception e) {? e.printStackTrace(); }finally{try{if(response !=null) { response.close(); }? httpclient.close();? }catch(IOException e) { e.printStackTrace(); } }returnresultString; }publicstaticStringdoGet(Stringurl) {returndoGet(url,null); }publicstaticStringdoPost(Stringurl, Map param) {// 創(chuàng)建Httpclient對(duì)象 CloseableHttpClient httpClient = HttpClients.createDefault();? CloseableHttpResponse response =null;StringresultString ="";try{// 創(chuàng)建Http Post請(qǐng)求 HttpPost httpPost =newHttpPost(url);// 創(chuàng)建參數(shù)列表 if(param !=null) {? List paramList =newArrayList<>();for(Stringkey: param.keySet()) { paramList.add(newBasicNameValuePair(key, param.get(key))); }// 模擬表單 UrlEncodedFormEntity entity =newUrlEncodedFormEntity(paramList);? httpPost.setEntity(entity); }// 執(zhí)行http請(qǐng)求 response = httpClient.execute(httpPost);? resultString = EntityUtils.toString(response.getEntity(),"utf-8");? }catch(Exception e) { e.printStackTrace(); . }finally{try{ response.close();? }catch(IOException e) {// TODO Auto-generated catch block e.printStackTrace(); } }returnresultString; }publicstaticStringdoPost(Stringurl) {returndoPost(url,null); }publicstaticStringdoPostJson(Stringurl,Stringjson) {// 創(chuàng)建Httpclient對(duì)象 CloseableHttpClient httpClient = HttpClients.createDefault();? CloseableHttpResponse response =null;StringresultString ="";try{// 創(chuàng)建Http Post請(qǐng)求 HttpPost httpPost =newHttpPost(url);// 創(chuàng)建請(qǐng)求內(nèi)容 StringEntity entity =newStringEntity(json, ContentType.APPLICATION_JSON);? httpPost.setEntity(entity);// 執(zhí)行http請(qǐng)求 response = httpClient.execute(httpPost);? resultString = EntityUtils.toString(response.getEntity(),"utf-8");? }catch(Exception e) { e.printStackTrace(); }finally{try{ response.close(); }catch(IOException e) {// TODO Auto-generated catch block e.printStackTrace(); } }returnresultString; } }

4.FastDFSClient工具類

packagecn.itcast.fastdfs.cliennt;importorg.csource.common.NameValuePair;importorg.csource.fastdfs.ClientGlobal;importorg.csource.fastdfs.StorageClient1;importorg.csource.fastdfs.StorageServer;importorg.csource.fastdfs.TrackerClient;importorg.csource.fastdfs.TrackerServer;publicclass FastDFSClient {privateTrackerClient trackerClient =null;privateTrackerServer trackerServer =null;privateStorageServer storageServer =null;privateStorageClient1 storageClient =null;publicFastDFSClient(Stringconf)throwsException {if(conf.contains("classpath:")) {? conf = conf.replace("classpath:",this.getClass().getResource("/").getPath()); }? ClientGlobal.init(conf);? trackerClient =newTrackerClient();? trackerServer = trackerClient.getConnection();? storageServer =null; storageClient =newStorageClient1(trackerServer, storageServer); }/** * 上傳文件方法

* <p>Title: uploadFile</p>

* <p>Description: </p>

* @param fileName 文件全路徑

* @param extName 文件擴(kuò)展名笼踩,不包含(.)

* @param metas 文件擴(kuò)展信息 * @return * @throws Exception */publicStringuploadFile(StringfileName,StringextName, NameValuePair[] metas)throwsException {Stringresult = storageClient.upload_file1(fileName, extName, metas);returnresult; }publicStringuploadFile(StringfileName)throwsException {returnuploadFile(fileName,null,null); }publicStringuploadFile(StringfileName,StringextName)throwsException {returnuploadFile(fileName, extName,null); }/** * 上傳文件方法

* <p>Title: uploadFile</p>

* <p>Description: </p>

* @param fileContent 文件的內(nèi)容蚕苇,字節(jié)數(shù)組

* @param extName 文件擴(kuò)展名

* @param metas 文件擴(kuò)展信息

* @return

* @throws Exception */publicStringuploadFile(byte[] fileContent,StringextName, NameValuePair[] metas)throwsException {Stringresult = storageClient.upload_file1(fileContent, extName, metas);returnresult; }publicStringuploadFile(byte[] fileContent)throwsException {returnuploadFile(fileContent,null,null); }publicStringuploadFile(byte[] fileContent,StringextName)throwsException {returnuploadFile(fileContent, extName,null); } } publicclass FastDFSTest {? @TestpublicvoidtestFileUpload()throwsException {// 1恬涧、加載配置文件恢氯,配置文件中的內(nèi)容就是tracker服務(wù)的地址杉辙。 ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf");// 2、創(chuàng)建一個(gè)TrackerClient對(duì)象班缰。直接new一個(gè)贤壁。 TrackerClient trackerClient =newTrackerClient();// 3、使用TrackerClient對(duì)象創(chuàng)建連接鲁捏,獲得一個(gè)TrackerServer對(duì)象芯砸。 TrackerServer trackerServer = trackerClient.getConnection();// 4、創(chuàng)建一個(gè)StorageServer的引用给梅,值為null StorageServer storageServer =null;// 5、創(chuàng)建一個(gè)StorageClient對(duì)象双揪,需要兩個(gè)參數(shù)TrackerServer對(duì)象动羽、StorageServer的引用 StorageClient storageClient =newStorageClient(trackerServer, storageServer);// 6、使用StorageClient對(duì)象上傳圖片渔期。 //擴(kuò)展名不帶“.” String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg","jpg",null);// 7运吓、返回?cái)?shù)組。包含組名和圖片的路徑疯趟。 for(Stringstring : strings) { System.out.println(string); } } } # ![image](http://upload-images.jianshu.io/upload_images/2509688-45370c9d24b87e31?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5.獲取異常的堆棧信息

packagecom.taotao.utils;importjava.io.PrintWriter;importjava.io.StringWriter;publicclassExceptionUtil{/** * 獲取異常的堆棧信息 * *@paramt *@return*/publicstaticStringgetStackTrace(Throwable t){? StringWriter sw =newStringWriter();? PrintWriter pw =newPrintWriter(sw);try{ t.printStackTrace(pw);returnsw.toString(); }finally{ pw.close(); } } }

#6.easyUIDataGrid對(duì)象返回值

packagecom.taotao.result;importjava.util.List;/** * easyUIDataGrid對(duì)象返回值? *

Title: EasyUIResult

*

Description:

*

Company: www.itcast.com

*@author入云龍 *@date2019年7月21日下午4:12:52? *@version1.0 */publicclassEasyUIResult{privateInteger total;privateList rows;publicEasyUIResult(Integer total, List<?> rows){this.total = total;this.rows = rows; }publicEasyUIResult(longtotal, List rows){this.total = (int) total;this.rows = rows; }publicIntegergetTotal(){returntotal; }publicvoidsetTotal(Integer total){this.total = total; }publicList getRows() {returnrows; }publicvoidsetRows(List<?> rows){this.rows = rows; } }

7.ftp上傳下載工具類

package com.taotao.utils;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importorg.apache.commons.net.ftp.FTP;importorg.apache.commons.net.ftp.FTPClient;importorg.apache.commons.net.ftp.FTPFile;importorg.apache.commons.net.ftp.FTPReply;/** *ftp上傳下載工具類 *

Title: FtpUtil

* <p>Description: </p> *

Company: www.itcast.com

* @author 入云龍* @date 2015年7月29日下午8:11:51 *@version 1.0 */publicclassFtpUtil{/** *Description: 向FTP服務(wù)器上傳文件* @param host FTP服務(wù)器hostname *@param port FTP服務(wù)器端口 * @param username FTP登錄賬號(hào)* @param password FTP登錄密碼 *@param basePath FTP服務(wù)器基礎(chǔ)目錄? * @param filePath FTP服務(wù)器文件存放路徑拘哨。例如分日期存放:/2015/01/01。文件的路徑為basePath+filePath* @param filename 上傳到FTP服務(wù)器上的文件名 * @param input 輸入流* @return 成功返回true信峻,否則返回false */publicstaticboolean uploadFile(Stringhost,intport,Stringusername,Stringpassword,StringbasePath,StringfilePath,Stringfilename, InputStream input) { boolean result =false;? FTPClient ftp =newFTPClient();try{intreply;? ftp.connect(host, port);// 連接FTP服務(wù)器 // 如果采用默認(rèn)端口倦青,可以使用ftp.connect(host)的方式直接連接FTP服務(wù)器 ftp.login(username, password);// 登錄 reply = ftp.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect();returnresult; }//切換到上傳目錄 if (!ftp.changeWorkingDirectory(basePath+filePath)) { //如果目錄不存在創(chuàng)建目錄 String[] dirs = filePath.split("/"); StringtempPath = basePath;for(Stringdir : dirs) {if(null== dir ||"".equals(dir))continue;? tempPath +="/"+ dir;if(!ftp.changeWorkingDirectory(tempPath)) {if(!ftp.makeDirectory(tempPath)) {returnresult; }else{? ftp.changeWorkingDirectory(tempPath); } } } }//設(shè)置上傳文件的類型為二進(jìn)制類型 ftp.setFileType(FTP.BINARY_FILE_TYPE);//上傳文件 if(!ftp.storeFile(filename, input)) {returnresult; . } input.close(); ftp.logout();? result =true; }catch(IOException e) { e.printStackTrace(); }finally{if(ftp.isConnected()) {try{ ftp.disconnect(); }catch(IOException ioe) { } } }returnresult; }/** *Description: 從FTP服務(wù)器下載文件 * @param host FTP服務(wù)器hostname* @param port FTP服務(wù)器端口 *@param username FTP登錄賬號(hào)* @param password FTP登錄密碼 *@param remotePath FTP服務(wù)器上的相對(duì)路徑* @param fileName 要下載的文件名 . *@param localPath 下載后保存到本地的路徑* @return */publicstaticboolean downloadFile(Stringhost,intport,Stringusername,Stringpassword,StringremotePath,StringfileName,StringlocalPath) { boolean result =false;? FTPClient ftp =newFTPClient();try{intreply; ftp.connect(host, port);// 如果采用默認(rèn)端口,可以使用ftp.connect(host)的方式直接連接FTP服務(wù)器 ftp.login(username, password);// 登錄 reply = ftp.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect();returnresult; } ftp.changeWorkingDirectory(remotePath);// 轉(zhuǎn)移到FTP服務(wù)器目錄 FTPFile[] fs = ftp.listFiles();for(FTPFile ff : fs) {if(ff.getName().equals(fileName)) {? File localFile =newFile(localPath +"/"+ ff.getName());? OutputStreamis=newFileOutputStream(localFile);? ftp.retrieveFile(ff.getName(),is);is.close(); } } ftp.logout(); result =true; }catch(IOException e) { e.printStackTrace(); }finally{if(ftp.isConnected()) {try{ ftp.disconnect(); }catch(IOException ioe) { } } }returnresult; }? publicstaticvoidmain(String[] args) {try{? FileInputStreamin=newFileInputStream(newFile("D:\\temp\\image\\gaigeming.jpg"));147.boolean flag = uploadFile("192.168.25.133",21,"ftpuser","ftpuser","/home/ftpuser/www/images","/2015/01/21","gaigeming.jpg",in); System.out.println(flag); }catch(FileNotFoundException e) {? e.printStackTrace(); } } }

8.各種id生成策略

packagecom.taotao.utils;importjava.util.Random;/** * 各種id生成策略 * <p>Title: IDUtils</p> * <p>Description: </p>

* @date 2015年7月22日下午2:32:10 * @version 1.0 */publicclass IDUtils {/** * 圖片名生成 */publicstaticStringgenImageName() {//取當(dāng)前時(shí)間的長(zhǎng)整形值包含毫秒 longmillis= System.currentTimeMillis();//long millis = System.nanoTime(); //加上三位隨機(jī)數(shù) Randomrandom=newRandom();intend3 =random.nextInt(999);//如果不足三位前面補(bǔ)0 Stringstr=millis+String.format("%03d", end3);returnstr; }/** * 商品id生成 */publicstaticlonggenItemId() {//取當(dāng)前時(shí)間的長(zhǎng)整形值包含毫秒 long millis = System.currentTimeMillis(); //long millis = System.nanoTime(); //加上兩位隨機(jī)數(shù) Randomrandom=newRandom();intend2 =random.nextInt(99);//如果不足兩位前面補(bǔ)0 Stringstr=millis+String.format("%02d", end2);longid =newLong(str);returnid; }publicstaticvoidmain(String[] args) {for(inti=0;i<100;i++) System.out.println(genItemId()); } }

##9.上傳圖片返回值

packagecom.result;/** * 上傳圖片返回值 *

Title: PictureResult

*

Description:

*

Company: www.itcast.com

*@author入云龍 *@date2015年7月22日下午2:09:02 *@version1.0 */publicclassPictureResult{/** * 上傳圖片返回值盹舞,成功:0 失敳洹:1 */privateIntegererror;/** * 回顯圖片使用的url */privateString url;/** * 錯(cuò)誤時(shí)的錯(cuò)誤消息 */privateString message;publicPictureResult(Integer state, String url){this.url = url;this.error= state; }publicPictureResult(Integer state, String url, String errorMessage){this.url = url;this.error= state;this.message = errorMessage; }publicIntegergetError(){returnerror; }publicvoidsetError(Integererror){this.error=error; }publicStringgetUrl(){returnurl; }publicvoidsetUrl(String url){this.url = url; }publicStringgetMessage(){returnmessage; }publicvoidsetMessage(String message){this.message = message; } }

10.自定義響應(yīng)結(jié)構(gòu)

packagecom.result;importjava.util.List;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;/** * 自定義響應(yīng)結(jié)構(gòu) */publicclassTaotaoResult{// 定義jackson對(duì)象 privatestaticfinalObjectMapper MAPPER = new ObjectMapper();// 響應(yīng)業(yè)務(wù)狀態(tài) private Integer status; // 響應(yīng)消息 private String msg; // 響應(yīng)中的數(shù)據(jù) private Object data; publicstatic TaotaoResult build(Integer status, String msg, Objectdata) {returnnew TaotaoResult(status, msg,data); }publicstatic TaotaoResult ok(Objectdata) {returnnew TaotaoResult(data); }publicstatic TaotaoResult ok() {returnnew TaotaoResult(null); }publicTaotaoResult() { }publicstatic TaotaoResult build(Integer status, String msg) {returnnew TaotaoResult(status, msg,null); }publicTaotaoResult(Integer status, String msg, Objectdata) {this.status = status;this.msg = msg;this.data=data; }publicTaotaoResult(Objectdata) {this.status =200;this.msg ="OK";this.data=data; }// public Boolean isOK() { . // return this.status == 200; // } publicInteger getStatus() {returnstatus; }publicvoid setStatus(Integer status) {this.status = status; }publicString getMsg() {returnmsg; }publicvoid setMsg(String msg) {this.msg = msg; }publicObject getData() {returndata; }publicvoid setData(Objectdata) {this.data=data; }/** * 將json結(jié)果集轉(zhuǎn)化為TaotaoResult對(duì)象 * *@paramjsonData json數(shù)據(jù)? *@paramclazz TaotaoResult中的object類型 *@return*/publicstatic TaotaoResult formatToPojo(String jsonData, Class clazz) {try{if(clazz ==null) {returnMAPPER.readValue(jsonData, TaotaoResult.class); } JsonNode jsonNode = MAPPER.readTree(jsonData);? JsonNodedata= jsonNode.get("data"); Object obj =null;if(clazz !=null) {if(data.isObject()) {? obj = MAPPER.readValue(data.traverse(), clazz); }elseif(data.isTextual()) {? obj = MAPPER.readValue(data.asText(), clazz); } }returnbuild(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);? }catch(Exception e) {returnnull; } }/** * 沒(méi)有object對(duì)象的轉(zhuǎn)化 * *@paramjson *@return*/publicstatic TaotaoResult format(String json) {try{returnMAPPER.readValue(json, TaotaoResult.class); }catch(Exception e) {? e.printStackTrace(); }returnnull; }/** * Object是集合轉(zhuǎn)化 * *@paramjsonData json數(shù)據(jù)? *@paramclazz 集合中的類型 *@return*/publicstatic TaotaoResult formatToList(String jsonData, Class clazz) {try{ JsonNode jsonNode = MAPPER.readTree(jsonData);? JsonNodedata= jsonNode.get("data");? Object obj =null;if(data.isArray() &&data.size() >0) {? obj = MAPPER.readValue(data.traverse(),? MAPPER.getTypeFactory().constructCollectionType(List.class, clazz)); }returnbuild(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);? }catch(Exception e) {returnnull; } } }

##11.jedis操作

packagecom.taotao.jedis;publicinterface JedisClient {Stringset(Stringkey,Stringvalue);Stringget(Stringkey);? Boolean exists(Stringkey); Long expire(Stringkey,intseconds);? Long ttl(Stringkey); Long incr(Stringkey);? Long hset(Stringkey,Stringfield,Stringvalue);Stringhget(Stringkey,Stringfield); Long hdel(Stringkey,String... field); }packagecom.taotao.jedis;importorg.springframework.beans.factory.annotation.Autowired;importredis.clients.jedis.JedisCluster;publicclass JedisClientCluster implements JedisClient { @AutowiredprivateJedisCluster jedisCluster; @OverridepublicStringset(Stringkey,Stringvalue) {returnjedisCluster.set(key, value); } @OverridepublicStringget(Stringkey) {returnjedisCluster.get(key); } @OverridepublicBoolean exists(Stringkey) {returnjedisCluster.exists(key); } @OverridepublicLong expire(Stringkey,intseconds) {returnjedisCluster.expire(key, seconds); } @OverridepublicLong ttl(Stringkey) {returnjedisCluster.ttl(key); } @OverridepublicLong incr(Stringkey) {returnjedisCluster.incr(key); } @OverridepublicLong hset(Stringkey,Stringfield,Stringvalue) {returnjedisCluster.hset(key, field, value); } @OverridepublicStringhget(Stringkey,Stringfield) {returnjedisCluster.hget(key, field); }? @OverridepublicLong hdel(Stringkey,String... field) {returnjedisCluster.hdel(key, field); } }packagecom.taotao.jedis;importorg.springframework.beans.factory.annotation.Autowired;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;publicclass JedisClientPool implements JedisClient { @AutowiredprivateJedisPool jedisPool; @OverridepublicStringset(Stringkey,Stringvalue) {? Jedis jedis = jedisPool.getResource();Stringresult = jedis.set(key, value);? jedis.close();returnresult; } @OverridepublicStringget(Stringkey) { Jedis jedis = jedisPool.getResource();Stringresult = jedis.get(key); jedis.close();returnresult; }? @OverridepublicBoolean exists(Stringkey) { Jedis jedis = jedisPool.getResource();? Boolean result = jedis.exists(key); jedis.close();returnresult; }? @OverridepublicLong expire(Stringkey,intseconds) {? Jedis jedis = jedisPool.getResource(); Long result = jedis.expire(key, seconds);? jedis.close();returnresult; }? @OverridepublicLong ttl(Stringkey) { Jedis jedis = jedisPool.getResource();? Long result = jedis.ttl(key); jedis.close();returnresult; }? @OverridepublicLong incr(Stringkey) { Jedis jedis = jedisPool.getResource();? Long result = jedis.incr(key); jedis.close();returnresult; } @OverridepublicLong hset(Stringkey,Stringfield,Stringvalue) {? Jedis jedis = jedisPool.getResource(); Long result = jedis.hset(key, field, value);? jedis.close();returnresult; }? @OverridepublicStringhget(Stringkey,Stringfield) {? Jedis jedis = jedisPool.getResource();Stringresult = jedis.hget(key, field);? jedis.close();returnresult; }? @OverridepublicLong hdel(Stringkey,String... field) {? Jedis jedis = jedisPool.getResource(); Long result = jedis.hdel(key, field);? jedis.close();returnresult; } }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市踢步,隨后出現(xiàn)的幾起案子癣亚,更是在濱河造成了極大的恐慌,老刑警劉巖获印,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件零远,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡刑顺,警方通過(guò)查閱死者的電腦和手機(jī)笆载,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)地粪,“玉大人取募,你說(shuō)我怎么就攤上這事◇〖迹” “怎么了玩敏?”我有些...
    開(kāi)封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵斗忌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我旺聚,道長(zhǎng)织阳,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任砰粹,我火速辦了婚禮唧躲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碱璃。我一直安慰自己弄痹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布嵌器。 她就那樣靜靜地躺著肛真,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爽航。 梳的紋絲不亂的頭發(fā)上蚓让,一...
    開(kāi)封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音讥珍,去河邊找鬼历极。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衷佃,可吹牛的內(nèi)容都是我干的趟卸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼纲酗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼衰腌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起觅赊,我...
    開(kāi)封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤右蕊,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后吮螺,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體饶囚,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鸠补,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了萝风。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡紫岩,死狀恐怖规惰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泉蝌,我是刑警寧澤歇万,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布揩晴,位于F島的核電站,受9級(jí)特大地震影響贪磺,放射性物質(zhì)發(fā)生泄漏硫兰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一寒锚、第九天 我趴在偏房一處隱蔽的房頂上張望劫映。 院中可真熱鬧,春花似錦刹前、人聲如沸泳赋。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摹蘑。三九已至,卻和暖如春轧飞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撒踪。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工过咬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人制妄。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓掸绞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親耕捞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子衔掸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容