隨筆 - 7  文章 - 3  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

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

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

              /**
               * 把一個(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){
                  //獲取字符串長度
                  int numLen = numStr.length();
                  //判斷長度小于4(一萬以內(nèi)~0-9999) 調(diào)用toHanStr();
                  if(numLen<=4){
                      return toHanStr(numStr);
                  }
                  //4<長度<=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])+"萬"+toHanStr(subArr[1]);
                  }
                  //8<長度<=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])+"萬"+toHanStr(subArr[2]);
                  }
                  else return "輸入有誤!";    
              }          
              public static void main(String[] args)
              {        
                  Num2Rmb nr = new Num2Rmb();
                  System.out.println("只支持整數(shù)(0~99億)");
                  //測試把一個(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 閱讀(569) | 評(píng)論 (0)編輯 收藏
          通用的增刪該查工具類  可在dao層 new一個(gè)
          CommonCrudUtil(本類)實(shí)例  實(shí)現(xiàn)對數(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 要保存的對象
               */
              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 要查詢對象的類型  obj 要查詢的對象的 可序列化的字段 (本設(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 要查詢的對象的類型
               */
              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 要更新的對象
               */
              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除的對象的類型 obj 要?jiǎng)h除的對象的 唯一標(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);
          。。。。。。。。。



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




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


          多文件上傳 jquery的插件
          使用的方法  導(dǎo)入 jquery.js 及 jquery.MultiFile.js ,
          方式一: 后臺(tái)是文件數(shù)組  
           private File[] upload; // 與jsp表單中的名稱對應(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表單中的名稱對應(yīng)
           private List<String> uploadFileName;
           private List<String> uploadContentType;

          jquery.MultiFile.js  將選中的文件列在From中,名字為upload的<input>,所以要用 name="upload[]"(方法一)或者name="upload" (方法二) 來接收;
          class="multi" 是 jQuery 用來作的文件類型,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ù)說明:

          參數(shù) 說明 說明
          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


          主頁: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 閱讀(4191) | 評(píng)論 (2)編輯 收藏
          /**
           * 數(shù)字轉(zhuǎn)換為大寫人民幣計(jì)數(shù)
           * @author 王代軍
           * @since Dec 16,2011
           */

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

              /**
               * 把一個(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){
                  //獲取字符串長度
                  int numLen = numStr.length();
                  //判斷長度小于4(一萬以內(nèi)~0-9999) 調(diào)用toHanStr();
                  if(numLen<=4){
                      return toHanStr(numStr);
                  }
                  //4<長度<=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])+"萬"+toHanStr(subArr[1]);
                  }
                  //8<長度<=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])+"萬"+toHanStr(subArr[2]);
                  }
                  else return "輸入有誤!";    
              }          
              public static void main(String[] args)
              {        
                  Num2Rmb nr = new Num2Rmb();
                  System.out.println("只支持整數(shù)(0~99億)");
                  //測試把一個(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 閱讀(569) | 評(píng)論 (0)編輯 收藏
          通用的增刪該查工具類  可在dao層 new一個(gè)
          CommonCrudUtil(本類)實(shí)例  實(shí)現(xiàn)對數(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 要保存的對象
               */
              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 要查詢對象的類型  obj 要查詢的對象的 可序列化的字段 (本設(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 要查詢的對象的類型
               */
              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 要更新的對象
               */
              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除的對象的類型 obj 要?jiǎng)h除的對象的 唯一標(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);
          。。。。。。。。。



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




          posted @ 2011-12-26 13:22 Tomas 閱讀(2011) | 評(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)聽器的服務(wù)進(jìn)程


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

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

          在“運(yùn)行”中輸入 “Services.msc”打開服務(wù)設(shè)置對話框,就可以看到每一個(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)頁執(zhí)行sql執(zhí)行,11g已

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

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

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

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

          #啟動(dòng)listener:

          lsnrctl start

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

          net start OracleServiceORCL

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

          OracleOraDb10g_home1TNSListener

          OracleServiceORCL

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

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

          (1)OracleServiceSID                    

          數(shù)據(jù)庫服務(wù),這個(gè)服務(wù)會(huì)自動(dòng)地啟動(dòng)和停止數(shù)據(jù)庫。如果安裝了一個(gè)數(shù)據(jù)庫,它的缺省啟動(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)聽器服務(wù),服務(wù)只有在數(shù)據(jù)庫需要遠(yuǎn)程訪問時(shí)才需要(無論是通過另外一臺(tái)主機(jī)還是在本地通過 SQL.Net 網(wǎng)絡(luò)協(xié)議都屬于遠(yuǎn)程訪問),不用這個(gè)服務(wù)就可以訪問本地?cái)?shù)據(jù)庫,它的缺省啟動(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)來自O(shè)EM控制臺(tái)的任務(wù)和事件請求,只有使用OEM管理數(shù)據(jù)庫時(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ù)庫的Oracle Names 數(shù)據(jù)。它的缺省啟動(dòng)類型是手動(dòng)。然而,除非有一臺(tái)Oracle Names 服務(wù)器,否則沒有必要運(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ù)器,一般情況下我們只用它來訪問Oracle Apache 目錄下的Web 頁面,比如說JSP 或者modplsql 頁面。除非你使用它作為你的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

          通過一個(gè)使用調(diào)制解調(diào)器的數(shù)字傳呼機(jī)或者電子郵件發(fā)出警告(沒試過),它的缺省啟動(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)管軟件對服務(wù)器的管理,除非你使用網(wǎng)管工具監(jiān)控?cái)?shù)據(jù)庫的情況,否則不需要啟動(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

          別的一般不用開,有需要再開






          附(批處理)

          :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ù),請稍等......

            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ù),請稍等.......

            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 閱讀(167) | 評(píng)論 (0)編輯 收藏





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

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


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


          方主要是當(dāng)我們需要讀取出保存在session的數(shù)據(jù)時(shí),沒有轉(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 通過request.getSession()獲取內(nèi)存地址 給hs 然后hs


          會(huì)獲取Session 然后對其操作  其實(shí)本質(zhì)上是對本次會(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對象和數(shù)據(jù)。

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

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

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

          ②HttpSession session=request.getSession();

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


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


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

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

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

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

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

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

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

          下面我呢針對上面這些javabean的規(guī)范做一個(gè)解釋,以及為什么要定義這個(gè)規(guī)范?
           1:javabean為什么需要一個(gè)無慘的構(gòu)造方法呢?
          回答:這個(gè)無慘的構(gòu)造方法的作用主要是針對反射。為什么會(huì)針對反射呢?大家知道使用反射實(shí)例化一個(gè)類,是實(shí)例化該類的一個(gè)無慘的構(gòu)造方法。
           比如:
            如果他是一個(gè)無慘的構(gòu)造方法: Class.forName("com.lovo.User").newInstance.
            如果他沒有一個(gè)無慘的構(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)行訪問或修改(沒有安全性)。而private屬性為什么要通過get/set去訪問這就是下面馬上講到的。

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

          舉個(gè)小小列子:
           public void setAge(int age){
           //驗(yàn)證傳入進(jìn)來的age否大于18,如果小于就直接return,否則就添加到該對象的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對象 -->
           1: 創(chuàng)建動(dòng)作:  <jsp:useBean id="user" class="com.lovo.User" scope="request" />
              id:一個(gè)變量名。可以任意取。
              classs:指明變量的類型,也就是說具體描述的一個(gè)對象。包名加類名
              scope:總用于范圍。 也就是說在我們在查找一個(gè)屬性值的時(shí)候,首先是從他的一個(gè)作用域中去進(jìn)行查找,如果找到就直接把它輸出,否則創(chuàng)建一個(gè)新的(null)。

              <!-- 設(shè)置user對象中的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:是將請求到的值附加到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"/>
          開發(fā)模式:
           為什么進(jìn)行分層的開發(fā)?
            1:主要是為了并發(fā)性的開發(fā)項(xiàng)目。比如:你做持久層,我做業(yè)務(wù)層
            2:可以獨(dú)立的測試,每一個(gè)方法。
            3:分層的開發(fā)的好處還有一個(gè)就是一處代碼的改變不會(huì)影響到另一處代碼的改變。

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

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

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

          那么什么是MVC模式?

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

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

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

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

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

            DAO(datebase access  object)數(shù)據(jù)庫訪問對象,用于對象關(guān)系映射時(shí)或?qū)ο蟪志没?,他封裝了所有的JDBC操作

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

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

           

          posted @ 2011-10-10 23:18 Tomas 閱讀(518) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  
          主站蜘蛛池模板: 磴口县| 错那县| 门源| 古蔺县| 化州市| 彭州市| 恭城| 昌黎县| 广丰县| 绩溪县| 留坝县| 平乡县| 依兰县| 五常市| 高邑县| 新闻| 宜兰县| 唐山市| 涞水县| 城市| 密云县| 百色市| 富锦市| 昌都县| 惠安县| 金昌市| 安宁市| 安丘市| 云龙县| 嘉定区| 长葛市| 天峻县| 阜阳市| 万州区| 资中县| 海丰县| 兴义市| 玉林市| 荣昌县| 高要市| 宜章县|