<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-71  評論-5  文章-0  trackbacks-0
      2015年4月16日
         摘要: 一個stmt多個rs進行操作.那么從stmt得到的rs1,必須馬上操作此rs1后,才能去得到另外的rs2,再對rs2操作.不能互相交替使用,會引起rs已經關閉錯誤——Operation not allowed after ResultSet closed.錯誤的代碼如下: stmt=conn.createStatement();  rs=stm...  閱讀全文
    posted @ 2015-10-13 14:58 藤本薔薇 閱讀(215) | 評論 (0)編輯 收藏
    在 JDK1.5 引入自動裝箱和拆箱的機制后,包裝類和基本類型之間的轉換就更加輕松便利了。

    裝箱:把基本類型轉換成包裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱

    int i= 10; //定義一個int基本類型值
    Integer x = new Integer(i); //手動裝箱
    Integer y = i; //自動裝箱
    posted @ 2015-09-22 20:28 藤本薔薇 閱讀(227) | 評論 (0)編輯 收藏

    功能:將一個由英文字母組成的字符串轉換成指定格式---從右邊開始每三個字母用逗號分隔的形式。

    請在編輯器中的第 4、10 行將代碼填寫完整

    運行效果: j,aew,kjl,dfx,mop,zdmpublic static void main(String[] args) {
            // Java文件名
    String fileName = "HelloWorld.jav"; 
            // 郵箱
    String email = "laurenyang@imooc.com";
    // 判斷.java文件名是否正確:合法的文件名應該以.java結尾
            /*
            參考步驟:
            1、獲取文件名中最后一次出現"."號的位置
            2、根據"."號的位置,獲取文件的后綴
            3、判斷"."號位置及文件后綴名
            */
            //獲取文件名中最后一次出現"."號的位置
    int index = fileName.lastIndexOf('.');
            
            // 獲取文件的后綴
    String prefix = fileName.substring(index);
            
    // 判斷必須包含"."號,且不能出現在首位,同時后綴名為"java"
    if (index !=0 && index != -1 &&  prefix.equals("java")) {
    System.out.println("Java文件名正確");
    } else {
    System.out.println("Java文件名無效");
    }

            // 判斷郵箱格式是否正確:合法的郵箱名中至少要包含"@", 并且"@"是在"."之前
             /*
            參考步驟:
            1、獲取文件名中"@"符號的位置
            2、獲取郵箱中"."號的位置
            3、判斷必須包含"@"符號,且"@"必須在"."之前
            */
       // 獲取郵箱中"@"符號的位置
    int index2 = email.indexOf("@");
            
            // 獲取郵箱中"."號的位置
    int index3 = email.indexOf('.');
            
    // 判斷必須包含"@"符號,且"@"必須在"."之前
    if (index2 != -1 && index3 > index2) {
    System.out.println("郵箱格式正確");
    } else {
    System.out.println("郵箱格式無效");
    }
    }






    字節是計算機存儲信息的基本單位,1 個字節等于 8 位, gbk 編碼中 1 個漢字字符存儲需要 2 個字節1 個英文字符存儲需要 1 個字節。所以我們看到上面的程序運行結果中,每個漢字對應兩個字節值,如“學”對應 “-47 -89” ,而英文字母 “J” 對應 “74” 。同時,我們還發現漢字對應的字節值為負數,原因在于每個字節是 8 位,最大值不能超過 127,而漢字轉換為字節后超過 127,如果超過就會溢出,以負數的形式顯示。






         public static void main(String[] args) {
    // 定義一個字符串
    String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
            
            // 出現次數
    int num = 0;
             // 循環遍歷每個字符,判斷是否是字符 a ,如果是,累加次數
    for ( int i=0;i<s.length()-1;i++)
    {
                // 獲取每個字符,判斷是否是字符a
    if (  'a'==s.charAt(i)      ) {
                    // 累加統計次數
    num++; 
    }
    }
    System.out.println("字符a出現的次數:" + num);
    }




    功能:將一個由英文字母組成的字符串轉換成指定格式---從右邊開始每三個字母用逗號分隔的形式。

    請在編輯器中的第 4、10 行將代碼填寫完整

    運行效果: j,aew,kjl,dfx,mop,zdm


        public static void main(String[] args) {
    // 創建一個空的StringBuilder對象
            StringBuilder str = new StringBuilder();
    // 追加字符串
    str.append("jaewkjldfxmopzdm");
            // 從后往前每隔三位插入逗號
    for(int i = str.length()-3; i>0 ; i=i-3){
         
               str.insert(i,",");
    }
        
            // 將StringBuilder對象轉換為String對象并輸出
    System.out.print(str.toString());
    }

     結果: j,aew,kjl,dfx,mop,zdm
    posted @ 2015-09-22 16:12 藤本薔薇 閱讀(356) | 評論 (0)編輯 收藏
    String s1 = "imooc";
    String s2 = "imooc";
            
            //定義字符串s3,保存“I love”和s1拼接后的內容
    String s3 = "I love" + s1; 
            // 比較字符串s1和s2
    // imooc為常量字符串,多次出現時會被編譯器優化,只創建一個對象
    System.out.println("s1和s2內存地址相同嗎?" + (s1 == s2));
            
            //比較字符串s1和s3
    System.out.println("s1和s3內存地址相同嗎?" +  (s1==s3));
    String s4 = "I love " + s1;
             //比較字符串s4和s3
    // s1是變量,s4在運行時才知道具體值,所以s3和s4是不同的對象
    System.out.println("s3和s4內存地址相同嗎?" + (s4 == s3));
    posted @ 2015-09-22 15:26 藤本薔薇 閱讀(275) | 評論 (0)編輯 收藏
    //外部類HelloWorld
    public class HelloWorld {
        
        // 內部類Inner,類Inner在類HelloWorld的內部
        public class Inner {
            
    // 內部類的方法
    public void show() {
    System.out.println("welcome to imooc!");
    }
    }
        
    public static void main(String[] args) {
            
            // 創建外部類對象
    HelloWorld hello = new HelloWorld();
            // 創建內部類對象
    Inner i = hello.new Inner();
            // 調用內部類對象的方法
    i.show();
    }
    }
    posted @ 2015-09-09 15:47 藤本薔薇 閱讀(312) | 評論 (0)編輯 收藏














    posted @ 2015-09-09 14:41 藤本薔薇 閱讀(321) | 評論 (0)編輯 收藏
    不清楚路徑的查找 : find / -name mysql


     MYSQL常用經典命令(沒有試過)
    1.停止mysql
    kill -9 `ps -ef | grep mysqld_safe| grep -v grep| awk '{print $2}'`
    kill -9 `ps -ef | grep 'mysqld' | grep -v grep| awk '{print $2}'`

    2.啟動mysql
    cd /usr/local/mysql-5.4.1-beta-linux-x86_64-glibc23
    /bin/sh bin/mysqld_safe --user=mysql & 


    find /home/lijiajia/ -amin -10        #查找在系統中最后10分鐘訪問的文件
    find /home/lijiajia/ -atime -2        #查找在系統中最后48小時訪問的文件
    find /home/lijiajia/ -empty           #查找在系統中為空的文件或者文件夾
    find /home/lijiajia/ -mmin -5         # 查找在系統中最后5 分鐘里修改過的文件
    find /home/lijiajia/ -mtime -1        #查找在系統中最后24 小時里修改過的文件
    find /home/lijiajia/ -nouser          #查找在系統中屬于作廢用戶的文件(不明白是什么意思)
    find /home/lijiajia/ -amin 10         #查找在系統中最后10分鐘訪問的文件
    find /home/ftp/pub -user lijiajia     #查找在系統中屬于lijiajia這個用戶的文件
    posted @ 2015-09-02 10:26 藤本薔薇 閱讀(213) | 評論 (0)編輯 收藏
      public static Map ConvertObjToMap(Object obj){
                  Map<String,Object> reMap = new HashMap<String,Object>();
                  if (obj == null
                   return null;
                  Field[] fields = obj.getClass().getDeclaredFields();
                  try {
                   for(int i=0;i<fields.length;i++){
                    try {
                     Field f = obj.getClass().getDeclaredField(fields[i].getName());
                     f.setAccessible(true);
                           Object o = f.get(obj);
                           if(o == null){
                               o = "";
                           }else{
                               o = String.valueOf(o);
                           }
                           reMap.put(fields[i].getName(), String.valueOf(o));
                    } catch (NoSuchFieldException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    } catch (IllegalArgumentException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    } catch (IllegalAccessException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    }
                   }
                  } catch (SecurityException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                  } 
                  return reMap;
                 }
    posted @ 2015-08-31 19:52 藤本薔薇 閱讀(1018) | 評論 (0)編輯 收藏

    import java.io.IOException;
    import java.util.Date;

    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;

    import com.alibaba.fastjson.JSONObject;
    import com.huoniu.openapi.constant.Constant.MESSAGE;
    import com.huoniu.openapi.constant.InvokeContext;
    import com.huoniu.openapi.model.RetCode;
    import com.huoniu.openapi.model.RetMsg;
    import com.huoniu.openapi.model.SmsCode;
    import com.huoniu.openapi.service.SmsCodeService;
    import com.huoniu.openapi.utils.AESUtil;
    import com.huoniu.openapi.utils.SmsUtil;
    import com.huoniu.openapi.web.interceptor.InvokeContextInitInterceptor;
    import com.puff.framework.annotation.Before;
    import com.puff.framework.annotation.Controller;
    import com.puff.framework.annotation.Inject;
    import com.puff.framework.annotation.InterceptorChain;
    import com.puff.framework.utils.JsonUtil;
    import com.puff.framework.utils.StringUtil;
    import com.puff.web.view.TextView;
    import com.puff.web.view.View;
    import com.puff.web.view.ViewFactory;

    @Controller("/rest/sms")
    public class HuyiSmsController {    

        private static String content = "您的驗證碼是:%s。請不要把驗證碼泄露給其他人。";
        public View send(){
            
            String invokeData = InvokeContext.getInvokeData();
            if (StringUtil.blank(invokeData)) {
                return json(RetMsg.error(RetCode.OTHER_ERROR, "發送短信失敗!"));
            }
            
            JSONObject jsonObject = JSONObject.parseObject(invokeData);
            String  mobile = jsonObject.getString("customer_no");
            if (StringUtil.blank(mobile)) {
                return json(RetMsg.error(RetCode.NULL_PARAM, "手機號碼不能為空"));
            }
                
                HttpClient client = new HttpClient(); 
                PostMethod method = new PostMethod(MESSAGE.NEW_MESSAGEURL);  //接口地址
                    
                client.getParams().setContentCharset("UTF-8");
                method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=UTF-8");

                int mobile_code = (int)((Math.random()*9+1)*100000);        
                                                   System.out.println("mobile_code : "+mobile_code);
                NameValuePair[] data = {//提交短信
                        new NameValuePair("account", MESSAGE.NEW_ACCOUNT), 
                        new NameValuePair("password", SmsUtil.MD5Encode(MESSAGE.NEW_PASSWORD)),
                        new NameValuePair("mobile", mobile), 
                        new NameValuePair("content", String.format(content, mobile_code)),
                };
                
                method.setRequestBody(data);        

                try {
                    client.executeMethod(method);    
                    String SubmitResult =method.getResponseBodyAsString();
                    Document doc = DocumentHelper.parseText(SubmitResult); 
                    Element root = doc.getRootElement();
                    String code = root.elementText("code");    
                    String msg = root.elementText("msg");    
                    String smsid = root.elementText("smsid");    
                                
                    if(code == "2"){  //發送成功,寫庫
                        
                    }
                    
                } catch (HttpException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (DocumentException e) {
                    e.printStackTrace();
                }    
                
            
                return json(RetMsg.success("發送成功!!!"));
            
        }
        
        
        
        public View json(RetMsg msg) {
            String data = JsonUtil.toJson(msg);
            if (InvokeContext.isEncrypt()) {
                data = AESUtil.encrypt(data);
            }
            return ViewFactory.text(data, TextView.ContentType.JSON);
        }

    }
    posted @ 2015-08-31 10:02 藤本薔薇 閱讀(305) | 評論 (0)編輯 收藏
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;

    import com.alibaba.fastjson.JSONObject;
    import com.huoniu.openapi.constant.Constant.TONGLIAN;


    public class TLInterfaceService {
        
        private static final String USERNAME = "";
        private static final String PASSWORD = "";
        private static final String TENANT = "";
        private static final String GRANT_TYPE_GET = "password";    
        private static final String GRANT_TYPE_REFRESH = "refresh_token";    
        
        private static String TOKEN = null;
        private static String REFRESH_TOKEN = null;
        private static long EXPIRES_IN ;
        private static long START_DATE;

        
        public  String getToken() {
            if(TOKEN==null){
                    TOKEN  = login();
            }else{
                Date date = new Date();
                if(START_DATE-date.getTime()<EXPIRES_IN-30){
                    TOKEN  = refresh();
                }
                
            }
            
            return TOKEN;
        }
        
        
        public  void setToken(String token) {
            TOKEN = token;
        }


        /**
         * 登陸,獲取token
         * 
    @return 
         
    */
                
            public static String login(){

                    HttpClient httpClient = new HttpClient();
                    String URL = String.format(TONGLIAN.PREV_PATH, "");  //接口地址
                    try {
                        PostMethod postMethod = new PostMethod(URL);
                        postMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
                        NameValuePair[] data = { 
                                new NameValuePair("username", USERNAME),
                                new NameValuePair("password", PASSWORD),
                                new NameValuePair("tenant",  TENANT),
                                new NameValuePair("grant_type", GRANT_TYPE_GET)
                                 };
                        postMethod.setRequestBody(data);
                        int statusCode = httpClient.executeMethod(postMethod);
                        if(200 == statusCode){
                            String body  = postMethod.getResponseBodyAsString();
                            JSONObject json=JSONObject.parseObject(body);
                            TOKEN = json.getString("access_token");
                            REFRESH_TOKEN = json.getString("refresh_token");
                            EXPIRES_IN = Long.parseLong(json.getString("expires_in"));
                            START_DATE =  (new Date()).getTime();
                        }
                    } catch (Exception e) {
                        
                    }
                    return TOKEN;
             }
            
            /**
             * refresh_token
             * 
    @return 
             
    */
                            
            public static String refresh(){
                    
                HttpClient httpClient = new HttpClient();
                    String URL = String.format(TONGLIAN.PREV_PATH, ""); //接口地址
                    try {
                        PostMethod postMethod = new PostMethod(URL);
                        postMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
                        NameValuePair[] data = { 
                                new NameValuePair("refresh_token", REFRESH_TOKEN),
                                new NameValuePair("grant_type", GRANT_TYPE_REFRESH)
                         };
                        postMethod.setRequestBody(data);
                        int statusCode = httpClient.executeMethod(postMethod);
                        
                        if(200 == statusCode){
                            String body  = postMethod.getResponseBodyAsString();
                            JSONObject json=JSONObject.parseObject(body);
                            TOKEN = json.getString("access_token");
                            REFRESH_TOKEN = json.getString("refresh_token");
                            EXPIRES_IN = Long.parseLong(json.getString("expires_in"));
                            START_DATE =  (new Date()).getTime();
                        }
                    } catch (Exception e) {
                        
                    }
                    return TOKEN;
             }

    }
    posted @ 2015-08-31 09:54 藤本薔薇 閱讀(290) | 評論 (0)編輯 收藏

    /Files/kokosang/html5拖拽上傳.zip

      前幾天想做個給安卓app升級做個上傳頁面,然后從網上down了個頁面下面(主要是嫌棄自己頁面整的太丑,見不了人),然后就一直在整后臺取值的辦法
      各種百度,值取出來了,但是,悲催的是總是亂碼,崩潰了,大神看了后,鄙視一番,給我整了下,簡直就是重寫了

      貼出來,先放張頁面效果
      


      賞心悅目的后臺來咯

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.util.List;

    import org.apache.log4j.Logger;
    import org.apache.tomcat.util.http.fileupload.FileItem;
    import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;
    import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;

    import com.puff.framework.annotation.Controller;
    import com.puff.web.mvc.PuffContext;
    import com.puff.web.view.View;

    @Controller("/upload/android")
    public class AndroidVersionUploadController {

        private static final Logger logger = Logger.getLogger(UserImageController.class);
        
        private static final String FILE_PATH = "C:/Users/Administrator/Desktop";
        
        private static final String FILE_APK_NAME = "/nn.apk";
        private static final String FILE_VER_NAME = "/ver.txt";
        
        /**
         * 版本上傳
         * 
    @return
         * 
    @throws Exception 
         
    */
        public View update() throws Exception {
            DiskFileItemFactory factory = new DiskFileItemFactory(); 
            ServletFileUpload upload = new ServletFileUpload(factory); 
            List<FileItem> items = upload.parseRequest( PuffContext.getRequest()); 
            
            String ver = null;
            String info = null;
            String isFoucs = null;
            for(Object object : items) { 
                FileItem fileItem = (FileItem)object; 
                if(fileItem.isFormField()) { 
                    
                    String name = fileItem.getFieldName();
                    String value = fileItem.getString("utf-8");
                    
                    if("ver".equals(name)){
                        ver = value;
                    }else if("content".equals(name)){
                        info = value;
                    }else if("radio".equals(name)){
                        isFoucs = value;
                    }
                } else {
                    saveFileInfo(fileItem);
                }
            } 
            
            saveContentInfo(ver, info, isFoucs);
            
            return null;
        
        }

        private void saveFileInfo(FileItem fileItem) {
            
            InputStream is = null;
            OutputStream os = null;
            try {
                File file = new File(FILE_PATH);
                if(file.exists()) {
                    file.mkdirs();
                }
                
                is = fileItem.getInputStream();
                os = new FileOutputStream(FILE_PATH + FILE_APK_NAME);
                
                int len = 0;
                byte[] buffer = new byte[8 * 1024];
                while ((len = is.read(buffer, 0, 8 * 1024)) != -1) {
                    os.write(buffer, 0, len);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                closeOutputStream(os);
                closeInputStream(is);
            }
        }
        
        public void saveContentInfo(String ver, String info, String isFoucs) {
            BufferedWriter br = null;
            try {
                File file = new File(FILE_PATH);
                if(file.exists()) {
                    file.mkdirs();
                }
                
                br = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FILE_PATH + FILE_VER_NAME), "utf-8"));
                br.write("ver:" + ver + "\r\n");   //版本號
                br.write("update:" + isFoucs+ "\r\n");   //是否強制更新
                br.write("content:" + info );    //版本升級內容
                br.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if(br != null) {
                        br.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    br = null;
                }
            }
        }


        private void closeOutputStream(OutputStream os) {
            if(os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    os = null;
                }
            }
        }
        
        private void closeInputStream(InputStream is) {
            if(is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    is = null;
                }
            }
        }
    }
    posted @ 2015-08-24 10:35 藤本薔薇 閱讀(261) | 評論 (0)編輯 收藏
    public static void main(String[] args) {

            String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?><p><seqid></seqid><code></code><msg>成功</msg>" +
                              "<node><ename>huoniu</ename><cname>火牛</cname><prefix>108</prefix><begin>20150603</begin><end>20160630</end><borr>1000000</borr><margin>100000</margin><usdborr>1000000</usdborr><usdmargin>100000</usdmargin><mainp>0.60</mainp><midp>0.60</midp><growp>0.60</growp><mainpt>0.60</mainpt><midpt>0.60</midpt><growpt>0.30</growpt><shcomm>0.000300</shcomm><szcomm>0.000300</szcomm><warn>1.000</warn><close>1.000</close><interest>200</interest><commf>13</commf><layout>p-huo01:1100000:574810</layout><unmoney>0</unmoney><tstatus>0</tstatus><cstatus>0</cstatus></node>" +
                              " <node><ename>nn</ename><cname>牛牛</cname><prefix>102</prefix><begin>20150615</begin><end>20151015</end><borr>10000000</borr><margin>8000000</margin><usdborr>10000000</usdborr><usdmargin>8000000</usdmargin><mainp>0.60</mainp><midp>0.60</midp><growp>0.30</growp><mainpt>0.60</mainpt><midpt>0.60</midpt><growpt>0.30</growpt><shcomm>0.003000</shcomm><szcomm>0.003000</szcomm><warn>0.800</warn><close>0.800</close><interest>0</interest><commf>0</commf><layout></layout><unmoney>18000000</unmoney><tstatus>0</tstatus><cstatus>0</cstatus></node>" +
                             "<node><ename>ag-huo</ename><cname>兜底代理商</cname><prefix>huo</prefix><begin>20150602</begin><end>20160630</end><borr>0</borr><margin>0</margin><usdborr>0</usdborr><usdmargin>0</usdmargin><mainp>0.60</mainp><midp>0.60</midp><growp>0.30</growp><mainpt>0.60</mainpt><midpt>0.60</midpt><growpt>0.30</growpt><shcomm>0.000300</shcomm><szcomm>0.000300</szcomm><warn>0.010</warn><close>0.010</close><interest>0</interest><commf>0</commf><layout></layout><unmoney>0</unmoney><tstatus>0</tstatus><cstatus>0</cstatus></node></p>";

            List<Map> nodeList = new ArrayList<Map>();
            Map<String, Object> sendMap = new HashMap<String, Object>();
            try {
                
                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                DocumentBuilder db = dbf.newDocumentBuilder();
                Document doc = db.parse(new InputSource(new StringReader(xml)));
                Element root = doc.getDocumentElement();// 根節點

                Node node = root.getFirstChild();
                while(node != null) {
                    String nodeName = node.getNodeName().trim();
                    String nodeValue = node.getTextContent().trim();
                    
                    if("node".equals(nodeName) && node.hasChildNodes()) {
                        
                        Map<String, Object> nodeMap = new HashMap<String, Object>();
                        
                        Node childNode = node.getFirstChild();
                        while(childNode != null) {
                            nodeMap.put(childNode.getNodeName(), childNode.getTextContent());
                            childNode = childNode.getNextSibling();
                        }
                        
                        nodeList.add(nodeMap);
                    } else {
                        sendMap.put(nodeName, nodeValue);
                    }
                    
                    node = node.getNextSibling();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            sendMap.put("node", nodeList);
            
            System.out.println(sendMap);
        }



    打印結果 :
    {node=[{warn=1.000, cstatus=0, tstatus=0, borr=1000000, growpt=0.30, unmoney=0, midpt=0.60, usdmargin=100000, commf=13, close=1.000, begin=20150603, shcomm=0.000300, usdborr=1000000, growp=0.60, interest=200, layout=p-huo01:1100000:574810, prefix=108, ename=huoniu, midp=0.60, mainpt=0.60, margin=100000, szcomm=0.000300, cname=火牛, end=20160630, mainp=0.60}, 
                {warn=0.800, cstatus=0, tstatus=0, borr=10000000, growpt=0.30, unmoney=18000000, midpt=0.60, usdmargin=8000000, commf=0, close=0.800, begin=20150615, shcomm=0.003000, usdborr=10000000, growp=0.30, interest=0, layout=, ename=nn, midp=0.60, mainpt=0.60, margin=8000000, szcomm=0.003000, end=20151015, mainp=0.60},
                {warn=0.010, cstatus=0, tstatus=0, borr=0, growpt=0.30, unmoney=0, midpt=0.60, usdmargin=0, commf=0, close=0.010, begin=20150602, shcomm=0.000300, usdborr=0, growp=0.30, interest=0, layout=, prefix=huo, ename=ag-huo, midp=0.60, mainpt=0.60, margin=0, szcomm=0.000300, end=20160630, mainp=0.60}], seqid=, code=, msg=成功}
    posted @ 2015-08-09 10:15 藤本薔薇 閱讀(267) | 評論 (0)編輯 收藏
          public static void main(String[] args) throws Exception {
                Map<String, Object> sendMap = new HashMap<String, Object>();
                String data = "<?xml version=\"1.0\" encoding=\"gb2312\"?><p><seqid></seqid><client>0BF3F2D9A01797BBF05D6BC89877DC91</client><ename>108-wc</ename><code>0</code><msg>成功</msg><totalm>12447.97</totalm><cash>5669.13</cash><stockm>6778.84</stockm><num>2</num><stock><node><market>0</market><symbol>600104</symbol><direct>1</direct><type>0</type><avgprice>21.010</avgprice><holdnum>299</holdnum></node><node><market>0</market><symbol>601818</symbol><direct>1</direct><type>0</type><avgprice>4.993</avgprice><holdnum>4</holdnum></node></stock></p>";

                List<Map> nodeList = new ArrayList<Map>();
                try {
                    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                    DocumentBuilder db = dbf.newDocumentBuilder();
                    Document doc = db.parse(new InputSource(new StringReader(data)));
                    Element root = doc.getDocumentElement();// 根節點
                    Node node = root.getFirstChild();
                    while(node != null) {
                        String nodeName = node.getNodeName().trim();
                        String nodeValue = node.getTextContent().trim();
                        if("stock".equals(nodeName) && node.hasChildNodes()) {
                            Node  nodeOne =  node.getFirstChild();
                            while(nodeOne != null) {
                             String nodeOneName = nodeOne.getNodeName().trim();
                             if("node".equals(nodeOneName) && nodeOne.hasChildNodes()){
                                 Map<String, Object> nodeMap = new HashMap<String, Object>();
                                  Node threeNode = nodeOne.getFirstChild();
                                    while(threeNode != null) {
                                        nodeMap.put(threeNode.getNodeName(), threeNode.getTextContent());
                                        threeNode = threeNode.getNextSibling();
                                    }
                                    nodeList.add(nodeMap);
                                  }
                               nodeOne = nodeOne.getNextSibling();
                               }
                            }else{
                                sendMap.put(nodeName, nodeValue);
                            }
                        node = node.getNextSibling();
                        }                    
                    sendMap.put("node", nodeList);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println(sendMap);
          }  


    打印結果:{node=[{direct=1, market=0, symbol=600104, avgprice=21.010, holdnum=299, type=0},
                 {direct=1, market=0, symbol=601818, avgprice=4.993, holdnum=4, type=0}],
                  num=2, seqid=, client=0BF3F2D9A01797BBF05D6BC89877DC91, stockm=6778.84, cash=5669.13, ename=108-wc, code=0, totalm=12447.97, msg=成功}
    posted @ 2015-08-09 10:09 藤本薔薇 閱讀(476) | 評論 (0)編輯 收藏
    /Files/kokosang/DoubleUtil.txt



    package frameWork.util;
    import java.math.BigDecimal;
    import java.text.DecimalFormat;
    /**   
     * 由于Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精   
     * 確的浮點數運算,包括加減乘除和四舍五入。   
     */    
    public class DoubleUtil {
    //這個類不能實例化    
    private DoubleUtil(){    
    }  
    //默認除法運算精度    
    private static final int DEF_DIV_SCALE = 10;  
    //默認的保留位數
    private static DecimalFormat df=new DecimalFormat("0.00");  
    /**
    * 按照格式保留幾位
    * @param money  double數
    * @param format 格式
    * @return
    */
    public static double  format(double money,String format){
    if(format != null && format != ""){
    df=new DecimalFormat(format); 
    }
    double moneyformat=new Double(df.format(money).toString());  
    return moneyformat;
    }
    /**   
    * 提供精確的加法運算。   
    * @param v1 被加數   
    * @param v2 加數   
    * @return 兩個參數的和   
    */    
    public static double add(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.add(b2).doubleValue();    
    }    
    /**   
    * 提供精確的減法運算。   
    * @param v1 被減數   
    * @param v2 減數   
    * @return 兩個參數的差   
    */    
    public static double sub(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.subtract(b2).doubleValue();    
    }    
    /**   
    * 提供精確的乘法運算。   
    * @param v1 被乘數   
    * @param v2 乘數   
    * @return 兩個參數的積   
    */    
    public static double mul(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.multiply(b2).doubleValue();    
    }    
    /**   
    * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到   
    * 小數點以后10位,以后的數字四舍五入。   
    * @param v1 被除數   
    * @param v2 除數   
    * @return 兩個參數的商   
    */    
    public static double div(double v1,double v2){    
    return div(v1,v2,DEF_DIV_SCALE);    
    }    
    /**   
    * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指   
    * 定精度,以后的數字四舍五入。   
    * @param v1 被除數   
    * @param v2 除數   
    * @param scale 表示表示需要精確到小數點以后幾位。   
    * @return 兩個參數的商   
    */    
    public static double div(double v1,double v2,int scale){    
    if(scale<0){    
    throw new IllegalArgumentException("The scale must be a positive integer or zero");    
    }    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();    
    }    
    /**   
    * 提供精確的小數位四舍五入處理。   
    * @param v 需要四舍五入的數字   
    * @param scale 小數點后保留幾位   
    * @return 四舍五入后的結果   
    */    
    public static double round(double v,int scale){    
    if(scale<0){    
    throw new IllegalArgumentException("The scale must be a positive integer or zero");    
    }    
    BigDecimal b = new BigDecimal(Double.toString(v));    
    BigDecimal one = new BigDecimal("1");    
    return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();    
    }    
    /**   
    * 提供精確的類型轉換(Float)   
    * @param v 需要被轉換的數字   
    * @return 返回轉換結果   
    */    
    public static float convertsToFloat(double v){    
    BigDecimal b = new BigDecimal(v);    
    return b.floatValue();    
    }    
    /**   
    * 提供精確的類型轉換(Int)不進行四舍五入   
    * @param v 需要被轉換的數字   
    * @return 返回轉換結果   
    */    
    public static int convertsToInt(double v){    
    BigDecimal b = new BigDecimal(v);    
    return b.intValue();    
    }    
    /**   
    * 提供精確的類型轉換(Long)   
    * @param v 需要被轉換的數字   
    * @return 返回轉換結果   
    */    
    public static long convertsToLong(double v){    
    BigDecimal b = new BigDecimal(v);    
    return b.longValue();    
    }    
    /**   
    * 返回兩個數中大的一個值   
    * @param v1 需要被對比的第一個數   
    * @param v2 需要被對比的第二個數   
    * @return 返回兩個數中大的一個值   
    */    
    public static double returnMax(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(v1);    
    BigDecimal b2 = new BigDecimal(v2);    
    return b1.max(b2).doubleValue();    
    }    
    /**   
    * 返回兩個數中小的一個值   
    * @param v1 需要被對比的第一個數   
    * @param v2 需要被對比的第二個數   
    * @return 返回兩個數中小的一個值   
    */    
    public static double returnMin(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(v1);    
    BigDecimal b2 = new BigDecimal(v2);    
    return b1.min(b2).doubleValue();    
    }    
    /**   
    * 精確對比兩個數字   
    * @param v1 需要被對比的第一個數   
    * @param v2 需要被對比的第二個數   
    * @return 如果兩個數一樣則返回0,如果第一個數比第二個數大則返回1,反之返回-1   
    */    
    public static int compareTo(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(v1);    
    BigDecimal b2 = new BigDecimal(v2);    
    return b1.compareTo(b2);    
    }
    /**
    * 格式化double
    * @param arg0
    * @param num
    * @return
    */
    public static String doubleFormat(double arg0,Integer num){
    DecimalFormat df = new DecimalFormat("####.00"); 
    /*DecimalFormat df2 = new DecimalFormat("##.00%");  
    DecimalFormat df3 = new DecimalFormat("###,##0.00");*/
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("####.0"); 
    }else if(num == 2){
    df = new DecimalFormat("####.00"); 
    }else if(num == 3){
    df = new DecimalFormat("####.000"); 
    }else if(num == 4){
    df = new DecimalFormat("####.0000"); 
    }
    }else{
    df = new DecimalFormat("####"); 
    }
    if(df.format(arg0).contains(".")){
    if(df.format(arg0).substring(0, df.format(arg0).indexOf(".")).length()<=0){
    df = new DecimalFormat("0.00");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("0.0"); 
    }else if(num == 2){
    df = new DecimalFormat("0.00"); 
    }else if(num == 3){
    df = new DecimalFormat("0.000"); 
    }else if(num == 4){
    df = new DecimalFormat("0.0000"); 
    }
    }else{
    df = new DecimalFormat("0"); 
    }
    }
    }
    return df.format(arg0);
    }
    /**
    * 百分比格式化
    * @param arg0
    * @param num
    * @return
    */
    public static String percentageFormat(double arg0,Integer num){
    DecimalFormat df = new DecimalFormat("##.00%");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("####.0%"); 
    }else if(num == 2){
    df = new DecimalFormat("####.00%"); 
    }else if(num == 3){
    df = new DecimalFormat("####.000%"); 
    }else if(num == 4){
    df = new DecimalFormat("####.0000%"); 
    }
    }else{
    df = new DecimalFormat("####%"); 
    }
    if(df.format(arg0).contains(".")){
    if(df.format(arg0).substring(0, df.format(arg0).indexOf(".")).length()<=0){
    df = new DecimalFormat("0.00%");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("0.0%"); 
    }else if(num == 2){
    df = new DecimalFormat("0.00%"); 
    }else if(num == 3){
    df = new DecimalFormat("0.000%"); 
    }else if(num == 4){
    df = new DecimalFormat("0.0000%"); 
    }
    }else{
    df = new DecimalFormat("0%"); 
    }
    }
    }
    return df.format(arg0);
    }
    /**
    * double每三位短號分割
    * @param arg0
    * @param num
    * @return
    */
    public static String splitNumberFormat(double arg0,Integer num){
    DecimalFormat df = new DecimalFormat("###,##0.00");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("###,##0.0"); 
    }else if(num == 2){
    df = new DecimalFormat("###,##0.00"); 
    }else if(num == 3){
    df = new DecimalFormat("###,##0.000"); 
    }else if(num == 4){
    df = new DecimalFormat("###,##0.0000"); 
    }
    }else{
    df = new DecimalFormat("###,###"); 
    }
    return df.format(arg0);
    }
    }
    posted @ 2015-08-07 13:47 藤本薔薇 閱讀(587) | 評論 (0)編輯 收藏
    假如  redis  在/usr/local/bin

    配置文件在/usr/local/redis-2.8.21 

     root@iZ239bujfzrZ:    /usr/local/bin# ./redis-server redis.conf nohup 
    posted @ 2015-08-07 10:36 藤本薔薇 閱讀(213) | 評論 (0)編輯 收藏

          public static interface NUMBER{
    public static String STR_FORMAT = "00000"; 
            static String TOKEN = null; 
    }


    //配資單號格式
        public static String AddOne(String code){
       Integer intHao = Integer.parseInt(code);
       intHao++;
       DecimalFormat df = new DecimalFormat(NUMBER.STR_FORMAT);
       return df.format(intHao);
        }
        
        public static void main(String[] args) {
        String code = "ASD0034252345234500001";
           String  xlh = code.substring(code.length()-5, code.length());
           System.out.println("數據庫原有的最大序列號:"+xlh);
           if(xlh!=null){
          System.out.println("累加的新生成的序列號:"+AddOne(xlh));
           }else{
          System.out.println("最新的新生成的序列號:"+"00001"); //如果沒有手動生成一條最小的
           }
      }
        
    posted @ 2015-08-03 11:50 藤本薔薇 閱讀(451) | 評論 (0)編輯 收藏
        /**
         * 獲取股票板塊信息
         * 滬市A股 : 600、601、603 開頭
         * 深市A股 : 000開頭
         * 中小板 : 002開頭
         * 創業板 : 300開頭
         * 滬市新股申購:730
         * @param code
         * @return
         */
        public static int getPlateInfo(String code){
        if(code.startsWith("600") || code.startsWith("601") || code.startsWith("603")){
        return 0;
        }else if(code.startsWith("000")){
        return 1;
        }else if(code.startsWith("002")){
        return 2;
        }else if(code.startsWith("300")){
        return 3;
        }else if(code.startsWith("730")){
        return 4;
        }else {
        return 5;
        }
        }
    posted @ 2015-07-29 19:07 藤本薔薇 閱讀(373) | 評論 (0)編輯 收藏
     
                我想把String 類型 yyyy-MM-dd 格式的數據轉換成 String 類型  yyyyMMdd 格式,然后

    String end_date = "2015-09-07";
            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); 
            Date date_2 = formatter.parse(end_date);
    String date_22 = formatter.format(date_2);
    System.out.println(date_2);
    System.out.println(date_22);

      
            打印出來結果是:
                    Tue Dec 09 00:00:00 CST 2014
                    20141209

           后來,吾家上神告知,不能直接轉
          
                    String end_date = "2015-09-07";
    DateFormat format =new SimpleDateFormat("yyyy-MM-dd");
    Date date_1 = format.parse(end_date);
    format = new SimpleDateFormat("yyyyMMdd");  
    String date_11 = format.format(date_1);
    System.out.println(date_1);
    System.out.println(date_11);


          打印出來結果是:

                   Mon Sep 07 00:00:00 CST 2015
                   20150907


        總結語: 吾家上神棒棒噠!!!

    posted @ 2015-07-27 16:27 藤本薔薇 閱讀(203) | 評論 (0)編輯 收藏
             
                 原本寫了 if  else  判斷股票所屬板塊的,覺得繁瑣,就去改了下面的

                      public static void main(String[] args) {
        String code ="002348";
        String stock = "002".equals(code.substring(0,3)) ? "002" : code.substring(0,1);
    System.out.println(stock);
    }

                   然后跑去得瑟,被鄙視了,然后  ↓↓↓↓

                     public static String getPlateInfo(String code){
        return code.startsWith("002") ? "002" : code.substring(0,1);
                      }

                還補了一刀,你看你寫的什么玩意兒,哼,好想讓他跪搓衣板
    posted @ 2015-07-02 00:26 藤本薔薇 閱讀(231) | 評論 (0)編輯 收藏
    Map<String, Object> userInfoMap = new HashMap<String, Object>();
    // String data = JsonUtil.toJson(infoMap);
    userInfoMap.put("agent", agent);
    userInfoMap.put("ename", ename);
    Map<String, Object> infoMap = SocketLogic.logic.userInfo(userInfoMap);
    JSONObject rootObj = (JSONObject)JSONObject.toJSON(infoMap);
    JSONArray nodeArr = rootObj.getJSONArray("node");
    for(int i = 0; i < nodeArr.size(); i ++) {
    authority = nodeArr.getJSONObject(i).get("authority").toString();          //交易權限
    margin = nodeArr.getJSONObject(i).getLongValue("margin");  //保證金
    warn = nodeArr.getJSONObject(i).getFloatValue("warn");      //警戒線
    close = nodeArr.getJSONObject(i).getFloatValue("close");    //平倉線
    end =  nodeArr.getJSONObject(i).getLongValue("end");       //結束時間
    mainp = nodeArr.getJSONObject(i).getFloatValue("mainp"); //主板單票比例
    midp = nodeArr.getJSONObject(i).getFloatValue("midp");   //中小板單票比例
    growp = nodeArr.getJSONObject(i).getFloatValue("growp"); //創業板單票比例
       
    }
    posted @ 2015-06-29 19:20 藤本薔薇 閱讀(336) | 評論 (1)編輯 收藏
    轉自 : http://wzf7065.iteye.com/blog/1567587



    public class StringTest {
        private static int counter = 0;
        public static void main(String[] args) {
        String str1 = "sd& ^^java***java(((java";
        String str2 = "java";
        int i = countStr(str1, str2);
        System.out.println("i---------->" + i);
        }
        /**
         * 判斷str1中包含str2的個數
          * @param str1
         * @param str2
         * @return counter
         */
        public static int countStr(String str1, String str2) {
            if (str1.indexOf(str2) == -1) {
           return 0;
            } else if (str1.indexOf(str2) != -1) {
           counter++;
           countStr(str1.substring(str1.indexOf(str2) +
                       str2.length()), str2);
                   return counter;
            }
           return 0;
        }
    }
    posted @ 2015-06-23 14:47 藤本薔薇 閱讀(1428) | 評論 (0)編輯 收藏

             select * from  table order by  id   limit    (intPage - 1) * PageRow    , intPage * PageRow




    去重SQL

    select product_code,count(*) as count from h_product_info group by product_code having count>1; 
    select d_date,count(*) as count from h_oddnum group by d_date having count>1 order by d_date desc; 
    delete from h_oddnum where id in (select min(id) from h_oddnum group by d_date having count(d_date) > 1) 
    create table tmp as select min(id) as col1 from blur_article group by title;
    delete from blur_article where id not in (select col1 from tmp); 
    drop table tmp;
    select min(id) from h_oddnum group by d_date having count(d_date) > 1
    create table tmp as select min(id) as col1 from h_oddnum group by d_date having count(d_date) > 1;
    delete from h_oddnum where id not in (select col1 from tmp); 
    drop table tmp;
    insert into h_oddnum(id,d_date,d_code) values('e1d64c5f536b4b1bbfe9f04511c01f3f','20150422172207','00001');
    posted @ 2015-05-19 17:12 藤本薔薇 閱讀(178) | 評論 (0)編輯 收藏
    posted @ 2015-05-04 10:18 藤本薔薇 閱讀(143) | 評論 (0)編輯 收藏

    只能有四位,且可以是數字和字母的混合


    [A-Za-z0-9]{4}
    posted @ 2015-04-24 11:53 藤本薔薇 閱讀(183) | 評論 (0)編輯 收藏
     double rounded = (b1.multiply(b2).multiply(b3)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

    java 四舍五入保留小數(copy)

     
    // 方式一:
    double f = 3.1516;
    BigDecimal b = new BigDecimal(f);
    double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
     
    // 方式二:
    new java.text.DecimalFormat("#.00").format(3.1415926);
    // #.00 表示兩位小數 #.0000四位小數 以此類推…
     
    // 方式三:
    double d = 3.1415926;
    String result = String.format("%.2f", d);
    // %.2f %. 表示 小數點前任意位數 2 表示兩位小數 格式后的結果為f 表示浮點型。
     
    //方法四:
    Math.round(5.2644555 * 100) * 0.01d;
    //String.format("%0" + 15 + "d", 23) 23不足15為就在前面補0

    posted @ 2015-04-24 11:47 藤本薔薇 閱讀(729) | 評論 (0)編輯 收藏

    在項目當中,對于double類型數據的使用比較頻繁。尤其是處理金錢相關的數據,在使用Double類型的數據時,涉及到精度,顯示,四舍五入等等問題。

    1.  顯示問題,當double 數據 小于 0.0001 大于等于 10000000時,直接轉為String輸出時,會顯示為科學計數法。

       1:  double double1 = 0.00009;
       2:  System.out.println(double1); // 9.0E-5
       3:         
       4:  double double2 = 10000000;
       5:  System.out.println(double2); // 1.0E7

    需要使用DecimalFormat 轉化輸出

       1:  DecimalFormat formate = new DecimalFormat("#.######");
       2:  System.out.println(formate.format(double1)); //0.00009
       3:          
       4:  formate = new DecimalFormat("########.##");
       5:  System.out.println(formate.format(double2));//10000000
     
    這里面會有四舍五入問題:
       1:  double double1 = 0.000096789;
       2:  DecimalFormat formate = new DecimalFormat("#.######");
       3:  System.out.println(formate.format(double1)); //0.000097

    當取小數點后六位時,會在第七位四舍五入。

     

    2. 誤差問題,兩個Double類型的數,進行運算。經常會產生誤差。

       1:  System.out.println(0.05 + 0.01); //0.060000000000000005
       2:  System.out.println(1.0 - 0.42);  //0.5800000000000001
       3:  System.out.println(4.015 * 100); //401.49999999999994
       4:  System.out.println(123.3 / 100); //1.2329999999999999

    看似簡單的計算,結果卻出人意料。解決方法是將Double轉為BigDecimal。調用BigDecimal的 運算。

       1:   double d1 = 0.05;
       2:   double d2 = 0.01;
       3:   BigDecimal b1 = new BigDecimal(Double.toString(d1));
       4:   BigDecimal b2 = new BigDecimal(Double.toString(d2));
       5:   System.out.println(b1.add(b2));  //0.06
     
    需要注意的是,如果new BigDecimal()時使用的是double類型的構造方法。問題依舊是可能存在的,這邊要使用String參數的構造方法。
     
    3. 兩個double比較的問題。將double數的運算結果和0比較。由于精度問題,比如if(1-0.999999999999999999 == 0.0) 這個是成立的。
     
    附上double數的運算:
       1:      /**
       2:       * 兩個Double數相加
       3:       * 
       4:       * @param v1
       5:       * @param v2
       6:       * @return
       7:       */
       8:      public static double doubleAdd(Double v1, Double v2) {
       9:   
      10:          BigDecimal b1 = new BigDecimal(v1.toString());
      11:   
      12:          BigDecimal b2 = new BigDecimal(v2.toString());
      13:   
      14:          return b1.add(b2).doubleValue();
      15:   
      16:      }
      17:   
      18:      /**
      19:       * 兩個Double數相減
      20:       * 
      21:       * @param v1
      22:       * @param v2
      23:       * @return
      24:       */
      25:      public static double doubleSub(Double v1, Double v2) {
      26:   
      27:          BigDecimal b1 = new BigDecimal(v1.toString());
      28:   
      29:          BigDecimal b2 = new BigDecimal(v2.toString());
      30:   
      31:          return b1.subtract(b2).doubleValue();
      32:   
      33:      }
      34:   
      35:      /**
      36:       * 兩個Double數相乘
      37:       * 
      38:       * @param v1
      39:       * @param v2
      40:       * @return
      41:       */
      42:      public static double doubleMul(Double v1, Double v2) {
      43:   
      44:          BigDecimal b1 = new BigDecimal(v1.toString());
      45:   
      46:          BigDecimal b2 = new BigDecimal(v2.toString());
      47:   
      48:          return b1.multiply(b2).doubleValue();
      49:   
      50:      }
      51:   
      52:      /**
      53:       * 兩個Double數相除
      54:       * 
      55:       * @param v1
      56:       * @param v2
      57:       * @return
      58:       */
      59:      public static double doubleDiv(Double v1, Double v2) {
      60:   
      61:          BigDecimal b1 = new BigDecimal(v1.toString());
      62:   
      63:          BigDecimal b2 = new BigDecimal(v2.toString());
      64:   
      65:          return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP)
      66:                  .doubleValue();
      67:   
      68:      }
      69:   
      70:      /**
      71:       * 兩個Double數相除,并保留scale位小數
      72:       * 
      73:       * @param v1
      74:       * @param v2
      75:       * @param scale
      76:       * @return
      77:       */
      78:      public static double doubleDiv(Double v1, Double v2, int scale) {
      79:   
      80:          if (scale < 0) {
      81:   
      82:              throw new IllegalArgumentException(
      83:   
      84:              "The scale must be a positive integer or zero");
      85:   
      86:          }
      87:          int DEF_DIV_SCALE = 10;
      88:   
      89:          BigDecimal b1 = new BigDecimal(v1.toString());
      90:   
      91:          BigDecimal b2 = new BigDecimal(v2.toString());
      92:   
      93:          return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
      94:   
      95:      }
    posted @ 2015-04-22 18:11 藤本薔薇 閱讀(178) | 評論 (0)編輯 收藏
    語句對的,但不能執行
    delete from h_oddnum where id in (select min(id) from h_oddnum group by d_date having count(d_date) > 1) 

    只能創建臨時表刪除

    create table tmp as select min(id) as col1 from h_oddnum group by d_date having count(d_date) > 1;
    delete from h_oddnum where id not in (select col1 from tmp); 
    drop table tmp;
    posted @ 2015-04-22 16:50 藤本薔薇 閱讀(140) | 評論 (0)編輯 收藏
        Date date = new Date("2014/1/10 18:20");
            Date date2 = new Date("2014/1/11 3:5");
            long temp = date2.getTime() - date.getTime();    //相差毫秒數
            long hours = temp / 1000 3600;                //相差小時數
            long temp2 = temp % (1000 3600);
            long mins = temp2 / 1000 60;                    //相差分鐘數
            System.out.println("date2 與 date 相差" + hours + "小時"+ mins + "分鐘");
    posted @ 2015-04-16 10:40 藤本薔薇 閱讀(136) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 久久成人a毛片免费观看网站| 亚洲AV无码一区二区二三区入口 | 三年片在线观看免费西瓜视频 | 午夜高清免费在线观看| 免费萌白酱国产一区二区三区 | 国产无遮挡吃胸膜奶免费看视频 | 亚洲精品福利在线观看| 亚洲精品无码久久一线| 亚洲AV伊人久久青青草原| 最近中文字幕免费mv视频7| 永久黄色免费网站| 久久青草91免费观看| a级片免费观看视频| 青青草国产免费国产是公开 | 又黄又大又爽免费视频| 午夜神器成在线人成在线人免费| 免费在线视频你懂的| 久久国产精品免费专区| a级毛片免费在线观看| 国产精品1024在线永久免费| 一区二区三区精品高清视频免费在线播放| 亚洲日韩久久综合中文字幕| 7777久久亚洲中文字幕| 亚洲中文字幕久久精品无码2021| 91嫩草私人成人亚洲影院| 亚洲成a人片77777老司机| 久久青青成人亚洲精品| 亚洲高清国产拍精品26U| 亚洲精品少妇30p| 日韩亚洲欧洲在线com91tv| 国产V亚洲V天堂无码久久久| 亚洲色成人WWW永久网站| 亚洲色欲久久久综合网东京热| 亚洲综合色自拍一区| 亚洲无码在线播放| 亚洲AV综合色一区二区三区| 色噜噜综合亚洲av中文无码| 亚洲酒色1314狠狠做| 亚洲免费二区三区| 在线观看日本亚洲一区| 亚洲av无码专区青青草原|