sql时间格式转换yyyymm_XML和实体类之间的转换
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                sql时间格式转换yyyymm_XML和实体类之间的转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                言簡意賅:
1.jar包的maven 坐標
<dependency> <groupId>com.thoughtworks.xstreamgroupId> <artifactId>xstreamartifactId> <version>1.4.10version> dependency>2.進行創建實體類(要轉換為xml格式)
package?cn.abchinalife.pos.ploicyQueryFirstPage.dao.req;import?com.thoughtworks.xstream.annotations.XStreamAlias;@XStreamAlias("ABCXQAPPEDOR")public?class?PloicyListRootReq??{ @XStreamAlias("Header")????private?Header?header; @XStreamAlias("Body")????private?PloicyListBodyReq?ploicyListBodyReq; @Override public String toString() { return "PloicyListRootReq{" + "header=" + header + ", ploicyListBodyReq=" + ploicyListBodyReq + '}'; } public Header getHeader() { return header;????} public void setHeader(Header header) { this.header = header;????} public PloicyListBodyReq getPloicyListBodyReq() { return ploicyListBodyReq;????} public void setPloicyListBodyReq(PloicyListBodyReq ploicyListBodyReq) { this.ploicyListBodyReq = ploicyListBodyReq;????} public PloicyListRootReq() { }}哈哈還是換個簡單的吧上邊的那個沒啥用
package?cn.abchinalife.pos.ploicyQueryFirstPage.controller.JsonUtil;import?com.thoughtworks.xstream.annotations.XStreamAlias;@XStreamAlias("Body")public?class?A?{ @XStreamAlias("B") private String b; @XStreamAlias("C") private String c;?自己寫get/set/toString/空構造器方法}package?cn.abchinalife.pos.ploicyQueryFirstPage.controller.JsonUtil;import?com.thoughtworks.xstream.annotations.XStreamAlias;public?class?B?{ @XStreamAlias("D") private String c; @XStreamAlias("E") private String d; 自己寫get/set/toString/空構造器方法}package?cn.abchinalife.pos.ploicyQueryFirstPage.controller.JsonUtil;import?com.thoughtworks.xstream.annotations.XStreamAlias;@XStreamAlias("C")public?class?C?{ @XStreamAlias("A") private A a; @XStreamAlias("B") private B b;????自己寫get/set/toString/空構造器方法}3.業務層
package?cn.abchinalife.pos.ploicyQueryFirstPage.controller.JsonUtil;import cn.abchinalife.pos.common.utils.PosCommonUtils;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.naming.NoNameCoder;import?com.thoughtworks.xstream.io.xml.DomDriver;public class AAA {????public?static?void?main(String[]?args)?{ A a = new A(); a.setB("bbbb");????????a.setC("cccc"); B b = new B(); b.setC("cccc2");????????b.setD("ddddd"); C c = new C(); c.setA(a);????????c.setB(b); //創建xml對象 XStream xstream = new XStream(new DomDriver("UTF-8", new NoNameCoder())); xstream.autodetectAnnotations(true); //轉換xml String xml = xstream.toXML(c); xml = PosCommonUtils.addHeader2XML(xml);????????System.out.println(xml); }}運行結果:<?xml version="1.0" encoding= bbbb cccc cccc2 ddddd是不是再找工具類PosCommonUtils哈哈
package cn.abchinalife.pos.common.utils;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.naming.NoNameCoder;import com.thoughtworks.xstream.io.xml.DomDriver;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.HttpEntity;import org.springframework.http.HttpHeaders;import org.springframework.http.MediaType;import org.springframework.web.client.RestTemplate;import java.lang.reflect.Field;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import?java.util.Random;/**?*?@author?smallKaiGe666 * @date 2020-08-20 15:24 */public?class?PosCommonUtils?{????private?static?final?Logger?log?=?LoggerFactory.getLogger(PosCommonUtils.class); public static final String SIMPLE_FORMAT = "yyyyMMdd"; public static final String SIMPLE_FORMAT_LINE = "yyyy-MM-dd"; public static final String DETAIL_FORMAT = "yyyy年MM月dd日 HH:mm:ss"; public static final String DETAIL_FORMAT_NO_UNIT = "yyyyMMddhhmmss"; public static final String DETAIL_FORMAT_LINE = "HH:mm:ss"; public static final String SIMPLE_FORMAT_Date_Time = "yyyy-MM-dd HH:mm:ss"; public static final String SIMPLE_FORMAT_Date_Time_MSEL = "yyyy-MM-dd HH:mm:ss:SSS"; public static final String SIMPLE_FORMAT_Year_Date = "yyyyMM"; public static final String SIMPLE_FORMAT_Year = "yyyy"; public static final String SIMPLE_FORMAT_Month = "MM";????public?static?final?String?SIMPLE_FORMAT_Day?=?"dd"; /** * 獲取20位隨機數-----作為交易流水號 serialNo * @return */ public static String getSerialNo(){ String msg = ""; String res = ""; Date date = new Date(); Random ran = new Random(); SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMddHHmmssSSS"); msg = sdf.format(date); for (int i = 0; i < 3; i++) { res += ran.nextInt(10); }????????return?msg+res;????} /** * 返回當前時間按照HH:mm:ss格式 * @return */ public static String getTime(){ SimpleDateFormat df = new SimpleDateFormat("hh:mm:ss"); Date date = new Date();????????String?format?=?df.format(date);???????return?format; } /** * @Description:為xml字符串添加報文頭信息 * <?xml version="1.0" encoding="GBK"?> * @author li_bin * @Date: 2018年3月28日 * @throws * @param xml * @return */ public static String addHeader2XML(String xml) {// String head = "<?xml version=\"1.0\" encoding=\"GBK\"?>"; String head = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml = (xml == null || "".equals(xml) || xml.startsWith(head)) ? xml : head + System.getProperty("line.separator") + xml; return xml; } /** * @Description:將String 封裝進HttpEntity中,并將HttpEntity的編碼設置為UTF-8 * 本方法是為了解決restTemplate 默認編碼為ISO8859-1的問題 * @author li_bin * @Date: 2018年3月28日 * @throws * @param xml * @return */ public static HttpEntitystr2HttpEntity(String xml) { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); headers.setContentType(type); headers.add("Accept", MediaType.APPLICATION_JSON.toString()); HttpEntity formEntity = new HttpEntity(xml, headers); return formEntity;????}????public?static?String?str2HttpEntity(String?xml,?String?url)?{????????HttpHeaders?headers?=?new?HttpHeaders();????????RestTemplate?restTemplate?=?RestTemplateUtil.getChineseRestTemplate(); //設置請求格式 headers.setContentType(MediaType.APPLICATION_JSON_UTF8); //設置響應格式????????headers.add(HttpHeaders.ACCEPT,?MediaType.APPLICATION_XML_VALUE);????????return?restTemplate.postForObject(url,?xml,?String.class);????} /** * 返回當前字符串型日期 * * @return String 返回的字符串型日期 */ public static Date getCurDate() { // Calendar calendar = Calendar.getInstance(); // SimpleDateFormat simpledateformat = new // SimpleDateFormat("yyyy-MM-dd"); // String strDate = simpledateformat.format(calendar.getTime()); return new Date(); } /** * 返回當前日期時間字符串 * 默認格式:yyyy-mm-dd hh:mm:ss * * @return String 返回當前字符串型日期時間 */ public static String getCurTime() { String returnStr = null; SimpleDateFormat f = new SimpleDateFormat("HH:mm:ss"); Date date = new Date(); returnStr = f.format(date); return returnStr; } /*** * 字符串轉為日期格式 * * @param stringDate * @return */ public static Date getDateForString(String stringDate) { SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" ); Date date = null; try { date = sdf.parse(stringDate); } catch (ParseException e) { log.error(e.getMessage(),e); } return date; } /** * 根據傳入日期,返回yyyyMMdd格式字符串 * * @param date * @return * @author wux * @since 2018年5月9日 下午8:05:11 */ public static String getSimpleDate(Date date) { SimpleDateFormat myFormat = new SimpleDateFormat(SIMPLE_FORMAT); return myFormat.format(date);????} /*** * 格式化日期 * * @param myDate * @param fromatString * @return */ public static String formatDate(Date myDate, String fromatString) { SimpleDateFormat myFormat = new SimpleDateFormat(fromatString); return myFormat.format(myDate); } /** * 將傳入xml文本轉換成Java對象 * @Title: toBean * @Description: TODO * @param xmlStr * @param cls xml對應的class類 * @return T xml對應的class類的實例對象 * * 調用的方法實例:PersonBean person=XmlUtil.toBean(xmlStr, PersonBean.class); */ public static T toBean(String xmlStr,Class cls){ XStream xstream = new XStream(new DomDriver("UTF-8", new NoNameCoder())); xstream.processAnnotations(cls); //通過注解方式的,一定要有這句話 Object fromXML = xstream.fromXML(xmlStr); return (T)fromXML ;????}}上邊就是 最為簡單的將實體類轉換為xml但是需要你在每個類上邊進行配置注解
@XStreamAlias("C")其中括號內的內容就是xml的標簽的名字
注意的是 關于集合這里需要注意,有時候需要在類上加 上述標簽并不僅僅是在屬性中進行添加。
上邊是將實體類轉換為xml,下邊將xml轉換為實體類
package?cn.abchinalife.pos.ploicyQueryFirstPage.controller.JsonUtil;import cn.abchinalife.pos.common.utils.PosCommonUtils;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.naming.NoNameCoder;import?com.thoughtworks.xstream.io.xml.DomDriver;/** * @author zhangkaipeng * @date 2020-09-27 12:32 */public class AAA {????public?static?void?main(String[]?args)?{ A a = new A(); a.setB("bbbb"); a.setC("cccc"); B b = new B(); b.setC("cccc2"); b.setD("ddddd"); C c = new C(); c.setA(a);????????c.setB(b); //創建xml對象 XStream xstream = new XStream(new DomDriver("UTF-8", new NoNameCoder())); xstream.autodetectAnnotations(true); //轉換xml String xml = xstream.toXML(c); xml = PosCommonUtils.addHeader2XML(xml);????????System.out.println(xml);????????String?xml2?=xml; C c2 = new C();????????c2?=?PosCommonUtils.toBean(xml2,?C.class);????????System.out.println("轉換的c2為"+c2.toString()); }}是不是還在找工具類還是上邊的那個實體類。
好了我工作中用到的就是這個,有什么問題隨時 來找我。
總結
以上是生活随笔為你收集整理的sql时间格式转换yyyymm_XML和实体类之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 中国演出行业协会发布《网络表演直播与短视
- 下一篇: 大众集团欧洲地区第二座电池工厂开始动工,
