2008年5月23日 星期五

[SQL] 變更 Table 中的欄位設定

<新增一個欄位>
ALTER TABLE `{table_name}` ADD `{new_column_name}` {new_column_type} CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;

EX:
ALTER TABLE `User` ADD `name` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;

EX:
ALTER TABLE `User` ADD `name` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '' COMMENT '姓名' ;


<修改已經存在的欄位>
ALTER TABLE `{table_name}` CHANGE `{column_name_original}` `{column_name_modified}` {column_type} CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '{default_value}'

EX:
ALTER TABLE `User` CHANGE `name` `name` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT ' '

2008年5月8日 星期四

[Javascript] 在 .js 檔案中呼叫另一個 .js檔案中的 function

如果要在 A.js 檔案中使用到 B.js檔案中的 function,
可以在 A.js 檔案中的最後一行加上:

document.write('');

ps. 試過放在 第一行會出現奇怪的問題,而加在最後一行就沒問題了。

2008年5月2日 星期五

[Javascript] 偵測按下Enter 鍵

function enterKeyDown(){
if(event.keyCode==13){
alert("按下 Enter 鍵");
}
}

2008年4月30日 星期三

[Javascript] 檢查 email 格式

function validateEmail(email) {
regularExpression = /^[^\s]+@[^\s]+\.[^\s]{2,3}$/;
if (regularExpression.test(email)) {
return true;
}else{
return false;
}
}

[Javascript] 檢查身份證號碼

//檢查身份證號 0為正確的
function ID_Check(str) {
str = str.toUpperCase();
if(str.length!=10) {
return -1;
}
var list = str.split("");
var x1=0;
var x2=0;
switch(list[0]) {
case 'A': x1=1; x2=0; break;
case 'B': x1=1; x2=1; break;
case 'C': x1=1; x2=2; break;
case 'D': x1=1; x2=3; break;
case 'E': x1=1; x2=4; break;
case 'F': x1=1; x2=5; break;
case 'G': x1=1; x2=6; break;
case 'H': x1=1; x2=7; break;
case 'I': x1=3; x2=4; break;
case 'J': x1=1; x2=8; break;
case 'K': x1=1; x2=9; break;
case 'L': x1=2; x2=0; break;
case 'M': x1=2; x2=1; break;
case 'N': x1=2; x2=2; break;
case 'O': x1=3; x2=5; break;
case 'P': x1=2; x2=3; break;
case 'Q': x1=2; x2=4; break;
case 'R': x1=2; x2=5; break;
case 'S': x1=2; x2=6; break;
case 'T': x1=2; x2=7; break;
case 'U': x1=2; x2=8; break;
case 'V': x1=2; x2=9; break;
case 'W': x1=3; x2=2; break;
case 'X': x1=3; x2=0; break;
case 'Y': x1=3; x2=1; break;
case 'Z': x1=3; x2=3; break;
default: return -1;
}
for(var i=1; i<10; ++i) {
list[i] = parseInt(list[i]);
}
var checkCode = x1 + x2*9 + list[1]*8 + list[2]*7 + list[3]*6 + list[4]*5 + list[5]*4 + list[6]*3 + list[7]*2 + list[8] + list[9];
var chk = checkCode.toString().substring(checkCode.toString().length-1,checkCode.toString().length);
return chk;
}

2008年4月24日 星期四

[Java] Regular Expression 檢查範例

/** * 驗證輸入字串的格式
* regPattern: 檢驗的格式 (Regular Expression)
* strForTest: 要被檢驗的字串
* @param String
* @param String
* @author lupin
* */
public boolean validateInput(String strPattern, String strForTest){
boolean isMatch = strForTest.matches(strPattern);
return isMatch;
}

/**
* 檢查字串是否為數字
* @param String
* @author lupin
* */
public static boolean validateNumber(String strForTest){
return validateInput("^[0-9]*$" , strForTest);
}

/**
* 檢查字串是否為 Email格式
* @param String
* @author lupin
* */
public static boolean validateMail(String strForTest){
return validateInput("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$", strForTest);
}

2008年4月23日 星期三

[Java] 取得現在的時間 (如:2008/04/24 11:38:23)

/**
* 事前準備:import java.util.Date; import java.text.SimpleDateFormat;
* 主要是要存入 datebase 欄位格式為datetime的欄位
*/
public String getDateTime(){
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
Date date = new Date();
String strDate = sdFormat.format(date);
System.out.println(strDate);
return strDate;
}

[Java] 取得現在的時間 (如:2008年4月23日15時9分)

