Rising Sun

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks

          #

          GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;  
          posted @ 2009-04-22 12:51 brock 閱讀(174) | 評論 (0)編輯 收藏

          http://blog.chinaunix.net/u/29134/showart_355336.html



          MYSQL在默認的情況下查詢是不區分大小寫的,例如:

          mysql> create table t1(
              -> name varchar(10));
          Query OK, 0 rows affected (0.09 sec)

          mysql> insert into t1 values('you'),('You'),('YOU');
          Query OK, 3 rows affected (0.05 sec)
          Records: 3  Duplicates: 0  Warnings: 0
          對這個表,缺省情況下,下面兩個查詢的結果是一樣的:


          mysql> select * from t1 where name = 'you';
          +------+
          | name |
          +------+
          | you  |
          | You  |
          | YOU  |
          +------+
          3 rows in set (0.00 sec)

          mysql> select * from t1 where name = 'YOU';
          +------+
          | name |
          +------+
          | you  |
          | You  |
          | YOU  |
          +------+
          3 rows in set (0.00 sec)

          如果想讓MYSQL知道你輸入的字母是大寫還是小寫的,修改表:

          mysql> alter table t1 change name name varchar(10) binary;
          Query OK, 3 rows affected (0.20 sec)
          Records: 3  Duplicates: 0  Warnings: 0


          mysql> select * from t1 where name = 'you';
          +------+
          | name |
          +------+
          | you  |
          +------+
          1 row in set (0.00 sec)

          mysql> select * from t1 where name = 'YOU';
          +------+
          | name |
          +------+
          | YOU  |
          +------+
          1 row in set (0.00 sec)

          如果你只是想在SQL語句中實現的話:

          mysql> select * from t1 where name = binary 'YOU';
          +------+
          | name |
          +------+
          | YOU  |
          +------+
          1 row in set (0.02 sec)

          mysql> select * from t1 where name = binary 'you';
          +------+
          | name |
          +------+
          | you  |
          +------+
          1 row in set (0.00 sec)

          如果不想這么麻煩而想服務一開啟就讓大小寫一致的話:
          可以修改my.ini或者my.cnf
          [mysqld]
           lower_case_table_names=1
          (0:區分;1:不區分)
          然后重啟MYSQL服務。

          mysql> show variables like '%case_table%';
          +------------------------+-------+
          | Variable_name          | Value |
          +------------------------+-------+
          | lower_case_table_names | 1     |
          +------------------------+-------+
          1 row in set (0.00 sec)

          注:WINDOWS系統不用修改,系統默認就是1
          LINUX 系統默認是0。因為LINUX下的腳本都是區分大小寫的。
          posted @ 2009-04-17 15:30 brock 閱讀(7361) | 評論 (1)編輯 收藏

          在使用MySQL-Front連接mysql的時候發生的這個錯誤

          ERROR 1130: Host 192.168.88.160 is not allowed to connect to this MySQL server

          更改 mysql 數據庫里的 user表里的 host項
          localhost改稱%

          mysql -u root -p

          mysql>use mysql;

          mysql>update user set host = '%'  where user ='root';

          mysql>flush privileges;

          mysql>select 'host','user' from user where user='root';

          現在就可以連接了! 

          權限

           GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' with grant option;

          posted @ 2009-04-13 16:52 brock 閱讀(4422) | 評論 (1)編輯 收藏

          簡介     在jsp頁面上經常遇到得到集合長度、字符長度、字符切取等應用需,在2.0以前這種需是許多程序員對JSTL及為不滿意的地方之一。為此在2.0 中添加了functions標簽,其提供對以上需求的支持。     使用方法     引用<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>函數說明:   函數 描述
          fn:contains(string, substring) 如果參數string中包含參數substring,返回true
          fn:containsIgnoreCase(string, substring) 如果參數string中包含參數substring(忽略大小寫),返回true
          fn:endsWith(string, suffix) 如果參數 string 以參數suffix結尾,返回true
          fn:escapeXml(string) 將有特殊意義的XML (和HTML)轉換為對應的XML character entity code,并返回
          fn:indexOf(string, substring) 返回參數substring在參數string中第一次出現的位置
          fn:join(array, separator) 將一個給定的數組array用給定的間隔符separator串在一起,組成一個新的字符串并返回。
          fn:length(item) 返回參數item中包含元素的數量。參數Item類型是數組、collection或者String。如果是String類型,返回值是String中的字符數。
          fn:replace(string, before, after) 返回一個String對象。用參數after字符串替換參數string中所有出現參數before字符串的地方,并返回替換后的結果
          fn:split(string, separator) 返回一個數組,以參數separator 為分割符分割參數string,分割后的每一部分就是數組的一個元素
          fn:startsWith(string, prefix) 如果參數string以參數prefix開頭,返回true
          fn:substring(string, begin, end) 返回參數string部分字符串, 從參數begin開始到參數end位置,包括end位置的字符
          fn:substringAfter(string, substring) 返回參數substring在參數string中后面的那一部分字符串
          fn:substringBefore(string, substring) 返回參數substring在參數string中前面的那一部分字符串
          fn:toLowerCase(string) 將參數string所有的字符變為小寫,并將其返回
          fn:toUpperCase(string) 將參數string所有的字符變為大寫,并將其返回
          fn:trim(string) 去除參數string 首尾的空格,并將其返回
          示例
          ${fn.substring(string,begin,end)}

          來一個我自己測試用的代碼

           

          <%@ page contentType="text/html;charset=gbk"%>
          <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
          <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
          <html>
          <head>
          <title>這個是 JSTL的    測試</title>
          </head>
          <body>
          <c:set var="str" value="stringStRiNg"/>
          <c:set var="t" value="tr"/>
          <c:out value="${str} = ${fn:length(str)}"/>
          <c:out value="${fn:toLowerCase(str)}"/>
          <c:out value="${fn:toUpperCase('   ')}"/>
          <c:out value="${fn:toUpperCase('AbCdEfg')}"/><br>
          <c:out value="${fn:substring('asdfefg',0,3)}"/><br>
          <c:out value="${fn:substringAfter('asdf','s')}"/><Br>
          <c:out value="${fn:substringBefore(str,'g')}"/><Br>
          <c:out value="${fn:trim(' sd dew e ')}"/><Br>

           

          <c:out value=" d sd dew e "/><Br>
          <c:out value="${fn:replace(str,'ing','IN')}"/><Br>
          </body>
          </html>

          posted @ 2008-11-20 10:08 brock 閱讀(371) | 評論 (0)編輯 收藏


          function delRepeat(arr){
           var len = arr.length;
           for(var i=len-1;i>=1;i--)
           {       
           if(arr[i-1] == arr[i])    
              {         
             arr.splice(i,1);//splice()方法的應用   
               } 
             }
           //return arr;
          }

          Array.prototype.delRepeat=function()
          {
          var tmpArr=[],rs=[],i,val;
          for(i=this.length;i>0;i--)
          {
          val = this[i-1];
          if(!tmpArr[val])
          {
          tmpArr[val]=1;
          }else
          {
          rs.push(val);
          this.splice(i-1,1);
          }
          }
          tmpArr = null;
          return rs;
          }

          兩個優點:
          1、預先將this[i-1]保存在變量val中,減少訪問次數。
          2、使用array.push方法,替換用變量保存數組長度的辦法。



          JavaScript splice() 方法
          返回 JavaScript Array 對象參考手冊
          定義和用法
          splice() 方法用于插入、刪除或替換數組的元素。

          語法
          arrayObject.splice(index,howmany,element1,..,elementX)參數 描述 
          index 必需。規定從何處添加
          /刪除元素。

          該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。
           
          howmany 必需。規定應該刪除多少元素。必須是數字,但可以是 
          "0"

          如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。
           
          element1 可選。規定要添加到數組的新元素。從 index 所指的下標處開始插入。 
          elementX 可選。可向數組添加若干元素。 

          返回值
          如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。

          說明
          splice() 方法可刪除從 index 處開始的零個或多個元素,并且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
          提示和注釋
          注釋:請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改。
          實例
          例子 
          1
          在本例中,我們將創建一個新數組,并向其添加一個元素:

          <script type="text/javascript">

          var arr = new Array(6)
          arr[
          0= "George"
          arr[
          1= "John"
          arr[
          2= "Thomas"
          arr[
          3= "James"
          arr[
          4= "Adrew"
          arr[
          5= "Martin"

          document.write(arr 
          + "<br />")
          arr.splice(
          2,0,"William")
          document.write(arr 
          + "<br />")

          </script>輸出:

          George,John,Thomas,James,Adrew,Martin
          George,John,William,Thomas,James,Adrew,Martin例子 
          2
          在本例中我們將刪除位于 index 
          2 的元素,并添加一個新元素來替代被刪除的元素:

          <script type="text/javascript">

          var arr = new Array(6)
          arr[
          0= "George"
          arr[
          1= "John"
          arr[
          2= "Thomas"
          arr[
          3= "James"
          arr[
          4= "Adrew"
          arr[
          5= "Martin"

          document.write(arr 
          + "<br />")
          arr.splice(
          2,1,"William")
          document.write(arr)

          </script>輸出:

          George,John,Thomas,James,Adrew,MartinGeorge,John,William,James,Adrew,Martin例子 
          3
          在本例中我們將刪除從 index 
          2 ("Thomas") 開始的三個元素,并添加一個新元素 ("William") 來替代被刪除的元素:

          <script type="text/javascript">

          var arr = new Array(6)
          arr[
          0= "George"
          arr[
          1= "John"
          arr[
          2= "Thomas"
          arr[
          3= "James"
          arr[
          4= "Adrew"
          arr[
          5= "Martin"

          document.write(arr 
          + "<br />")
          arr.splice(
          2,3,"William")
          document.write(arr)

          </script>輸出:

          George,John,Thomas,James,Adrew,MartinGeorge,John,William,MartinTIY
          splice() 
          如何使用 splice() 來更改數組。 
          posted @ 2008-11-19 20:00 brock 閱讀(321) | 評論 (0)編輯 收藏

            <HTML>  
            <HEAD>  
            <TITLE>   New   Document   </TITLE>  
            <script>  
            //判斷當前頁面是刷新還是關閉  
            function   a(){  
            if(event.clientX<=0&&   event.clientY   <   0){//>0是刷新,<=0是關閉當前頁  
                  alert("開新的");  
                                    openwin();  
                              }else{  
                  alert("不開新的");  
                              }  
            }  
            </script>  
            </HEAD>  
             
            <BODY   onUnload="a();">  
             
            </BODY>  
            </HTML>  
          posted @ 2008-11-19 16:36 brock 閱讀(368) | 評論 (0)編輯 收藏

          http://space.itpub.net/10707242/viewspace-136175
          posted @ 2008-10-16 10:31 brock 閱讀(143) | 評論 (0)編輯 收藏

          javascript 中文字符長度判斷

          if(srt.charCodeAt(i) > 255{
          //if(friendnick.charCodeAt(i) < 0x4E00 || friendnick.charCodeAt(i) > 0x9FA5) {
               charlen 
          +=2;
              }
          else{
              
               charlen 
          +=1;
              }

          java 中文字符長度判斷
           if(tempProperty.getBytes().length > cut*2 ){
                          
          if (tempProperty.length() >= (cut + 1)) {
                              
          byte [] src = tempProperty.getBytes();
                              
          byte [] dest = new byte[cut*2+2];
                              
          int flag = 0;
                              
          for(int j=0;j<src.length;j++){  
                                  
          if(j<= cut*2){
                                     
          // System.out.println(j);
                                      if(src[j]<0)
                                          flag
          ++;
                                      dest[j]
          = src[j];
                                  }

                              }

                            
                              
          if(flag % 2 !=0){
                                  dest[cut
          *2]= 0;
                              }

                              tempProperty 
          =  new String(dest).trim()+ ""
          這個代碼有問題  "sss順磾村厈士大夫"  tempProperty.getBytes() 其中一個數字不為負數
            修改過的代碼

           String s = "stss順磾村厈士大夫";
                  String badChar 
          ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                  badChar 
          += "abcdefghijklmnopqrstuvwxyz"
                  badChar 
          += "0123456789"
                  badChar 
          += " "+" ";//半角與全角空格 
                  badChar += ".`~!@#$%^&()-_=+]\\|:;\"\'<,>?/*";
                  String result = "";
                  
          int len = 0;
                      
          for(int i=0;i<s.length();i++)
                          
          char c = s.charAt(i);
                          
          if(badChar.indexOf(c)==-1){//如果是中文
                             result = result+c;
                             len 
          += 2;
                          }
          else{
                             result 
          =  result+c;
                             len 
          += 1;
                          }

                          
          if(len>=15break;
                      }
           
          posted @ 2008-10-14 09:22 brock 閱讀(644) | 評論 (0)編輯 收藏

          [Java]用OSCache進行緩存對象

          1、OSCache是什么?
               OSCache標記庫由OpenSymphony設計,它是一種開創性的緩存方案,它提供了在現有JSP頁面之內實現內存緩存的功能。OSCache是個一個被廣泛采用的高性能的J2EE緩存框架,OSCache還能應用于任何Java應用程序的普通的緩存解決方案。
          2、OSCache的特點
              (1) 緩存任何對象:你可以不受限制的緩存部分jsp頁面或HTTP請求,任何java對象都可以緩存。
              (2) 擁有全面的API:OSCache API允許你通過編程的方式來控制所有的OSCache特性。
              (3) 永久緩存:緩存能被配置寫入硬盤,因此允許在應用服務器的多次生命周期間緩存創建開銷昂貴的數據。
              (4) 支持集群:集群緩存數據能被單個的進行參數配置,不需要修改代碼。
              (5) 緩存過期:你可以有最大限度的控制緩存對象的過期,包括可插入式的刷新策略(如果默認性能不能滿足需要時)。
          3、OSCache的安裝與配置
              網上已經有一個不錯的使用教程:http://blog.csdn.net/ezerg/archive/2004/10/14/135769.aspx
          4、有關“用OSCache進行緩存對象”的研究
              這個是我今天要說的東西。網上對于OSCache緩存Web頁面很多說明和例子,但對于緩存對象方面說得不多,我就把自已寫得一些東西放出來,讓大家看一看是怎樣緩存對象的!
              我基于GeneralCacheAdministrator類來寫的BaseCache類
             
          1. package com.klstudio.cache;   
          2.   
          3. import java.util.Date;   
          4.   
          5. import com.opensymphony.oscache.base.NeedsRefreshException;   
          6. import com.opensymphony.oscache.general.GeneralCacheAdministrator;   
          7.   
          8. public class BaseCache extends GeneralCacheAdministrator {   
          9.     //過期時間(單位為秒);   
          10.     private int refreshPeriod;   
          11.     //關鍵字前綴字符;   
          12.     private String keyPrefix;   
          13.        
          14.     private static final long serialVersionUID = -4397192926052141162L;   
          15.        
          16.     public BaseCache(String keyPrefix,int refreshPeriod){   
          17.         super();   
          18.         this.keyPrefix = keyPrefix;   
          19.         this.refreshPeriod = refreshPeriod;   
          20.     }   
          21.     //添加被緩存的對象;   
          22.     public void put(String key,Object value){   
          23.         this.putInCache(this.keyPrefix+"_"+key,value);   
          24.     }   
          25.     //刪除被緩存的對象;   
          26.     public void remove(String key){   
          27.         this.flushEntry(this.keyPrefix+"_"+key);   
          28.     }   
          29.     //刪除所有被緩存的對象;   
          30.     public void removeAll(Date date){   
          31.         this.flushAll(date);   
          32.     }   
          33.        
          34.     public void removeAll(){   
          35.         this.flushAll();   
          36.     }   
          37.     //獲取被緩存的對象;   
          38.     public Object get(String key) throws Exception{   
          39.         try{   
          40.             return this.getFromCache(this.keyPrefix+"_"+key,this.refreshPeriod);   
          41.         } catch (NeedsRefreshException e) {   
          42.             this.cancelUpdate(this.keyPrefix+"_"+key);   
          43.             throw e;   
          44.         }   
          45.   
          46.     }   
          47.        
          48. }   
          49.   
          50.   

             通過CacheManager類來看怎樣緩存對象的,這個類中所用的News只是具體功能的類,我就不貼出來了,你可以自己寫一個!
             
          1. package com.klstudio;   
          2.   
          3. import com.klstudio.News;   
          4. import com.klstudio.cache.BaseCache;   
          5.   
          6. public class CacheManager {   
          7.        
          8.     private BaseCache newsCache;   
          9.   
          10.        
          11.     private static CacheManager instance;   
          12.     private static Object lock = new Object();   
          13.        
          14.     public CacheManager() {   
          15.         //這個根據配置文件來,初始BaseCache而已;   
          16.         newsCache = new BaseCache("news",1800);        
          17.     }   
          18.        
          19.     public static CacheManager getInstance(){   
          20.         if (instance == null){   
          21.             synchronized( lock ){   
          22.                 if (instance == null){   
          23.                     instance = new CacheManager();   
          24.                 }   
          25.             }   
          26.         }   
          27.         return instance;   
          28.     }   
          29.   
          30.     public void putNews(News news) {   
          31.         // TODO 自動生成方法存根   
          32.         newsCache.put(news.getID(),news);   
          33.     }   
          34.   
          35.     public void removeNews(String newsID) {   
          36.         // TODO 自動生成方法存根   
          37.         newsCache.remove(newsID);   
          38.     }   
          39.   
          40.     public News getNews(String newsID) {   
          41.         // TODO 自動生成方法存根   
          42.         try {   
          43.             return (News) newsCache.get(newsID);   
          44.         } catch (Exception e) {   
          45.             // TODO 自動生成 catch 塊   
          46.             System.out.println("getNews>>newsID["+newsID+"]>>"+e.getMessage());   
          47.             News news = new News(newsID);   
          48.             this.putNews(news);   
          49.             return news;   
          50.         }   
          51.     }   
          52.   
          53.     public void removeAllNews() {   
          54.         // TODO 自動生成方法存根   
          55.         newsCache.removeAll();   
          56.     }   
          57.   
          58. }   
          59.   
          posted @ 2008-09-09 10:39 brock 閱讀(688) | 評論 (0)編輯 收藏

          根據上面英文的意思,我認為:
          之前大量的符合jsp1.2標準的項目中用到了${***},比如${1+2},但本意就是想顯示${1+2},而不是3,所以應該有控制是否解析el表達式的選項,我覺得分為三個級別:

          1、設置整個應用服務器下的所有項目是否解析el表達式(控制所有項目)
          (這個我還沒找到在哪,但應該有)。

          2、設置整個項目使用el表達式,需要在web.xml中加上 (控制一個項目)
          <jsp-config>
          <jsp-property-group>
          <el-ignored>false</el-ignored>
          </jsp-property-group>
          </jsp-config>


          3、設置某個jsp頁面使用el表達式,需要在jsp頁面加上(控制單個頁面)
          <%@ page isELIgnored="false"%>

          你的應用服務器默認設為不解析el表達式了(我的tomcat5.0也是一樣),所以要用上面的方法修改,以在頁面/項目/應用服務器,級別解析el表達式。
          posted @ 2008-08-26 10:57 brock 閱讀(148) | 評論 (0)編輯 收藏

          僅列出標題
          共15頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 Last 
          主站蜘蛛池模板: 南川市| 津南区| 金湖县| 旺苍县| 牡丹江市| 蓬安县| 塔河县| 启东市| 建始县| 旺苍县| 边坝县| 福贡县| 大英县| 会同县| 中江县| 石门县| 莆田市| 漠河县| 栾城县| 泸州市| 恭城| 仁寿县| 济南市| 报价| 玉树县| 信丰县| 龙州县| 盖州市| 城步| 原阳县| 延边| 巨鹿县| 南陵县| 金沙县| 贵南县| 达尔| 保德县| 镇坪县| 定西市| 娄烦县| 扬州市|