Posted in
Java,
database,
google,
yahoo,
教學,
程式 on 2010/6/22 by yku 瀏覽:
67人次 —
更多回應
SiteMapCreater主要的功能在自動產生SiteMap.xml,只需要在資料庫表格裡建立所要產生的SiteMap網址等資訊就可以執行它來自動產生需要的SiteMap而提交給Google或yahoo等搜尋引擎。
這個程式主要是獨立作業的,可以利用windows或是linux的排程來執行jar run就可以了,這樣子可以減少對伺服器的負擔。
程式的作法是從資料庫取得資料,再把資料加上xml需要的字串,然後最後輸出成檔案就可以了,中間有些需要注意的地方,像是筆數不可太多,此程式設定4000筆會換一個檔案名稱,還有檔案也不可超過太大,8mb以下或更小。
執行後會得到以下檔案,一個index的Sitemap.xml及實際的內容的Info0.xml,另外還需要一個xsl來當讀取樣版的準則,向搜尋引擎只需要提交Sitemap.xml這個檔案就可以了,程式還會自動把所有檔案變成一個zip檔,google可以提交zip檔案做為SiteMap,不過此部份並未成功,有興趣的朋友可以再加以改進。

...詳細文章
Posted in
Java,
database,
google,
javascript,
opensource,
prototype,
教學 on 2010/4/26 by yku 瀏覽:
364人次 —
留下回應
如果手上有一堆地址清單想要知道它們的經緯度如何?要怎麼做呢?這裡介紹一個很簡單的方法,利用二個Ajax及Google Map就可以完成,一個要求地址欄位及key值(這其實可以直接全都先輸出成javascript的Array就好了),另一個接收到經緯度資料後回傳給Server做儲存(這也可以直接利用一個TextArea存放,到時再複製起來存放),而Google Map最主要的功能就是把地址轉換成經緯度。

做法及想法如下:
1.建立資料庫Table
需要有一個pk值、地址、經度、緯度及一個記錄是否已取得成功的註記符號,MySQL語法如下:
ps.先建立幾筆資料做測試,如下insert
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| CREATE TABLE `test`.`Address` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`zip_name` VARCHAR(45) NOT NULL,
`address` VARCHAR(500) NOT NULL,
`latitude` VARCHAR(100),
`longitude` VARCHAR(100),
`flg` VARCHAR(1),
PRIMARY KEY (`id`)
)
ENGINE = InnoDB;
INSERT INTO ADDRESS (zip_name,address)
VALUES ('台中市北屯區', '崇德路130號14樓A1');
INSERT INTO ADDRESS (zip_name,address)
VALUES ('台中市西區', '忠明南路122號'); |
...詳細文章
Posted in
Exception,
Java,
database,
jsp,
程式 on 2009/7/31 by yku 瀏覽:
323人次 —
留下回應
java.sql.ResultSet 使用absolute方法可以移動ResultSet的指標到想要的筆數,
當 JDBC跟資料庫要資料時,會回傳一個ResultSet,但不是把所有查詢的結果均回傳至Web Server端,
而是只給前面幾筆資料,可以利用ResultSet的方法setFetchSize來設定一次回傳的筆數,
(一次傳的多,等待的時間就比較長,傳的太少,要一直跟資料庫要ResultSet.next()也會比較慢)
當ResultSet向下移動碰觸或是快要碰觸到目前回傳的筆數時,會自動再跟資料庫要設定好的筆數,
而把目前筆數以上的資料全都暫存在記憶體裡。
以上是ResulSet的基本原理,當一次查詢的量夠大時,而利用absolute來移動到想要的Row時,
就有可能發生out of memory的問題,
舉個列子:
...詳細文章
Posted in
Java,
database on 2009/7/17 by yku 瀏覽:
356人次 —
留下回應
利用JDBC取得Connection後,可以利用以下幾種方式來執行資料庫的Store Procedure
1.沒參數
CallableStatement cs;
try {
// 設定 CallableStatement
cs = connection.prepareCall("{call myproc}");
// 執行 CallableStatement
cs.execute();
} catch (SQLException e) {
}
2.有IN參數
...詳細文章
Posted in
database on 2009/7/15 by yku 瀏覽:
418人次 —
留下回應
在Oracle裡並沒有像MySql那樣子有自動編號的功能,
如果需要產生不重覆的編號,這時就需要自己動手來做了,
大概的方法有二,不過概念基本上是相同的,
想法,利用一個Table存放編號資料,例如檔頭及碼長及取號的來源(那一個Table)
每次需要取號時則跟此Table要資訊,並把碼長+1存放回去,順便回傳碼長+1
可以利用程式來編寫或是直接在Oracle上寫Sotre Procedures或function
比較建議在Oracle上直接撰寫sp,這樣子不管是其它的SP或是Server上的程式二者均可使用,
不需要另外再行撰寫
...詳細文章