/**
* 事前動作:import java.util.Calendar;
* 回傳格式如:2008年4月23日15時9分
*
*/

public String getTime(){

Calendar currentTime = Calendar.getInstance();

StringBuffer sb = new StringBuffer();

sb.append(currentTime.get(Calendar.YEAR)).append(" 年 ");

sb.append(currentTime.get(Calendar.MONTH)+1).append(" 月 "); //沒有補0的月份

sb.append(currentTime.get(Calendar.DAY_OF_MONTH)).append(" 日 ");

sb.append(currentTime.get(Calendar.HOUR_OF_DAY)).append(" 時 ");

sb.append(currentTime.get(Calendar.MINUTE)).append(" 分 ");

return sb.toString();

}

2008年4月22日 星期二

[Javascript] 檢查輸入的字串是否為數字

/* Function 1 : using Regular Expression*/
function isNumber(val){
var reg = /^[0-9]*$/;
return reg.test(val);
}

/* Function 2 : */
/* check a string is 'digit' string or not */
function checkdigitString(s){
var i;
for (i=0 ; i if (!myisDigit(s.charAt(i))) {
return false;
}
} return true;
}

2008年3月31日 星期一

[Java] 亂數密碼產生器

public class CreatePassWord{
public static void main(String args[]){
//產生亂數密碼
int[] word = new int[8];
int mod;
for(int i = 0; i < 8; i++){
mod = (int)((Math.random()*7)%3);
if(mod ==1){ //數字
word[i]=(int)((Math.random()*10) + 48);
}else if(mod ==2){ //大寫英文
word[i] = (char)((Math.random()*26) + 65);
}else{ //小寫英文
word[i] = (char)((Math.random()*26) + 97);
}
}
StringBuffer newPassword = new StringBuffer();
for(int j = 0; j < 8; j++){
newPassword.append((char)word[j]);
}
System.out.println(newPassword);
}
}

2008年3月28日 星期五

[SQL] 基本 SQL 語法

1. SELECT
基礎:
SELECT * FROM {表格名}


2. INSERT INTO
基礎:
INSERT INTO {表格名} ( 欄位一, 欄位二, 欄位三 )
VALUES ( '{欄位一的值}', '{欄位二的值}', '{欄位三的值}' )

一階:
INSERT INTO {表格名} ( 欄位一, 欄位二, 欄位三 )
SELECT xxx1 AS 欄位一, xxx2 AS 欄位二, xxx3 AS 欄位三 FROM {表格名二}

3. UPDATE

UPDATE {表格名}
SET
{欄位一} = {欄位一的值},

{欄位二} = {欄位二的值}

WHERE {過濾條件}


4. DELETE
DELETE FROM {表格名}
WHERE {過濾條件}

2008年3月26日 星期三

[JAVA] Sorting HashMap base on Value

Answer:
Example:
you could subclass HashMap and provide a new method 'iterator()' that returns an Iterator that will iterate over the elements in the order you require:

Code 1.

class SortedHashMap extends HashMap {
public Iterator iterator() {
Collection collection = this.values();
Object[] array = collection.toArray();
Arrays.sort(array);
return Arrays.asList(array).iterator();
}
}

Code2:

SortedHashMap map = new SortedHashMap();

map.put("111", "Fred");
map.put("222", "Bill");
map.put("333", "Harry");
map.put("444", "Alan");
map.put("555", "Dave");
map.put("666", "Jim");

System.out.println("Sort by value (name):");

Iterator iter = map.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}

System.out.println("\nRetrieve value (name) by index:");

System.out.println("444 = " + map.get("444"));
System.out.println("222 = " + map.get("222"));
System.out.println("111 = " + map.get("111"));
System.out.println("555 = " + map.get("555"));
System.out.println("333 = " + map.get("333"));
System.out.println("666 = " + map.get("666"));

/* Output :
Sort by value (name):
Alan
Bill
Dave
Fred
Harry
Jim

Retrieve value (name) by index:
444 = Alan
222 = Bill
111 = Fred
555 = Dave
333 = Harry
666 = Jim
*/Any programming problem can be solved

[JAVA] Sorting HashMap base on Key

Question:
How to sort a hashmap using its key?

Answer:
Dump the HashMap into a TreeMap

Map yourMap= new HashMap();
// put some tuples in yourMap ...
Map sortedMap = new TreeMap(yourMap);

Example:
import java.util.*;

public class Test{

public static void main(String args[]){
Map map = new HashMap();
map.put("key3", "value1");
map.put("key1", "value2");
map.put("key2", "value3");
Map sortedMap = new TreeMap(map);
System.out.println(sortedMap);
}
}