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

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

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

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

    #

    //這里面主要是由于銀聯的手機支付用到了一個付款的轉換方式問題,當調用支付寶付款的時候,比如一分錢格式就是我們普通用的格式:0.01,而銀聯確要把格式轉化為000000000001(銀聯要求是12位)這種格式的,最后一位是分,然后向前依次是角,元,十元,百元,相信不用我說,你已經懂了吧。所以這里就需要一個轉換,為了應對像1000,1000.00,1000.0這種傳過來的格式的數據,特做一下轉換,然后傳給銀聯進行支付。


    package com.abin.lee.collection.inner;
    public class ConsumeFinance {
    public static enum Currency{
    CHINARMB("chinarmb"),DOLLAR("dollar"),HK("hk");
    private Currency(String textVal){
    this.textVal=textVal;
    }
    private String textVal;
    public String toString(){
    return textVal;
    }
    }
    public static String ConsumeProcess(String money,Currency currency){
    System.out.println("currentcy="+currency);
    String flag=null;
    if(currency.equals(Currency.CHINARMB)){
    ConsumeFinance.ChinaProcess chinaProcess=new ConsumeFinance.ChinaProcess();
    flag=chinaProcess.chinaChange(money, currency);
    }
    return flag;
    public static String ConsumeProcessReturn(String money,Currency currency){
    System.out.println("currentcy="+currency);
    String flag=null;
    if(currency.equals(Currency.CHINARMB)){
    ConsumeFinance.ChinaReturn chinaReturn=new ConsumeFinance.ChinaReturn();
    flag=chinaReturn.chinaReChange(money, currency);
    }
    return flag;
    public static class ChinaProcess{
    private static String status=null;
    public static String chinaChange(String money,Currency currency){
    int point=money.lastIndexOf(".");
    if(point==-1){
    StringBuffer stb=new StringBuffer();
    int len=money.length();
    int lon=10-len;
    for(int i=0;i<lon;i++){
    stb.append("0");
    }
    stb.append(money);
    stb.append("00");
    status=stb.toString().intern();
    }
    if(point>0){
    int len=money.indexOf(".");
    int chn=money.length()-len-1;
    switch(chn){
    //先判斷money格式為100.0這種格式的,小數點后面有一位小數點的情況
    case  1:
    StringBuffer stb=new StringBuffer(money);
    stb.deleteCharAt(len);
    int lend=stb.length();
    StringBuffer sb=new StringBuffer();
    for(int i=0;i<12-lend;i++){
    sb.append("0");
    }
    sb.append(stb.toString());
    status=sb.toString().intern();
    //先判斷money格式為100.01這種格式的,小數點后面有兩位小數點的情況
    case 2:
    money=money.replace(".", "");
    int lende=money.length();
    String connect="";
    for(int i=0;i<12-lende;i++){
    connect+="0";
    }
    status=connect+money;
    }
    }
    return status;
    }
    }
    //把000000001001轉化為10.01這種格式
    public static class ChinaReturn{
    private static String status=null;
    public static String chinaReChange(String money,Currency currency){
    int change=money.length();
    int num=0;
    for(int i=0;i<change;i++){
    int value=Integer.valueOf(String.valueOf(money.charAt(i)));
    if(value>0){
    num=i;
    break;
    }
    }
    money=money.substring(num);
    if(num==10){
    status="0."+money;
    }
    if(num==11){
    status="0.0"+money;
    }
    if(num<10){
    System.out.println(money.length());
    StringBuffer stb=new StringBuffer(money);
    stb.insert(money.length()-2, ".");
    status=stb.toString().intern();
    }
    return status;
    }
    }
    public static void main(String[] args) {
    Currency currency=Currency.CHINARMB;
    String money="000000001001";
    String result=ConsumeProcessReturn(money, currency);
    // String result=ConsumeProcess(money, currency);
    System.out.println("result="+result);
    }
    }
    posted @ 2012-09-02 00:03 abin 閱讀(1869) | 評論 (0)編輯 收藏

    //ThreadLocal第一種用法:

    //建表:
    -- Create table
    create table USERBEAN
    (
      ID       NVARCHAR2(40) not null,
      USERNAME NVARCHAR2(40),
      PASSWORD NVARCHAR2(40)
    )
    tablespace USERS
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 64K
        minextents 1
        maxextents unlimited
      );
    -- Create/Recreate primary, unique and foreign key constraints 
    alter table USERBEAN
      add constraint SSSID primary key (ID)
      using index 
      tablespace USERS
      pctfree 10
      initrans 2
      maxtrans 255
      storage
      (
        initial 64K
        minextents 1
        maxextents unlimited
      );





    package com.abin.lee.collection.threadlocal;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class MyThreadLocal {
    //使用ThreadLocal保存Connection變量
    public static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
    private static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";
    private static final String USERNAME = "abing";
    private static final String PWD = "abing";
    public static Connection getConnection() {
    Connection connection = null;
    String url = "";
    //如果connThreadLocal沒有本線程對應的Connection創建一個新的Connection,并將其保存到線程本地變量中。
    if (threadLocal.get() == null) {
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    connection = DriverManager.getConnection(URL, USERNAME, PWD);
    threadLocal.set(connection);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }else {
    return threadLocal.get();//直接返回線程本地變量
    }
    return connection;
    }
    public static void remove() {
    threadLocal.remove();
    }
    }




    package com.abin.lee.collection.threadlocal;
    import java.io.Serializable;
    public class UserBean implements Serializable{
    private String id;
    private String username;
    private String password;
    public String getId() {
    return id;
    }
    public void setId(String id) {
    this.id = id;
    }
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    }





    //測試代碼
    package com.abin.lee.collection.threadlocal;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    public class OracleOperate {
    public static List<UserBean> findAll(){
    Connection conn=null;
    PreparedStatement ps=null;
    ResultSet rs=null;
    String sql="select * from userbean order by id desc";
    List<UserBean> list=new ArrayList<UserBean>();
    UserBean user=null;
    try {
    conn=MyThreadLocal.getConnection();
    ps=conn.prepareStatement(sql);
    rs=ps.executeQuery();
    while (rs.next()&&rs!=null) {
    user=new UserBean();
    user.setId(rs.getString("id"));
    user.setUsername(rs.getString("username"));
    user.setPassword(rs.getString("password"));
    list.add(user);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return list;
    }
    public static void main(String[] args) {
    List<UserBean> list=findAll();
    for(UserBean lst:list){
    System.out.println("id="+lst.getId());
    System.out.println("username="+lst.getUsername());
    System.out.println("id="+lst.getPassword());
    }
    }
    }










    //ThreadLocal第二種用法: 
    package com.abin.lee.collection.threadlocal;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class MyThreadLocal {
    private static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";
    private static final String USERNAME = "abing";
    private static final String PWD = "abing";
    //使用ThreadLocal保存Connection變量
    public static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>(){
    protected Connection initialValue() {
    Connection connection = null;
    //如果connThreadLocal沒有本線程對應的Connection創建一個新的Connection,并將其保存到線程本地變量中。
    if (connection == null) {
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    connection = DriverManager.getConnection(URL, USERNAME, PWD);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    return connection;
    }
    };
    public static Connection getConnection() {
    return threadLocal.get();
    }
    public static void remove() {
    threadLocal.remove();
    }
    }




    package com.abin.lee.collection.threadlocal;
    import java.io.Serializable;
    public class UserBean implements Serializable{
    private String id;
    private String username;
    private String password;
    public String getId() {
    return id;
    }
    public void setId(String id) {
    this.id = id;
    }
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    }






    package com.abin.lee.collection.threadlocal;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    public class OracleOperate {
    public static List<UserBean> findAll(){
    Connection conn=null;
    PreparedStatement ps=null;
    ResultSet rs=null;
    String sql="select * from userbean order by id desc";
    List<UserBean> list=new ArrayList<UserBean>();
    UserBean user=null;
    try {
    conn=MyThreadLocal.getConnection();
    ps=conn.prepareStatement(sql);
    rs=ps.executeQuery();
    while (rs.next()&&rs!=null) {
    user=new UserBean();
    user.setId(rs.getString("id"));
    user.setUsername(rs.getString("username"));
    user.setPassword(rs.getString("password"));
    list.add(user);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return list;
    }
    public static void main(String[] args) {
    List<UserBean> list=findAll();
    for(UserBean lst:list){
    System.out.println("id="+lst.getId());
    System.out.println("username="+lst.getUsername());
    System.out.println("id="+lst.getPassword());
    }
    }
    }
    posted @ 2012-09-01 17:03 abin 閱讀(457) | 評論 (0)編輯 收藏

    package com.abin.lee.collection.volatiler;
    public class MyThread implements Runnable{
    private volatile boolean flag=false;
    public void run() {
    while(!flag){
    try {
    System.out.println("before");
    Thread.sleep(3000);
    System.out.println("after");
    } catch (Exception e) {
    e.printStackTrace();
    }
    flag=true;
    }
    }
    public void setDone(boolean flag){
    this.flag=flag;
    }
    }






    測試代碼:
    package com.abin.lee.collection.volatiler;
    public class MyVolatileOne {
    public static void main(String[] args) {
    MyThread myThread=new MyThread();
    Thread thread=new Thread(myThread);
    thread.start();
    }
    }
    posted @ 2012-09-01 15:56 abin 閱讀(301) | 評論 (0)編輯 收藏

    package com.abin.lee.collection.singleton;
    /**
     * 雙重檢查加鎖 單例模式
     * @author abin
     * 這個單例模式寫法可以大大減少getInstance的時間消耗!
     */
    public class SingletonOne {
      /** 
         * volatile關鍵詞確保:當singleton變量被初始化成SingletonOne實例時,多個線程正確地處理singleton變量 
         */ 
     private volatile static SingletonOne singleton=null;
     public SingletonOne(){}
     public static SingletonOne getInstance(){
      if(null==singleton){//檢查實例,如果不存在就進入同步區塊
       synchronized (SingletonOne.class) {//注意,只有第一次才徹底執行這里的代碼
        if(null!=singleton){
         singleton=new SingletonOne();
        }
       }
      }
      return singleton;
     }
    }





    package com.abin.lee.collection.singleton;

    public class SingletonTwo {
     /**
      * volatile關鍵詞確保:當uniqueInstance變量被初始化成Singleton實例時,
      * 多個線程正確地處理uniqueInstance變量
      */
     private volatile static SingletonTwo singleton = new SingletonTwo();

     private SingletonTwo() {
     }

     public static SingletonTwo getInstance() {
      return singleton;
     }
    }

    posted @ 2012-09-01 00:27 abin 閱讀(660) | 評論 (0)編輯 收藏

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script type="text/javascript">
        function checkAll() {
            var m = document.getElementsByName("all")[0];
            var s = document.getElementsByName("check");

            if (m.checked) {

                for ( var i = 0; i < s.length; i++) {
                    s[i].checked = true;
                }
            } else {
                for ( var i = 0; i < s.length; i++) {
                    s[i].checked = false;
                }

            }
        }

        function checkEvery() {
            var m = document.getElementsByName("all")[0];
            var s = document.getElementsByName("check");

            for ( var i = 0; i < s.length; i++) {
                if (s[i].checked&&m.checked) {
                    m.checked = true;
                } else {
                    m.checked = false;
                }
            }

        }

        function turn() {
            with (document) {
                var m = getElementById("change");
                var n = getElementById("table");
                if (m.value == "收縮") {
                    n.style.display = "none";
                    m.value = "展開";
                } else {
                    n.style.display = "block";
                    m.value = "收縮";
                }
            }
        }
    </script>
    </head>
    <body>
        <table border="1" align="center" width="60%" id="table1">
            <tr>
                <td><input type="checkbox" name="all" onclick="checkAll();">全選</td>
                <td><input type="button" value="收縮" id="change"
                    onclick="turn();"></td>
            </tr>
        </table>
        <%
            int number = Integer.parseInt(request.getParameter("number"));
        %>

        <table border="1" align="center" width="60%" id="table">
            <%
                for (int i = 0; i < number; i++) {
            %>
            <tr>
                <td><input type="checkbox" name="check" onclick="checkEvery()"></td>
                <td><%=i%></td>
            </tr>
            <%
                }
            %>
        </table>
    </body>
    </html>
    posted @ 2012-08-30 19:50 abin 閱讀(2025) | 評論 (2)編輯 收藏

    <!-- 獲取復選框的值-->
    <script language=javascript>
    function c()
    {
       var c=document.getElementsByName("aaa");//getElement s ByName忘掉了一直沒注意郁悶死
       for( var i=0;i<c.length;i++)
       {
        if(c[i].checked)
        {
         alert(c[i].value);
        }
       }
    }
    function d()
    {
       var check=document.getElementsByName("aaa");
       for(i=0;i<check.length;i++)
       {
        //三元運算符,不知道為什么我用非(~)運算符,只能全選,只有選這個用了
        check[i].checked=check[i].checked?false:true;
       }
    }
    function e()
    {
       var check=document.getElementsByName("aaa");
       for(i=0;i<check.length;i++)
       {
        check[i].checked=true;
       }
      
    }
    </script>

    <input type="checkbox" name="aaa" value="1" />1
    <input type="checkbox" name="aaa" value="2" />2
    <input type="checkbox" name="aaa" value="3" />3
    <input type="checkbox" name="aaa" value="4" />4
    <input type="checkbox" name="aaa" value="5" />5
    <input type="checkbox" name="aaa" value="6" />6
    <input type="button" value="選中查看" onclick="c()"/>
    <input type="button" value="反選" onclick="d()" />
    <input type="button" value="全選" onclick="e()" />
    <br />


    如果需要將復選框選中的值操作,可在循環里面加字符串拼接,每個用逗號隔開,在js里頁面跳轉,憑借的字符串如果是數組,作為url傳遞的參數,接手后不是數組,是字符串形式的,只要用函數分割就ok了。

    posted @ 2012-08-30 17:45 abin 閱讀(509) | 評論 (0)編輯 收藏

    package com.abin.lee.dom4j;

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;

    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;

    public class CreateDom4j {
     public static String createXml(){
      Document document=DocumentHelper.createDocument();
      Element school=document.addElement("school");
      Element teacher=school.addElement("teacher");
      Element student=teacher.addElement("student");
      student.addText("abin");
      Element boy=teacher.addElement("boy");
      boy.addText("han");
      Element girl=teacher.addElement("girl");
      girl.addText("xia");
      
      return document.asXML();
     }
     
     public static Map<String, String> parseXml(String xml){
      Map<String, String> map=new HashMap<String, String>();
      Document doc=null;
      try {
       doc=DocumentHelper.parseText(xml);
       Element school=doc.getRootElement();
       System.out.println("school Name="+school.getName());
       System.out.println("school Value="+school.getText());
       map.put(school.getName(), school.getText());
       
       Element teacher=school.element("teacher");
       map.put(teacher.getName(), teacher.getText());
       
       Element student=teacher.element("student");
       map.put(student.getName(), student.getText());
       
       Element boy=teacher.element("boy");
       map.put(boy.getName(), boy.getText());
       
       Element girl=teacher.element("girl");
       map.put(girl.getName(), girl.getText());
      } catch (Exception e) {
       e.printStackTrace();
      }
      return map;
     }
     
     public static Map<String, String> parseString(String xml){
      Map<String, String> map=new HashMap<String, String>();
      Document doc=null;
      try {
       doc=DocumentHelper.parseText(xml);
       Element school=doc.getRootElement();
       map.put(school.getName(), school.getText());
       
       Element teacher=school.element("teacher");
       map.put(teacher.getName(), teacher.getText());
       
       for(Iterator it=teacher.elementIterator();it.hasNext();){
        Element element=(Element)it.next();
        map.put(element.getName(), element.getText());
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
      return map;
     }
     public static void main(String[] args) {
      String result=createXml();
      System.out.println("result="+result);
    //  Map<String, String> map=parseXml(result);
    //  for(Iterator it=map.entrySet().iterator();it.hasNext();){
    //   Map.Entry entry=(Map.Entry)it.next();
    //   System.out.println("entry name="+entry.getKey());
    //   System.out.println("entry value="+entry.getValue());
    //  }
      
      Map<String, String> map=parseString(result);
      for(Iterator it=map.entrySet().iterator();it.hasNext();){
       Map.Entry entry=(Map.Entry)it.next();
       System.out.println("entry name="+entry.getKey());
       System.out.println("entry value="+entry.getValue());
      }
      
      
     }

    }


    http://hi.baidu.com/stevenjohn/item/aababd47077c0ce5dd0f6c78

    posted @ 2012-08-29 22:45 abin 閱讀(691) | 評論 (0)編輯 收藏

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>javascript實現表格動態增加刪除</title>

    <script>
     function addline() {
      var table1=document.createElement("table");
      var row=table1.insertRow();
      var td1=row.insertCell();
      td1.innerHTML=document.getElementById("name1").value;
      var td2=row.insertCell();
      td2.innerHTML=document.getElementById("age1").value;
      var td3=row.insertCell();
      td3.innerHTML='<input type="button" value="刪除" onclick="deleteRow(this.parentElement)" />';
      
      document.getElementById("div1").appendChild(table1); 
      table1.setAttribute('border','1');
     }
     function deleteRow(obj) {
      obj.parentElement.removeChild(obj);
     }
    </script>
    <body>
     <div id="div1" style="">
     
     </div>
     <input type="text" name="name" id="name1" />
     <input type="text" name="age" id="age1" />
     <input type="button" value="PRESS" onclick="return addline();" />
    </body>
    </html>


    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>javascript實現表格動態增加</title>

    <script>
     function addline() {
      var table1=document.getElementById("tb1");
      var row1=document.createElement("tr");
      var td1=document.createElement("td");
      var td2=document.createElement("td");
      var td3=document.createElement("td");
      var id1=document.getElementById("id1").value;
      var name1=document.getElementById("name1").value;
      var age1=document.getElementById("age1").value;
      var txt1=document.createTextNode(id1);
      var txt2=document.createTextNode(name1);
      var txt3=document.createTextNode(age1);
      td1.appendChild(txt1);
      td2.appendChild(txt2);
      td3.appendChild(txt3);
      row1.appendChild(td1);
      row1.appendChild(td2);
      row1.appendChild(td3);
      table1.appendChild(row1);
     }
     
    </script>
    <body id="bd">
     <table id="tb1" border="1">
      <tr>
       <td>ID</td>
       <td>NAME</td>
       <td>AGE</td>
      </tr>
     </table>
     <input type="text" id="id1" />
     <input type="text" id="name1" />
     <input type="text" id="age1" />
     <br/>
     <input type="button" value="PRESS" onclick="return addline();"/>
    </body>
    </html>


    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>javascript實現表格動態增加刪除</title>

    <script>
     function addline() {
      var tb = document.getElementById("mytable");
      var row = tb.insertRow(tb.rows.length);
      var colname = row.insertCell(row.cells.length);
      var colage = row.insertCell(row.cells.length);
      var colbutton = row.insertCell(row.cells.length);

      colname.innerHTML = document.getElementById("name1").value;
      colage.innerHTML = document.getElementById("age1").value;
      colbutton.innerHTML = '<input type="button" value="刪除" onclick="deleteRow('
        + (tb.rows.length - 1) + ')" />'
     }
     function deleteRow(index) {
      var tb = document.getElementById("mytable");
      tb.deleteRow(index);
     }
    </script>
    <body>
     <table id="mytable" border="1">
      <tr>
       <td>NAME</td>
       <td>AGE</td>
       <td>OPERATE</td>
      </tr>
     </table>
     <input type="text" name="name" id="name1" />
     <input type="text" name="age" id="age1" />
     <input type="button" value="PRESS" onclick="return addline();" />
    </body>
    </html>


    僅列出標題
    共50頁: First 上一頁 30 31 32 33 34 35 36 37 38 下一頁 Last 
    主站蜘蛛池模板: 久久亚洲AV午夜福利精品一区| 亚洲美女中文字幕| 暖暖日本免费中文字幕| 亚洲日本va午夜中文字幕一区| 国产又大又粗又长免费视频| 亚洲色无码专区一区| 亚洲一级特黄无码片| 国产精品视频免费观看| 黄页网站在线观看免费| 久久综合图区亚洲综合图区| 女人毛片a级大学毛片免费| 一级毛片免费不卡| 亚洲图片中文字幕| 亚洲国产一级在线观看 | 久久国产精品2020免费m3u8| 精品亚洲成A人无码成A在线观看| 亚洲精品国产精品国自产观看| 最近免费中文字幕大全免费版视频 | 18禁美女黄网站色大片免费观看| 亚洲人成电影网站色www| 久久精品九九亚洲精品天堂| 女人18特级一级毛片免费视频| 国产中文字幕在线免费观看| 亚洲免费网站观看视频| 亚洲人成色7777在线观看| 永久免费视频v片www| 91麻豆国产免费观看| 一级毛片高清免费播放| 亚洲人成电影网站| 亚洲AV无码日韩AV无码导航| 国产高清免费的视频| 日本人的色道免费网站| 99re6在线精品免费观看| 亚洲av永久无码天堂网| 亚洲精品一区二区三区四区乱码 | 国产亚洲3p无码一区二区| 成人免费视频软件网站| 无人在线观看免费高清| 男男gvh肉在线观看免费| 亚洲国产美女在线观看| 亚洲卡一卡2卡三卡4卡无卡三 |