少年阿賓

          那些青春的歲月

            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 閱讀(1870) | 評論 (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 閱讀(458) | 評論 (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 閱讀(303) | 評論 (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 閱讀(663) | 評論 (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 閱讀(2030) | 評論 (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 閱讀(514) | 評論 (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 閱讀(693) | 評論 (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 
          主站蜘蛛池模板: 成都市| 吉安县| 太仓市| 萝北县| 崇义县| 华池县| 松潘县| 成安县| 冀州市| 焉耆| 宁夏| 淮滨县| 威信县| 武山县| 安达市| 潍坊市| 曲阜市| 铅山县| 凤阳县| 巴林左旗| 临海市| 绥江县| 水城县| 桂林市| 仁化县| 唐河县| 开鲁县| 曲靖市| 平远县| 霍州市| 通江县| 阿拉善左旗| 澳门| 台北市| 博乐市| 屏南县| 洞头县| 凯里市| 大姚县| 灵台县| 南投市|