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

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

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

    軟體印象

    Kavin
    posts - 13, comments - 0, trackbacks - 0, articles - 0

    2010年4月21日

     

    DECLARE
      v_test_varray VARCHAR_VARRAY_TYPE := VARCHAR_VARRAY_TYPE('57610',
                                                               '61368',
                                                               '73111',
                                                               '37208',
                                                               '57639');
                                                               
    V_SQL        VARCHAR2(32767);
        V_SQL_IN     VARCHAR2(32767);
        V_SQL_ROWNUM VARCHAR2(32767);
        V_ORDER      VARCHAR2(32767);
        TYPE number_index_by_string IS TABLE OF NUMBER INDEX BY VARCHAR2(10);
        v_evt_id_list  NUMBER_INDEX_BY_STRING;
        
    Begin
      --orderArray VARCHAR_VARRAY_TYPE%type := VARCHAR_VARRAY_TYPE('11','22','33','44','55');

    /*  
      FOR i IN v_test_varray.FIRST .. v_test_varray.LAST LOOP
        IF v_test_varray.EXISTS(i) THEN
          DBMS_OUTPUT.put_line(i);
        END IF;
      END LOOP;
      
    */
      
      V_ORDER := Func_LIST_TO_ORDER(v_test_varray, 'A.COL_NAME');
      DBMS_OUTPUT.put_line('V_ORDER='||V_ORDER);
      
      V_SQL := 'SELECT * FROM TABLEA A'
               || ' WHERE '
               || ''
               || ''
               || ''
               || ''
               ;
      V_SQL := V_SQL || ' ( ' ||
                   FUNC_LIST_TO_IN_SQL(v_test_varray,
                                        'COL_NAME',
                                        ''''|| ')';
        V_SQL := V_SQL  ||
                 ' ORDER by ( ' || V_ORDER || ')';
                 
      DBMS_OUTPUT.put_line('V_SQL='||V_SQL);

    --- SET v_evt_id_list number_index_by_string

    FOR i IN v_test_varray.FIRST .. v_test_varray.LAST
      LOOP
         IF v_test_varray.EXISTS (i)
         THEN
            DBMS_OUTPUT.put_line (i);
            v_evt_id_list(v_test_varray(i)) := i;
         END IF;
      END LOOP;
      
    --- TEST v_evt_id_list number_index_by_string
      FOR i IN v_evt_id_list.FIRST .. v_evt_id_list.LAST
      LOOP
         IF v_evt_id_list.EXISTS (i)
         THEN
            DBMS_OUTPUT.put_line (i||' = '||v_evt_id_list(i) );
         END IF;
      END LOOP;
      
    -- GET v_evt_id_list number_index_by_string
      DBMS_OUTPUT.put_line (v_evt_id_list('73111') );

    posted @ 2013-02-04 16:47 Kavin 閱讀(237) | 評論 (0)編輯 收藏

    1. config servlet in web.xml
     <servlet>
         <servlet-name>addressData</servlet-name>
         <servlet-class>com.xxx.webapp.AddressDataAutoCompleteServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
        </servlet>
       
    2. set autocomplete in JSP
    $().ready(function() {
     
     $("#addressLine1").autocomplete("<%=StrUtils.filterStr(request.getContextPath())%>/servlet/addressData?paramName=addressLine");
     $("#addressLine2").autocomplete("<%=StrUtils.filterStr(request.getContextPath())%>/servlet/addressData?paramName=addressLine2");
     $("#addressLine3").autocomplete("<%=StrUtils.filterStr(request.getContextPath())%>/servlet/addressData?paramName=addressLine3");
     $("#addressCity").autocomplete("<%=StrUtils.filterStr(request.getContextPath())%>/servlet/addressData?paramName=addressCity");
     $("#addressPostCode").autocomplete("<%=StrUtils.filterStr(request.getContextPath())%>/servlet/addressData?paramName=addressPostCode");
     $("#firstFocusObj").focus();
    });

    <html:text name="" tabindex="9" style="color: grey;" onclick="clearAddressValue(this)" styleId="addressLine1" value='<%=request.getAttribute("postalAddress1") == null ? defalutAddressValue : (String)request.getAttribute("postalAddress1")%>' property="TLContactDetailForm.postalAddress1" size="50" maxlength="50" styleClass="inputText2"></html:text>

    <input type="text" name="TLContactDetailForm.postalAddress1" maxlength="50" size="50" tabindex="9" value="Start typing your address and we will finish it for you" onclick="clearAddressValue(this)" id="addressLine1" style="color: grey;" class="inputText2">

    3. return addresses in java class: AddressDataAutoCompleteServlet.java

     

    package com.xxxxxx.webapp;

    import com.xxxxxx.exception.ServiceException;
    import com.xxxxxx.util.StrUtils;
    import com.xxxxxx.webapp.context.ServiceLocator;
    import com.xxxxxx.util.AddressShow;

    import java.io.IOException;
    import java.io.PrintWriter;

    import java.util.ArrayList;
    import java.util.List;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.log4j.Logger;


    /**
     * Servlet implementation class AddressDataAutoCompleteServlet
     */
    public class AddressDataAutoCompleteServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        public Logger LOG = Logger.getLogger(this.getClass().getName());

        /**
         * @see HttpServlet#HttpServlet()
         */
        public AddressDataAutoCompleteServlet() {
            super();
        }
       
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
            String paramName = request.getParameter("paramName");
            String paramValue = request.getParameter("q");
            LOG.info(paramName);
            LOG.info(paramValue);

            List list = new ArrayList();

            try {
                list = ServiceLocator.getAddressService()
                                     .searchAddressList(paramName, paramValue);
            } catch (ServiceException e) {
             LOG.error(e.getMessage(),e);
            }

            PrintWriter t_PW = response.getWriter();
           
            for (int i = 0; i < list.size(); i++) {
                String address = StrUtils.toTitleCase((String) list.get(i));

                if (paramName.equals("addressLine")) {
                 AddressShow.showAddress(t_PW,address);
                } else if (paramName.equals("addressLine1")) {
                 AddressShow.showAddress(t_PW,address);
                } else if (paramName.equals("addressLine2")) {
                 AddressShow.showAddress(t_PW,address);
                } else if (paramName.equals("addressLine3")) {
                 AddressShow.showAddress(t_PW,address);
                } else if (paramName.equals("addressCity")) {
                 AddressShow.showAddress(t_PW,address);
                } else if (paramName.equals("addressPostCode")) {
                 AddressShow.showAddress(t_PW,address);
                }
            }
        }

        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
            this.doGet(request, response);
        }
    }

     

     


    ------
    AddressShow.java

    package com.intl.cigna.util;

    import java.io.PrintWriter;

    public class AddressShow
    {
      public static void showAddress(PrintWriter pw, String input)
      {
        pw.write(input + "\n");

      }
    }

    posted @ 2012-06-07 22:39 Kavin 閱讀(303) | 評論 (0)編輯 收藏

    Unauthorized access to users data via Browser’s Cach

    Solution:


    1 <%  response.setHeader("Pragma""no-cache"); 
    2                 response.setHeader("Cache-Control""no-store"); 
    3                 response.setHeader("Expires""0"); 
    4                 response.setDateHeader("Expires"-1); 
    5 %>
    6 

    posted @ 2011-06-09 17:53 Kavin 閱讀(249) | 評論 (0)編輯 收藏

    SSH2中,直接獲取SEQUENCE的NEXTVAL

    使用Spring的 類 org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer

    Spring配置文件:
     1     <bean id="userDao" class="com.xx.dao.impl.UserDAOImpl">
     2         <property name="sessionFactory" ref="sessionFactory" />
     3         <property name="seqGenerator" ref="seqDispGenerator"></property>
     5     </bean>
     6     
     7     <bean id="seqDispGenerator" class="org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer">
     8         <property name="dataSource" ref="dataSource"></property>
     9         <property name="incrementerName" ><value>SEQ_DISP_ID</value></property>
    10     </bean>



    UserDAOImpl.java中引用:
    private OracleSequenceMaxValueIncrementer seqGenerator;
        
        

        
    /**
         * 
    @return the seqGenerator
         
    */
        
    public OracleSequenceMaxValueIncrementer getSeqGenerator() {
            
    return seqGenerator;
        }

        
    /**
         * 
    @param seqGenerator the seqGenerator to set
         
    */
        
    public void setSeqGenerator(OracleSequenceMaxValueIncrementer seqGenerator) {
            
    this.seqGenerator = seqGenerator;
        }

    UserDAOImpl.java中調用:
    1 System.out.println("---------------------- this.seqGenerator().nextIntValue="+this.seqGenerator.nextIntValue());


    posted @ 2011-05-06 14:24 Kavin 閱讀(2696) | 評論 (0)編輯 收藏

    Hibernate ID generator 自定義主鍵生成器

    /**
     * 
     
    */
    package com.ge.hc.eapp.generator;


    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    import org.hibernate.HibernateException;
    import org.hibernate.MappingException;

    import org.hibernate.dialect.Dialect;

    import org.hibernate.engine.SessionImplementor;

    import org.hibernate.id.Configurable;
    import org.hibernate.id.IdentifierGenerator;
    import org.hibernate.id.PersistentIdentifierGenerator;

    import org.hibernate.type.Type;

    import java.io.Serializable;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;

    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Properties;
    import java.util.Properties;

    /**
     * 
    @author Kavin
     *
     
    */
    public class DispNoGenerator implements IdentifierGenerator, Configurable {
        
    private static final Log log = LogFactory.getLog(DispNoGenerator.class);

        
    //存儲最大值的數組的容量
        private static final int MAX_CAPACITY = 2000;

        
    /* 同步鎖 */
        
    private static final Object lock = new Object();

        
    //存儲表存儲在數組中的索引值
        private static Map map = new HashMap();

        
    //最大值數組
        private static long[] seqs = new long[MAX_CAPACITY];

        
    //最大值數組已經使用的容量
        private static int lastIndex;

        
    //遞增步長,默認加1
        private int step = 1;
        
    private String key;
        
    private String sql;
        
    private Connection connection;
        
    private Class returnClass;

        
    public Serializable generate(SessionImplementor session, Object object)
            
    throws HibernateException {
            
    // TODO Auto-generated method stub
            connection = session.connection();

    //        long seq = -1;

            
    //找到索引值
    //        int index = findIndex();

    //        //把最大值加1
    //        seqs[index] = seqs[index] + step;
    //
    //        seq = seqs[index];
            
            String strGenerateId 
    = null;
            System.out.println(
    "this.sql="+this.sql);
            
    try {
                
    long t_SeqNo = this.getSeqValue();
            
            System.out.println(
    "t_SeqNo="+t_SeqNo);
           
            
    //得到流水號,是自己寫的工具類生成的.形式為000x
            String seqStr = String.valueOf(t_SeqNo);
            
    //JspFormate.currentFormateORM(seq);
            
    //得到yymmdd,是自己寫的方法工具類生成的yymmdd
            String preDate = "20110506";
            
    //得到hhmmss,是自己寫的工具類獲取的hhmmss
            
    //String preHour = JspFormate.dateFormateOnlyHHMMSSORM(new Date());
            String preHour = "1035";
            strGenerateId 
    = preDate + preHour + seqStr;
            } 
    catch (SQLException e) {
                log.error(e);
                e.printStackTrace();
            }

            
    return strGenerateId;
        }

        
    /**
         * 找到表中自動增長字段存儲在數組中的索引值
         * 
    @return 索引值
         
    */
        
    private int findIndex() {
            
    int index = 0;

            
    //首先中緩存中取出索引值
            Integer integer = (Integer) map.get(key);

            
    //如果沒有找到就從數據庫中讀出最大值并進行cache
            if (null == integer) {
                
    //double check lock
                synchronized (lock) {
                    integer 
    = (Integer) map.get(key);

                    
    if (null == integer) {
                        
    long maxvalue = 1;

                        
    try {
                            maxvalue 
    = this.getSeqValue();
                        } 
    catch (SQLException e) {
                            log.error(e);
                        }
                        maxvalue 
    = new Long(0).longValue();

                        integer 
    = new Integer(lastIndex++);
                        seqs[integer.intValue()] 
    = maxvalue;
                        map.put(key, integer);
                    }
                }
            }

            index 
    = integer.intValue();

            
    return index;
        }

        
    public void configure(Type type, Properties params, Dialect d)
            
    throws MappingException {
            
    //     取出table參數
            String table = params.getProperty("table");

            
    if (table == null) {
                table 
    = params.getProperty(PersistentIdentifierGenerator.TABLE);
            }

            
    //取出column參數
            String column = params.getProperty("column");

            
    if (column == null) {
                column 
    = params.getProperty(PersistentIdentifierGenerator.PK);
            }

            
    //表的sehcma參數
            String schema = params.getProperty(PersistentIdentifierGenerator.SCHEMA);

            returnClass 
    = type.getReturnedClass();

            
    //取出step參數
            String stepvalue = params.getProperty("step");

            
    if ((null != stepvalue) && !"".equals(stepvalue.trim())) {
                
    try {
                    step 
    = Integer.parseInt(stepvalue);
                } 
    catch (Exception e) {
                    log.error(e);
                }
            }

            
    //構造存儲在Map中的索引值的key name
            key = table + "_$_" + column;

            
    //根據參數構造取最大值的SQL
            sql = "select SEQ_COMPANY_ID.nextval from dual";

            
        }

        
    /**
         * 取指定SEQUENCE的值,不存在記錄返回0
         * 
    @return Sequence最大值
         * 
    @throws SQLException if sql error occurs.
         
    */
        
    private long getSeqValue() throws SQLException {
            
    long maxvalue = 0;

            PreparedStatement st 
    = connection.prepareStatement(sql);
            System.out.println(
    "============================================" + sql);
            ResultSet rs 
    = null;

            
    try {
                rs 
    = st.executeQuery();

                
    if (rs.next()) {
                    maxvalue 
    = rs.getLong(1);
                }

                sql 
    = null;
            } 
    finally {
                
    if (rs != null) {
                    rs.close();
                }

                st.close();
            }

            
    return maxvalue;
        }
        
        
    /**
         * 取指定表中id字段的最大值,不存在記錄返回0
         * 
    @return 最大值
         * 
    @throws SQLException if sql error occurs.
         
    */
        
    private long getMaxvalue() throws SQLException {
            
    long maxvalue = 0;

            PreparedStatement st 
    = connection.prepareStatement(sql);
            System.out.println(
    "============================================" + sql);
            ResultSet rs 
    = null;

            
    try {
                rs 
    = st.executeQuery();

                
    if (rs.next()) {
                    maxvalue 
    = rs.getLong(1);
                }

                sql 
    = null;
            } 
    finally {
                
    if (rs != null) {
                    rs.close();
                }

                st.close();
            }

            
    return maxvalue;
        }
    }

    Hibernate 配置文件

    <id name="userId" type="java.lang.String">
                
    <column name="USER_ID" />
                
    <generator class="com.xx.generator.DispNoGenerator" />
            
    </id>


    posted @ 2011-05-06 13:42 Kavin 閱讀(2134) | 評論 (0)編輯 收藏

         摘要: Normal 0 7.8 pt 0 2 false false false EN-US ZH-CN X-NONE ...  閱讀全文

    posted @ 2011-05-05 12:33 Kavin 閱讀(2378) | 評論 (0)編輯 收藏

     

    Description:.

    To bring up System Properties:

    1.       Click Start and then Control Panel. From the Control Panel, double click System.

    2.        Another way to bring up this box is to right click the My Computer on your desktop. From the menu, select Properties.

    Solution:

    1.       參考http://www.passcape.com/windows_run_commands

    除了這兩種方式外,還有一種直接運行system32下面的命令文件方式

    運行C:"WINDOWS"system32 下面的sysdm.cpl

    posted @ 2011-04-19 11:40 Kavin 閱讀(262) | 評論 (0)編輯 收藏

     

    Description: @Override該標記是為了增強程序在編譯時候的檢查,JDK1.5下,如果該方法并不是一個覆蓋父類的方法,在編譯時編譯器就會報告錯誤。

    Analisys:

     

     1public class A {
     2 public void method(int i) {
     3 }

     4}

     5
     6public class B extends A {
     7 @Override
     8 public void method(int i) {
     9 }

    10
    11//如果如下定義,就會在編譯時出現一個錯誤,因為不是覆蓋父類的方法
    12@Override
    13 public void method(int i, String p_Str) {
    14 }

    15
    16}

    17


    JDK1.6正常,支持對接口的實現的@Override

     1public interface iA {
     2
     3 public void method(int i) {
     4
     5 }

     6
     7}

     8
     9public class B implements iA {
    10
    11 //JDK1.5下會報錯,JDK1.6下可以
    12
    13 @Override
    14
    15 public void method(int i, int j) {
    16
    17 }

    18
    19}

    20

    posted @ 2011-04-18 17:32 Kavin 閱讀(817) | 評論 (0)編輯 收藏

     

    Description:
    Incompatible JVM- Version 1.4.2_03 of the JVM is not suitable for th is product. Version:1.5 or greater is required.



    Analisys:

    安裝Oracle Client 9/10, Path 被設置為Oracle自帶的JDK 1.4, 啟動高版本Eclipse(eclipse-jee-helios-SR1-win32.exe), 就默認用Oracle自帶的JDK 1.4,這樣就會有問題。

    Solution:

    多種解決方案

    1.       修改環境變量: Path = %JAVA_HOME%"bin;%PATH% 
    權限的問題,我沒有選擇這個解決方案。

    2.       修改Eclipse啟動項:修改Eclipse快捷方式的屬性里面的目標: 
    D:"tool"eclipse-jee-helios-SR1-win32"eclipse"eclipse.exe -vm "C:"Program Files"Java"jdk1.5.0_05"bin"javaw.exe"

    posted @ 2011-04-15 09:53 Kavin 閱讀(466) | 評論 (0)編輯 收藏

     

    代碼:
    Class XX implements InterfaceYY{
        @override
        function funcXX(){
        }
    }

    Eclipse報錯:   must override a superclass implements

    Analisys:
    1. @override 可以針對 Interface; 不過最好用另外一個annotation: @implement
    2. java5 java6 支持泛型
    3. eclipse 里面的compile版本是JDK 5

    Solution:
    eclipse 里面的compile版本是JDK 5 -> 改成 JDK6

    posted @ 2011-04-07 14:30 Kavin 閱讀(724) | 評論 (0)編輯 收藏

     

    There is one problem with the Tag of "<tablib>" , when creating struts web project.. The error prompt as "cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'"

    <web-app>

      .....

     <taglib>
         <taglib-uri>/tags/struts-tiles</taglib-uri>
         <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
       </taglib>
    </web-app>

     

    Solution: Surround a tag of "jsp-config" :

    </web-app>

    ...

      <jsp-config>
       <taglib>
         <taglib-uri>/tags/struts-tiles</taglib-uri>
         <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
       </taglib>
      </jsp-config>
     
    </web-app>

    posted @ 2010-04-28 15:16 Kavin 閱讀(358) | 評論 (0)編輯 收藏

        比如查看spring.jar 中的Spring版本:
    查看 spring.jar\META-INF\MANIFEST.MF
    Manifest-Version: 1.0
    Export-Package: org.springframework.orm.jpa;uses:="org.apache.commons.
     logging,org.aopalliance.intercept,org.springframework.beans,org.sprin
     gframework.dao.support,org.springframework.instrument.classloading,ja
     vax.persistence,...

    Spring-Version: 2.5.4
    Implementation-Title: Spring Framework
    Implementation-Version: 2.5.4
    Tool: Bnd-0.0.208

    ...

    這里的2.5.4就是這個spring的版本。

    posted @ 2010-04-21 17:51 Kavin 閱讀(2966) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 91香焦国产线观看看免费| 大地资源免费更新在线播放| 亚洲AV永久无码精品成人| 中文字幕亚洲免费无线观看日本| 亚洲日日做天天做日日谢| 国产一区二区三区无码免费| 精品视频一区二区三区免费| 亚洲欧美日韩国产成人| 亚洲日韩乱码中文无码蜜桃臀网站 | 久久一本岛在免费线观看2020| 亚洲国产精品嫩草影院在线观看| 91精品视频免费| 午夜不卡AV免费| 久久精品国产99国产精品亚洲| 国产精品亚洲视频| 午夜电影免费观看| 999久久久免费精品播放| 黄网站色视频免费观看45分钟| 亚洲av色影在线| 亚洲国产精品不卡毛片a在线| 免费精品无码AV片在线观看 | 色影音免费色资源| 国产成人无码精品久久久免费| ASS亚洲熟妇毛茸茸PICS| 国产成人精品日本亚洲语音| 亚洲中文字幕在线第六区| 69av免费视频| a成人毛片免费观看| 豆国产96在线|亚洲| 亚洲精品福利网泷泽萝拉| 久久亚洲欧洲国产综合| 两个人日本免费完整版在线观看1| 国产亚洲精品自在线观看| 亚洲成人免费网址| 免费无码婬片aaa直播表情| 亚洲AV无码成人网站久久精品大 | 97国产免费全部免费观看| 色九月亚洲综合网| 老司机亚洲精品影院| 国产免费AV片无码永久免费| 香蕉成人免费看片视频app下载|