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

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

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

    隨筆 - 7  文章 - 3  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    /**
     * 數(shù)字轉(zhuǎn)換為大寫人民幣計(jì)數(shù)
     * @author 王代軍
     * @since Dec 16,2011
     */

    public class Num2Rmb
    {
        private String[] hanArr = {"零" , "壹" , "貳" , "叁" , "肆" ,
            "伍" , "陸" , "柒" , "捌" , "玖"};
        private String[] unitArr = {"拾","百","千","萬(wàn)"};

        /**
         * 把一個(gè)四位的數(shù)字字符串變成漢字字符串
         * @param numStr 需要被轉(zhuǎn)換的四位的數(shù)字字符串
         * @return 四位的數(shù)字字符串被轉(zhuǎn)換成的漢字字符串。
         */
        private String toHanStr(String numStr)
        {
            String result = "";
            int numLen = numStr.length();
            //依次遍歷數(shù)字字符串的每一位數(shù)字
            for (int i = 0 ; i < numLen ; i++ )
            {
                //把char型數(shù)字轉(zhuǎn)換成的int型數(shù)字,因?yàn)樗鼈兊腁SCII碼值恰好相差48
                //因此把char型數(shù)字減去48得到int型數(shù)字,例如'4'被轉(zhuǎn)換成4。
                int num = numStr.charAt(i) - 48;
                //如果不是最后一位數(shù)字,而且數(shù)字不是零,則需要添加單位(千、百、十)
                if ( i != numLen - 1 && num != 0)
                {
                    result += hanArr[num] + unitArr[numLen - 2 - i];
                }
                //否則不要添加單位
                else
                {
                    
                    //上一個(gè)數(shù)是否為“零”,不為“零”時(shí)就添加
                    if(result.length()>0 && hanArr[num].equals("零") && result.charAt(result.length()-1)=='零')
                        continue;
                    result += hanArr[num];
                }
            }
            //只有個(gè)位數(shù),直接返回
            if(result.length()==1)
                return result;
            
            int index=result.length()-1;
            while(result.charAt(index)=='零'){
                index--;
            }
            if(index!=result.length()-1)
                return result.substring(0,index+1);
            else {
                return result;
            }
        }
        /**
         * 把一個(gè)輸入的數(shù)字字符串變成漢字字符串
         * @param numStr 需要被轉(zhuǎn)換得到數(shù)字字符串
         * @return 數(shù)字字符串被轉(zhuǎn)換成的漢字RMB字符串。
         */
        private String toRmbStr(String numStr){
            //獲取字符串長(zhǎng)度
            int numLen = numStr.length();
            //判斷長(zhǎng)度小于4(一萬(wàn)以內(nèi)~0-9999) 調(diào)用toHanStr();
            if(numLen<=4){
                return toHanStr(numStr);
            }
            //4<長(zhǎng)度<=8 (一億以內(nèi) 1000-99999999)
            else if(numLen>4&&numLen<=8){
                String[] subArr={numStr.substring(0, numLen-4),numStr.substring(numLen-4, numLen)};
                return toHanStr(subArr[0])+"萬(wàn)"+toHanStr(subArr[1]);
            }
            //8<長(zhǎng)度<=10 (百億以內(nèi) 一億-9999999999)
            else if(numLen>8&&numLen<=10){
                String[] subArr={numStr.substring(0,numLen-8),numStr.substring(numLen-8,numLen-4),numStr.substring(numLen-4,numLen)};
                return toHanStr(subArr[0])+"億"+toHanStr(subArr[1])+"萬(wàn)"+toHanStr(subArr[2]);
            }
            else return "輸入有誤!";    
        }          
        public static void main(String[] args)
        {        
            Num2Rmb nr = new Num2Rmb();
            System.out.println("只支持整數(shù)(0~99億)");
            //測(cè)試把一個(gè)四位的數(shù)字字符串變成漢字字符串
            System.out.println(nr.toRmbStr("1"));
            System.out.println(nr.toRmbStr("10"));
            System.out.println(nr.toRmbStr("15"));
            System.out.println(nr.toRmbStr("110"));
            System.out.println(nr.toRmbStr("123"));
            System.out.println(nr.toRmbStr("105"));
            System.out.println(nr.toRmbStr("1000"));
            System.out.println(nr.toRmbStr("1101"));
            System.out.println(nr.toRmbStr("1110"));
            System.out.println(nr.toRmbStr("1005"));
            System.out.println(nr.toRmbStr("101105"));
            System.out.println(nr.toRmbStr("1011109"));
            System.out.println(nr.toRmbStr("9999999999"));
        }
    }

    posted @ 2011-12-26 13:26 Tomas 閱讀(564) | 評(píng)論 (0)編輯 收藏
    通用的增刪該查工具類  可在dao層 new一個(gè)
    CommonCrudUtil(本類)實(shí)例  實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪改查




    package com.XXXXX.util;

    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
    import org.hibernate.*;
    /**
     * 通用增刪改查工具類
     * @author 王代軍
     * @since Dec 19,2011
     * @version 1.0
     */
    @SuppressWarnings("unchecked")
    public class CommonCrudUtil<T> {
        /**
         * 添加功能
         * @param obj 要保存的對(duì)象
         */
        public boolean create(Object obj){
            Session session=HibernateSessionFactory.getSession();
            Transaction tx=null;
            boolean flag=false;
            try{
                tx=session.beginTransaction();
                session.persist(obj);
                tx.commit();
                flag=true;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){        
                    tx.rollback();
                }
            }finally{
                session.close();
            }    
            return flag;
        }
        /**
         * 查詢功能
         * @param clazz 要查詢對(duì)象的類型  obj 要查詢的對(duì)象的 可序列化的字段 (本設(shè)計(jì)指主鍵 id)
         */
        public Object retrieve(Class clazz,Object obj){
            Session session=HibernateSessionFactory.getSession();
            Transaction tx=null;
            try{
                tx=session.beginTransaction();
                Object object=session.get(clazz,(Serializable) obj);
                tx.commit();
                return object;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){        
                    tx.rollback();
                }
                return null;
            }finally{
                session.close();
            }        
        }    
        /**
         * 查詢?nèi)抗δ?br />     * @param clazz 要查詢的對(duì)象的類型
         */
        public List<T> retrieve(Class clazz){
            Session session=HibernateSessionFactory.getSession();
            List<T> list=new ArrayList<T>();
            Transaction tx=null;
            try{
                tx=session.beginTransaction();
                Criteria cr=session.createCriteria(clazz);
                list=cr.list();
                tx.commit();
                return list;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){            
                    tx.rollback();
                }
                return null;
            }finally{
                session.close();
            }
        }
        /**
         * 更新功能
         * @param obj 要更新的對(duì)象
         */
        public boolean update(Object obj){
            Session session=HibernateSessionFactory.getSession();
            boolean flag=false;
            Transaction tx=null;
            try{
                tx=session.beginTransaction();
                session.update(obj);
                tx.commit();
                flag=true;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){            
                    tx.rollback();
                }
            }finally{
                session.close();
            }
            return flag;
        }
        /**
         * 刪除功能
         * @param clazz 要?jiǎng)h除的對(duì)象的類型 obj 要?jiǎng)h除的對(duì)象的 唯一標(biāo)識(shí)(可序列化)字段 (指主鍵 id)
         */
        public boolean delete(Class clazz,Object obj){
            Session session=HibernateSessionFactory.getSession();
            Transaction tx=null;
            boolean flag=false;
            try{
                tx=session.beginTransaction();
                Object object=session.get(clazz,(Serializable) obj);
                session.delete(object);
                tx.commit();
                flag=true;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){        
                    tx.rollback();
                }
            }finally{
                session.close();
            }    
            return flag;
        }
        
    }



    調(diào)用實(shí)現(xiàn)   dao層的實(shí)現(xiàn)類調(diào)用 
       CommonCrudUtil  的方法實(shí)現(xiàn)增刪改查

    import java.util.Date;
    import java.util.List;

    import org.hibernate.Query;
    import com.zhongyou.bean.IDCard;
    import com.zhongyou.util.CommonCrudUtil;

    public class IDCardDaoImpl implements IDCardDaoIf {

        
         CommonCrudUtil crud=new CommonCrudUtil<IDCard>();
       
         public int addInformation(IDCard card) {

         IDCard card=new IDCard();
         card.setId(16);
         card.setName("xiaoxiao");
         card.setAddress("xiaoxiao");
         card.setBirthday(new Date());
         card.setNumber("29472398734");
         card.setSex("男");


         crud.create(card);//增加.......

    }
     
         。。。。。。查詢。。。。。
         crud.retrieve(IDCard.class,3);
        。。。。。。查詢?nèi)俊!!!!?br />
         crud.retrieve(IDCard.class);

        。。。。。。修改。。。。
         crud.update(card);
        。。。。。。刪除。。。。
         crud.delete(IDCard.class,3);
    。。。。。。。。。



    寫的簡(jiǎn)陋些  只是些想法可借鑒而已 同志們 可以自己完善。。。。




    posted @ 2011-12-26 13:22 Tomas 閱讀(2006) | 評(píng)論 (1)編輯 收藏
         摘要: 首先我們需要一個(gè)被加載的js文件,我在一個(gè)固定文件夾下創(chuàng)建了一個(gè)package.js,打開(kāi)后在里面寫一個(gè)方法functionOne,很簡(jiǎn)單,代碼如下:function functionOne(){ alert("成功加載"); }后面的html文件都創(chuàng)建在同一個(gè)目錄下。方法一:直接document.write在同一個(gè)文件夾下面創(chuàng)建一個(gè)function1.html,代碼如下:<ht...  閱讀全文
    posted @ 2013-06-01 09:19 Tomas 閱讀(395) | 評(píng)論 (0)編輯 收藏


    多文件上傳 jquery的插件
    使用的方法  導(dǎo)入 jquery.js 及 jquery.MultiFile.js ,
    方式一: 后臺(tái)是文件數(shù)組  
     private File[] upload; // 與jsp表單中的名稱對(duì)應(yīng)
     private String[] uploadFileName;
     private String[] uploadContentType;
    在 form 中加入 <input type="file" name="upload[]" class="multi" /> 即可。

    方式二:后臺(tái)是List<File>
     private List<File> upload; // 與jsp表單中的名稱對(duì)應(yīng)
     private List<String> uploadFileName;
     private List<String> uploadContentType;

    jquery.MultiFile.js  將選中的文件列在From中,名字為upload的<input>,所以要用 name="upload[]"(方法一)或者name="upload" (方法二) 來(lái)接收
    class="multi" 是 jQuery 用來(lái)作的文件類型,HTML 部份代碼如下:

    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
    <title>Untitled Document</title>
    <script src="/multiple-file-upload/jquery.js" type="text/javascript" language="javascript"></script>
    <script src="/multiple-file-upload/jquery.MultiFile.js" type="text/javascript" language="javascript"></script>

    </head>
    <body>

    <form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
    <input type="file" name="upload[]" class="multi" maxlength="2"/>
    //<input type="file" name="upload" class="multi" />

    <input type="submit" value="Upload File" />
    </form>

    </body>

    參數(shù)說(shuō)明:

    參數(shù) 說(shuō)明 說(shuō)明
    class="multi" maxlength="2" Limit: 2 files.
    Allowed extensions: any.
    限制數(shù)量2
    class="multi" accept="gif|jpg" Limit: no limit.
    Allowed extensions: gif and jpg.
    格式只能 gif  jpg
    class="multi" accept="gif|jpg" maxlength="3" Limit: 3 files
    Allowed extensions: gif, jpg.
    限制數(shù)量3,格式只能 gif  jpg


    主頁(yè):http://www.fyneworks.com/jquery/multiple-file-upload/

    下載:http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Download

    示例:http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Examples

    posted @ 2013-05-17 15:56 Tomas 閱讀(4183) | 評(píng)論 (2)編輯 收藏
    /**
     * 數(shù)字轉(zhuǎn)換為大寫人民幣計(jì)數(shù)
     * @author 王代軍
     * @since Dec 16,2011
     */

    public class Num2Rmb
    {
        private String[] hanArr = {"零" , "壹" , "貳" , "叁" , "肆" ,
            "伍" , "陸" , "柒" , "捌" , "玖"};
        private String[] unitArr = {"拾","百","千","萬(wàn)"};

        /**
         * 把一個(gè)四位的數(shù)字字符串變成漢字字符串
         * @param numStr 需要被轉(zhuǎn)換的四位的數(shù)字字符串
         * @return 四位的數(shù)字字符串被轉(zhuǎn)換成的漢字字符串。
         */
        private String toHanStr(String numStr)
        {
            String result = "";
            int numLen = numStr.length();
            //依次遍歷數(shù)字字符串的每一位數(shù)字
            for (int i = 0 ; i < numLen ; i++ )
            {
                //把char型數(shù)字轉(zhuǎn)換成的int型數(shù)字,因?yàn)樗鼈兊腁SCII碼值恰好相差48
                //因此把char型數(shù)字減去48得到int型數(shù)字,例如'4'被轉(zhuǎn)換成4。
                int num = numStr.charAt(i) - 48;
                //如果不是最后一位數(shù)字,而且數(shù)字不是零,則需要添加單位(千、百、十)
                if ( i != numLen - 1 && num != 0)
                {
                    result += hanArr[num] + unitArr[numLen - 2 - i];
                }
                //否則不要添加單位
                else
                {
                    
                    //上一個(gè)數(shù)是否為“零”,不為“零”時(shí)就添加
                    if(result.length()>0 && hanArr[num].equals("零") && result.charAt(result.length()-1)=='零')
                        continue;
                    result += hanArr[num];
                }
            }
            //只有個(gè)位數(shù),直接返回
            if(result.length()==1)
                return result;
            
            int index=result.length()-1;
            while(result.charAt(index)=='零'){
                index--;
            }
            if(index!=result.length()-1)
                return result.substring(0,index+1);
            else {
                return result;
            }
        }
        /**
         * 把一個(gè)輸入的數(shù)字字符串變成漢字字符串
         * @param numStr 需要被轉(zhuǎn)換得到數(shù)字字符串
         * @return 數(shù)字字符串被轉(zhuǎn)換成的漢字RMB字符串。
         */
        private String toRmbStr(String numStr){
            //獲取字符串長(zhǎng)度
            int numLen = numStr.length();
            //判斷長(zhǎng)度小于4(一萬(wàn)以內(nèi)~0-9999) 調(diào)用toHanStr();
            if(numLen<=4){
                return toHanStr(numStr);
            }
            //4<長(zhǎng)度<=8 (一億以內(nèi) 1000-99999999)
            else if(numLen>4&&numLen<=8){
                String[] subArr={numStr.substring(0, numLen-4),numStr.substring(numLen-4, numLen)};
                return toHanStr(subArr[0])+"萬(wàn)"+toHanStr(subArr[1]);
            }
            //8<長(zhǎng)度<=10 (百億以內(nèi) 一億-9999999999)
            else if(numLen>8&&numLen<=10){
                String[] subArr={numStr.substring(0,numLen-8),numStr.substring(numLen-8,numLen-4),numStr.substring(numLen-4,numLen)};
                return toHanStr(subArr[0])+"億"+toHanStr(subArr[1])+"萬(wàn)"+toHanStr(subArr[2]);
            }
            else return "輸入有誤!";    
        }          
        public static void main(String[] args)
        {        
            Num2Rmb nr = new Num2Rmb();
            System.out.println("只支持整數(shù)(0~99億)");
            //測(cè)試把一個(gè)四位的數(shù)字字符串變成漢字字符串
            System.out.println(nr.toRmbStr("1"));
            System.out.println(nr.toRmbStr("10"));
            System.out.println(nr.toRmbStr("15"));
            System.out.println(nr.toRmbStr("110"));
            System.out.println(nr.toRmbStr("123"));
            System.out.println(nr.toRmbStr("105"));
            System.out.println(nr.toRmbStr("1000"));
            System.out.println(nr.toRmbStr("1101"));
            System.out.println(nr.toRmbStr("1110"));
            System.out.println(nr.toRmbStr("1005"));
            System.out.println(nr.toRmbStr("101105"));
            System.out.println(nr.toRmbStr("1011109"));
            System.out.println(nr.toRmbStr("9999999999"));
        }
    }

    posted @ 2011-12-26 13:26 Tomas 閱讀(564) | 評(píng)論 (0)編輯 收藏
    通用的增刪該查工具類  可在dao層 new一個(gè)
    CommonCrudUtil(本類)實(shí)例  實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪改查




    package com.XXXXX.util;

    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
    import org.hibernate.*;
    /**
     * 通用增刪改查工具類
     * @author 王代軍
     * @since Dec 19,2011
     * @version 1.0
     */
    @SuppressWarnings("unchecked")
    public class CommonCrudUtil<T> {
        /**
         * 添加功能
         * @param obj 要保存的對(duì)象
         */
        public boolean create(Object obj){
            Session session=HibernateSessionFactory.getSession();
            Transaction tx=null;
            boolean flag=false;
            try{
                tx=session.beginTransaction();
                session.persist(obj);
                tx.commit();
                flag=true;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){        
                    tx.rollback();
                }
            }finally{
                session.close();
            }    
            return flag;
        }
        /**
         * 查詢功能
         * @param clazz 要查詢對(duì)象的類型  obj 要查詢的對(duì)象的 可序列化的字段 (本設(shè)計(jì)指主鍵 id)
         */
        public Object retrieve(Class clazz,Object obj){
            Session session=HibernateSessionFactory.getSession();
            Transaction tx=null;
            try{
                tx=session.beginTransaction();
                Object object=session.get(clazz,(Serializable) obj);
                tx.commit();
                return object;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){        
                    tx.rollback();
                }
                return null;
            }finally{
                session.close();
            }        
        }    
        /**
         * 查詢?nèi)抗δ?br />     * @param clazz 要查詢的對(duì)象的類型
         */
        public List<T> retrieve(Class clazz){
            Session session=HibernateSessionFactory.getSession();
            List<T> list=new ArrayList<T>();
            Transaction tx=null;
            try{
                tx=session.beginTransaction();
                Criteria cr=session.createCriteria(clazz);
                list=cr.list();
                tx.commit();
                return list;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){            
                    tx.rollback();
                }
                return null;
            }finally{
                session.close();
            }
        }
        /**
         * 更新功能
         * @param obj 要更新的對(duì)象
         */
        public boolean update(Object obj){
            Session session=HibernateSessionFactory.getSession();
            boolean flag=false;
            Transaction tx=null;
            try{
                tx=session.beginTransaction();
                session.update(obj);
                tx.commit();
                flag=true;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){            
                    tx.rollback();
                }
            }finally{
                session.close();
            }
            return flag;
        }
        /**
         * 刪除功能
         * @param clazz 要?jiǎng)h除的對(duì)象的類型 obj 要?jiǎng)h除的對(duì)象的 唯一標(biāo)識(shí)(可序列化)字段 (指主鍵 id)
         */
        public boolean delete(Class clazz,Object obj){
            Session session=HibernateSessionFactory.getSession();
            Transaction tx=null;
            boolean flag=false;
            try{
                tx=session.beginTransaction();
                Object object=session.get(clazz,(Serializable) obj);
                session.delete(object);
                tx.commit();
                flag=true;
            }catch(Exception e){
                e.printStackTrace();
                if(tx!=null){        
                    tx.rollback();
                }
            }finally{
                session.close();
            }    
            return flag;
        }
        
    }



    調(diào)用實(shí)現(xiàn)   dao層的實(shí)現(xiàn)類調(diào)用 
       CommonCrudUtil  的方法實(shí)現(xiàn)增刪改查

    import java.util.Date;
    import java.util.List;

    import org.hibernate.Query;
    import com.zhongyou.bean.IDCard;
    import com.zhongyou.util.CommonCrudUtil;

    public class IDCardDaoImpl implements IDCardDaoIf {

        
         CommonCrudUtil crud=new CommonCrudUtil<IDCard>();
       
         public int addInformation(IDCard card) {

         IDCard card=new IDCard();
         card.setId(16);
         card.setName("xiaoxiao");
         card.setAddress("xiaoxiao");
         card.setBirthday(new Date());
         card.setNumber("29472398734");
         card.setSex("男");


         crud.create(card);//增加.......

    }
     
         。。。。。。查詢。。。。。
         crud.retrieve(IDCard.class,3);
        。。。。。。查詢?nèi)俊!!!!?br />
         crud.retrieve(IDCard.class);

        。。。。。。修改。。。。
         crud.update(card);
        。。。。。。刪除。。。。
         crud.delete(IDCard.class,3);
    。。。。。。。。。



    寫的簡(jiǎn)陋些  只是些想法可借鑒而已 同志們 可以自己完善。。。。




    posted @ 2011-12-26 13:22 Tomas 閱讀(2006) | 評(píng)論 (1)編輯 收藏

    Oracle的默認(rèn)服務(wù)一共有5個(gè):

    1.OracleDBConsoleorcl oem控制臺(tái)的服務(wù)進(jìn)程

    2.OracleJobSchedulerORCL 定時(shí)器的服務(wù)進(jìn)程

    3.OracleOraDb10g_home1iSQL*Plus isql*plus的服務(wù)進(jìn)程

    4.OracleOraDb10g_home1TNSListener 監(jiān)聽(tīng)器的服務(wù)進(jìn)程


    5.OracleServiceORCL 數(shù)據(jù)庫(kù)服務(wù)進(jìn)程

    要查看系統(tǒng)中已啟動(dòng)的服務(wù),我們可以在“開(kāi)始→控制面板→管理工具”中雙擊“服務(wù)”,或者直接

    在“運(yùn)行”中輸入 “Services.msc”打開(kāi)服務(wù)設(shè)置對(duì)話框,就可以看到每一個(gè)服務(wù)都有以下幾個(gè)屬

    性:名稱、描述、狀態(tài)、啟動(dòng)類型、登錄身份、依存關(guān)系。

    OracleDBConsoleorcl --可以不啟動(dòng),用于管理Oracle的企業(yè)管理器的服務(wù).

    OracleJobSchedulerORCL --通常不啟動(dòng),用于定期操作任務(wù)的服務(wù)

    OracleOraDb10g_home1iSQL*Plus --可以不啟動(dòng),這是isqlplus服務(wù),用于用網(wǎng)頁(yè)執(zhí)行sql執(zhí)行,11g已

    經(jīng)取消了這個(gè)功能

    OracleOraDb10g_home1TNSListener --必須啟動(dòng),這是臨聽(tīng),用于遠(yuǎn)程客戶端連接你的Oracle

    OracleServiceORCL --必須啟動(dòng),這是Oracle數(shù)據(jù)庫(kù)的服務(wù)

    可以用命令啟動(dòng):

    #啟動(dòng)listener:

    lsnrctl start

    #啟動(dòng)數(shù)據(jù)庫(kù)

    net start OracleServiceORCL

    只有這兩項(xiàng)是必須啟動(dòng)的:

    OracleOraDb10g_home1TNSListener

    OracleServiceORCL

    為什么OracleJobSchedulerORCL會(huì)顯示禁用?

    數(shù)據(jù)庫(kù)工作日程調(diào)度,一般沒(méi)有安排工作日程就不需要啟動(dòng),為什么默認(rèn)是禁用?因?yàn)閱?dòng)后會(huì)占用很大的系統(tǒng)資源。

    (1)OracleServiceSID                    

    數(shù)據(jù)庫(kù)服務(wù),這個(gè)服務(wù)會(huì)自動(dòng)地啟動(dòng)和停止數(shù)據(jù)庫(kù)。如果安裝了一個(gè)數(shù)據(jù)庫(kù),它的缺省啟動(dòng)類型為自動(dòng)。服務(wù)進(jìn)程為Oracle.EXE,參數(shù)文件initSID.ora,日志文件SIDALRT.log,控制臺(tái)SVRMGRL.EXE、SQLPLUS.EXE。

    (2)OracleHOME_NAMETNSListener

    監(jiān)聽(tīng)器服務(wù),服務(wù)只有在數(shù)據(jù)庫(kù)需要遠(yuǎn)程訪問(wèn)時(shí)才需要(無(wú)論是通過(guò)另外一臺(tái)主機(jī)還是在本地通過(guò) SQL.Net 網(wǎng)絡(luò)協(xié)議都屬于遠(yuǎn)程訪問(wèn)),不用這個(gè)服務(wù)就可以訪問(wèn)本地?cái)?shù)據(jù)庫(kù),它的缺省啟動(dòng)類型為自動(dòng)。服務(wù)進(jìn)程為TNSLSNR.EXE,參數(shù)文件 Listener.ora,日志文件listener.log,控制臺(tái)LSNRCTL.EXE,默認(rèn)端口1521、1526。

    (3)OracleHOME_NAMEAgent

    OEM代理服務(wù),接收和響應(yīng)來(lái)自O(shè)EM控制臺(tái)的任務(wù)和事件請(qǐng)求,只有使用OEM管理數(shù)據(jù)庫(kù)時(shí)才需要,它的缺省啟動(dòng)類型為自動(dòng)。服務(wù)進(jìn)程為DBSNMP.EXE,參數(shù)文件snmp_rw.ora,日志文件nmi.log,控制臺(tái)LSNRCTL.EXE,默認(rèn)端口1748。

    (4)OracleHOME_NAMEClientCache      

    名字緩存服務(wù),服務(wù)緩存用于連接遠(yuǎn)程數(shù)據(jù)庫(kù)的Oracle Names 數(shù)據(jù)。它的缺省啟動(dòng)類型是手動(dòng)。然而,除非有一臺(tái)Oracle Names 服務(wù)器,否則沒(méi)有必要運(yùn)行這個(gè)服務(wù)。服務(wù)進(jìn)程為ONRSD.EXE,參數(shù)文件NAMES.ORA,日志文件ONRSD.LOG,控制臺(tái) NAMESCTL.EXE。

    (5)OracleHOME_NAMECMAdmin                    

    連接管理服務(wù),是構(gòu)建Connection Manager服務(wù)器所用,只有服務(wù)器作為Connection Manager才需要,它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程為CMADMIN.EXE,參數(shù)文件CMAN.ORA,日志文件CMADM_PID.TRC,控 制臺(tái)CMCTL.EXE,默認(rèn)端口1830。

    (6)OracleHOME_NAMECMan                    

    連接網(wǎng)關(guān)服務(wù),是構(gòu)建Connection Manager服務(wù)器所用,只有服務(wù)器作為Connection Manager才需要,它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程為CMGW.EXE,參數(shù)文件CMAN.ORA,日志文件CMAN_PID.TRC,控制臺(tái) CMCTL.EXE,默認(rèn)端口1630。

    (7)OracleHOME_NAMEDataGatherer

    性能包數(shù)據(jù)采集服務(wù),除非使用Oracle Capacity Planner 和 Oracle Performance Manager,否則不需要啟動(dòng),它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程為VPPDC.EXE,日志文件alert_dg.log,控制臺(tái) vppcntl.exe。

    (8)OracleHOME_NAMEHTTPServer

    Oracle提供的WEB服務(wù)器,一般情況下我們只用它來(lái)訪問(wèn)Oracle Apache 目錄下的Web 頁(yè)面,比如說(shuō)JSP 或者modplsql 頁(yè)面。除非你使用它作為你的HTTP服務(wù),否則不需要啟動(dòng)(若啟動(dòng)它會(huì)接管IIS的服務(wù)),它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程為APACHE.EXE,參 數(shù)文件httpd.conf,默認(rèn)端口80。

    (9)OracleHOME_NAMEPagingServer

    通過(guò)一個(gè)使用調(diào)制解調(diào)器的數(shù)字傳呼機(jī)或者電子郵件發(fā)出警告(沒(méi)試過(guò)),它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程PAGNTSRV.EXE,日志文件paging.log。

    (10)OracleHOME_NAMENames

    Oracle Names服務(wù),只有服務(wù)器作為Names Server才需要,它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程N(yùn)AMES.EXE,參數(shù)文件NAMES.ORA,日志文件NAMES.LOG,控制臺(tái)NAMESCTL.EXE,默認(rèn)端口1575。

    (11)OracleSNMPPeerMasterAgent

    SNMP服務(wù)代理,用于支持SNMP的網(wǎng)管軟件對(duì)服務(wù)器的管理,除非你使用網(wǎng)管工具監(jiān)控?cái)?shù)據(jù)庫(kù)的情況,否則不需要啟動(dòng),它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程為AGNTSVC.EXE,參數(shù)文件MASTER.CFG,默認(rèn)端口161。

    (12)OracleSNMPPeerEncapsulater

    SNMP協(xié)議封裝服務(wù),用于SNMP協(xié)議轉(zhuǎn)換,除非你使用一個(gè)不兼容的SNMP代理服務(wù),否則不需要啟動(dòng),它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程為ENCSVC.EXE,參數(shù)文件ENCAPS.CFG,默認(rèn)端口1161。

    (13)OracleHOME_NAMEManagementServer

    OEM管理服務(wù),使用OEM時(shí)需要,它的缺省啟動(dòng)類型是手動(dòng)。服務(wù)進(jìn)程為OMSNTSVR.EXE,日志文件oms.nohup。

    OracleServiceMYDB

    OracleOraHome92TNSListener

    別的一般不用開(kāi),有需要再開(kāi)






    附(批處理)

    :doit

      @echo off

      set /p xz=按"kq"鍵啟動(dòng)服務(wù)------按"gb"關(guān)閉服務(wù)

      if %xz%==kq goto kq

      if %xz%==gb goto gb

      goto doit

      :kq

      @echo off

      echo 正在啟動(dòng)oracle服務(wù),請(qǐng)稍等......

      net start OracleServiceORCL

      net start OracleDBConsoleorcl

      net start OracleOraDb10g_home1TNSListener

      net start OracleOraDb10g_home1iSQL*Plus

      echo 啟動(dòng)oracle服務(wù)完成

      echo. & pause

      goto doit

      :gb

      @echo off

      echo 正在關(guān)閉oracle服務(wù),請(qǐng)稍等.......

      net stop OracleServiceORCL

      net stop OracleDBConsoleorcl

      net stop OracleOraDb10g_home1TNSListener

      net stop OracleOraDb10g_home1iSQL*Plus

      echo 關(guān)閉oracle服務(wù)完成

      echo. & pause

      goto doit

    把代碼復(fù)制 保存  修改后綴名為.bat 執(zhí)行即可;

    posted @ 2011-11-09 11:50 Tomas 閱讀(162) | 評(píng)論 (0)編輯 收藏





    會(huì)話跟蹤,其原理是什么。

    我們都知道,為了在WEB服務(wù)器中識(shí)別發(fā)出請(qǐng)求的用戶,對(duì)于每一個(gè)訪問(wèn)者WEB服


    務(wù)器都會(huì)給其創(chuàng)建一個(gè)session。在會(huì)話的創(chuàng)建于使用中,比較容易犯錯(cuò)誤的地


    方主要是當(dāng)我們需要讀取出保存在session的數(shù)據(jù)時(shí),沒(méi)有轉(zhuǎn)化為相應(yīng)的格式,


    導(dǎo)致程序出錯(cuò)。比如:

    HttpSession session=request.getSession();


    |\\\\\\\\\\


    注意Session在為進(jìn)行HttpSession session=request.getSession();之前


    out.println(request.getSession());


    HttpSession hs=request.getSession();
    out.println(hs);
    兩者執(zhí)行的結(jié)果相同;


    第一個(gè)是獲得Tomcat內(nèi)置的默認(rèn)Session (就是會(huì)話建立時(shí)自動(dòng)生成的Session唯一標(biāo)記本次會(huì)話)


    第二次 是把 唯一的標(biāo)識(shí)Session 通過(guò)request.getSession()獲取內(nèi)存地址 給hs 然后hs


    會(huì)獲取Session 然后對(duì)其操作  其實(shí)本質(zhì)上是對(duì)本次會(huì)話的唯一Session進(jìn)行操作.


    \\\\\\\\\\\\\\

    String MyName="Hello Accp";

    session.setAttribute("name",MyName);

    String name=seeeion.getAttribute("name");//錯(cuò)誤的

    String name=(String)seeeion.getAttribute("name");//正確的

    由于WEB服務(wù)器為用戶創(chuàng)建的Session會(huì)占用系統(tǒng)內(nèi)存,所以通常服務(wù)器都需要及


    時(shí)的刪除Session信息以釋放資源,方法有:

    ①關(guān)閉瀏覽器,關(guān)閉Session。

    ②調(diào)用HttpSession的invalidate()方法,刪除HttpSession對(duì)象和數(shù)據(jù)。

    ③兩次訪問(wèn)時(shí)間間隔大于Session定義的非活動(dòng)時(shí)間。

    在Servlet中的HttpRequestServlet對(duì)象創(chuàng)建HttpSession對(duì)象有兩種方法:

    ①HttpSession session=request.getSession(boolean value);

    ②HttpSession session=request.getSession();

    第一中方法中,布爾值為true時(shí),如果存在于當(dāng)前請(qǐng)求相關(guān)聯(lián)的會(huì)話,就返回該


    會(huì)話,否則就返回一個(gè)新會(huì)話。反之,布爾值為false時(shí),如果存在當(dāng)前請(qǐng)求相


    關(guān)聯(lián)的會(huì)話,就返回該會(huì)話,否則就返回null。

    第二種方法與第一種方法的第一種情況相同。通常我們都喜歡使用第二種方法。

    posted @ 2011-10-16 21:29 Tomas 閱讀(237) | 評(píng)論 (0)編輯 收藏

     今天主要講解了一下知識(shí)點(diǎn):
      JavaBean、javaBean規(guī)范、javaBean的動(dòng)作、開(kāi)發(fā)模式

    先講一下javaBean的作用,以及我們?yōu)槭裁匆褂胘avabean?
     其實(shí)javabean的一個(gè)最主要的作用就是對(duì)數(shù)據(jù)進(jìn)行一個(gè)封裝,其次是增強(qiáng)代碼的復(fù)用性、結(jié)構(gòu)更清晰等。
    在換句話說(shuō)javabean他其實(shí)本身就是一個(gè)對(duì)象,之所以學(xué)習(xí)javabean的好處,就是讓我們像操作對(duì)象一樣進(jìn)行操作數(shù)據(jù)。讓代碼變得更靈活、更簡(jiǎn)單。

    舉個(gè)小小的例子:
     比如你做一個(gè)注冊(cè)功能。首先呢我們是需要獲取用戶界面的信息。然后在獲取進(jìn)來(lái)的數(shù)據(jù)傳給持久層,進(jìn)行持久的時(shí)候大家有沒(méi)有注意到,如果表單里面的數(shù)據(jù)少的話還可以,直接傳入?yún)?shù),而數(shù)據(jù)一旦超過(guò)10個(gè)數(shù)據(jù),那么你可以想象一個(gè)你傳入的參數(shù),那該是多么的一大串,所以我們采取javabean的方式,把從頁(yè)面上取來(lái)的信息把它存放到一個(gè)對(duì)象當(dāng)中,那么我們?cè)谶M(jìn)行持久化傳參的時(shí)候就只需要傳入一個(gè)對(duì)象就OK。 這就是javabean的好處之一。

    JavaBean規(guī)范:
     一個(gè)javabean由四部分組成:
      第一部分:javabean必須有一個(gè)無(wú)慘的構(gòu)造方法。
      第二部分:所有的屬性必須都是private的。
      第三部分:必須生成get/set方法。
      第四部分:必須實(shí)現(xiàn)序列化(Serializable)這個(gè)接口。

    下面我呢針對(duì)上面這些javabean的規(guī)范做一個(gè)解釋,以及為什么要定義這個(gè)規(guī)范?
     1:javabean為什么需要一個(gè)無(wú)慘的構(gòu)造方法呢?
    回答:這個(gè)無(wú)慘的構(gòu)造方法的作用主要是針對(duì)反射。為什么會(huì)針對(duì)反射呢?大家知道使用反射實(shí)例化一個(gè)類,是實(shí)例化該類的一個(gè)無(wú)慘的構(gòu)造方法。
     比如:
      如果他是一個(gè)無(wú)慘的構(gòu)造方法: Class.forName("com.lovo.User").newInstance.
      如果他沒(méi)有一個(gè)無(wú)慘的構(gòu)造方法:Class c = Class.forName("com.lovo.User");
            手動(dòng)實(shí)例化他所有的公共的構(gòu)造方法: Constructor[] con = c.getConstructors()

     2:javabean為什么所有的屬性都是private的呢,為什么不可以是public的?
    回答:private屬性增強(qiáng)javabean安全性。他們的區(qū)別就是如果他的屬性設(shè)置為public的話,我們可以任意的進(jìn)行訪問(wèn)或修改(沒(méi)有安全性)。而private屬性為什么要通過(guò)get/set去訪問(wèn)這就是下面馬上講到的。

     3:javaBean的get/set方法。
    回答:get/set方法也是增加代碼的安全性。比如我們可以讓外部只可以訪問(wèn)屬性不能修改屬性的話,那么我在這里只需要生成get方法就行了,無(wú)須生成set方法,而public就無(wú)法做到這一點(diǎn)。還有一個(gè)就是比如我們?cè)谠O(shè)置他的age的時(shí)候我們還可以進(jìn)行驗(yàn)證工作,比如如果你的age小于18,那么就直接跳出,不允許設(shè)置該屬性。這個(gè)功能也是很強(qiáng)大的。

    舉個(gè)小小列子:
     public void setAge(int age){
     //驗(yàn)證傳入進(jìn)來(lái)的age否大于18,如果小于就直接return,否則就添加到該對(duì)象的age屬性中。
      if(age<18){
       return; 
     }
     this.age = age;
    }

     4:實(shí)現(xiàn)serializable接口?
    回答:為了實(shí)現(xiàn)遠(yuǎn)程調(diào)用。比如我們要把該JavaBean從一個(gè)操作系統(tǒng)中傳輸?shù)搅硪慌_(tái)操作系統(tǒng),我們就只有采取實(shí)現(xiàn)該接口。

    JavaBean的動(dòng)作:
        <!-- 創(chuàng)建user對(duì)象 -->
     1: 創(chuàng)建動(dòng)作:  <jsp:useBean id="user" class="com.lovo.User" scope="request" />
        id:一個(gè)變量名。可以任意取。
        classs:指明變量的類型,也就是說(shuō)具體描述的一個(gè)對(duì)象。包名加類名
        scope:總用于范圍。 也就是說(shuō)在我們?cè)诓檎乙粋€(gè)屬性值的時(shí)候,首先是從他的一個(gè)作用域中去進(jìn)行查找,如果找到就直接把它輸出,否則創(chuàng)建一個(gè)新的(null)。

        <!-- 設(shè)置user對(duì)象中的userName屬性 單一屬性。。-->
     2:設(shè)置動(dòng)作:     <jsp:setProperty name="user" property="userName" value="222" param="123"/> 
         name:必須和創(chuàng)建動(dòng)作的id一樣。
         property:具體的某一個(gè)屬性值。
         value:設(shè)置該屬性的值。
         param:是將請(qǐng)求到的值附加到userName屬性中.
      
        <!-- 代表名字相同的自動(dòng)填充。 如:http://localhost:8080/Huang_JavaBean/index.jsp?userName=444&password=123-->
         <jsp:setProperty name="user" property="*"  /> 
         name:必須和創(chuàng)建動(dòng)作的id一樣。
         property:設(shè)置相同屬性名的值他會(huì)自動(dòng)填充。
        
     3:輸出動(dòng)作:
       
       <!-- 輸出信息 。 相似于 out.println(user.getuserName()) -->
       <jsp:getProperty name="user" property="userName" />
       <jsp:getProperty name="user" property = "password"/>
    開(kāi)發(fā)模式:
     為什么進(jìn)行分層的開(kāi)發(fā)?
      1:主要是為了并發(fā)性的開(kāi)發(fā)項(xiàng)目。比如:你做持久層,我做業(yè)務(wù)層
      2:可以獨(dú)立的測(cè)試,每一個(gè)方法。
      3:分層的開(kāi)發(fā)的好處還有一個(gè)就是一處代碼的改變不會(huì)影響到另一處代碼的改變。

    在這里說(shuō)一下servlet和jsp的一些缺陷.
     servlet的缺陷使web應(yīng)用程序開(kāi)發(fā)變得非常繁瑣且不利于分工協(xié)作。
     jsp頁(yè)面嚴(yán)重的缺乏代碼的可讀性而且沒(méi)有將頁(yè)面的表現(xiàn)和業(yè)務(wù)邏輯分開(kāi),使維護(hù)變得更加復(fù)雜。

    在這章講到了兩種開(kāi)發(fā)模式:
     模式一:JSP+JavaBean
     模式二:JSP+Servlet+JavaBean

    現(xiàn)在大多數(shù)情況下都不用模式一,所以我就解釋了。
    所謂的模式二就是現(xiàn)在比較流行的一個(gè)模式,也叫MVC模式。

    那么什么是MVC模式?

          M(model)模型層,即完成業(yè)務(wù)功能部分,也要完成持久功能。

          V(view)視圖層,用于客戶端進(jìn)行頁(yè)面展現(xiàn)的部分,一般是jsp和html。

          C(controller)控制層,轉(zhuǎn)么用于調(diào)用業(yè)務(wù)層,進(jìn)行邏輯判斷,看他跳入那個(gè)頁(yè)面。

    MVC的一個(gè)最大的好處是實(shí)現(xiàn)了良好的松散耦合。

      PO(persistentobject)持久化對(duì)象,它通常是在分析系統(tǒng)需求時(shí),外名詞或名詞短語(yǔ)中抽取出來(lái)(javaBan).

      DAO(datebase access  object)數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象,用于對(duì)象關(guān)系映射時(shí)或?qū)ο蟪志没庋b了所有的JDBC操作

      BO(business   Object)業(yè)務(wù)層對(duì)象,用于完成業(yè)務(wù)功能的類

      VO(value object)值對(duì)象,用于封裝各層次間要傳輸?shù)臄?shù)據(jù)

     

    posted @ 2011-10-10 23:18 Tomas 閱讀(512) | 評(píng)論 (0)編輯 收藏
    僅列出標(biāo)題  
    主站蜘蛛池模板: 亚洲乱码卡一卡二卡三| 中文字幕永久免费| 亚洲阿v天堂在线2017免费| 四虎永久成人免费| 亚洲成在人线av| 亚洲一区二区三区高清在线观看 | 免费网站观看WWW在线观看| 97人妻无码一区二区精品免费| 亚洲国产中文v高清在线观看| 亚洲综合色丁香麻豆| 免费无遮挡无遮羞在线看 | 亚洲a∨无码精品色午夜| www.亚洲日本| 国产在亚洲线视频观看| 波多野结衣免费在线观看| 免费人成网站在线高清| wwwxxx亚洲| 成人免费a级毛片| 亚洲av永久无码精品国产精品| 亚洲AV色欲色欲WWW| 99久久这里只精品国产免费| 久久亚洲精品中文字幕无码| 四虎影视永久在线精品免费| 小小影视日本动漫观看免费| 亚洲一区精彩视频| 一二三四视频在线观看中文版免费| 亚洲AV成人无码久久精品老人| gogo免费在线观看| 亚洲综合在线另类色区奇米| 一个人免费播放在线视频看片| 亚洲av麻豆aⅴ无码电影| 日本黄页网址在线看免费不卡| 国产a级特黄的片子视频免费| 337P日本欧洲亚洲大胆精品| 亚洲成a人片在线观看日本麻豆| 一区二区三区在线免费 | 亚洲精品WWW久久久久久| 三年片在线观看免费| 亚洲欧洲一区二区| 最近中文字幕免费mv视频7| 色窝窝亚洲av网|