下載位置:
http://mvnrepository.com/artifact/org.springframework
or
http://sourceforge.net/projects/springframework/files/
裡面包含單一檔案 和 整合(spring-full)版本
DTD檔下載位置
http://www.springframework.org/dtd/
bean.xml 抬頭設置
簡易範例:
---SpringTest.java
package spring001;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext ctx = new FileSystemXmlApplicationContext("src\\bean.xml");
person p = null;
p = (person)ctx.getBean("chinese");
System.out.println(p.sayHello("acc"));
System.out.println(p.sayGoodbye("acc"));
p = (person)ctx.getBean("english");
System.out.println(p.sayHello("acc"));
System.out.println(p.sayGoodbye("acc"));
}
}
--English.java
package spring001;
public class English implements person {
@Override
public String sayHello(String name) {
return name + ",Hello!!!";
}
@Override
public String sayGoodbye(String name) {
return name + ",Good bye!!!";
}
}
--Chinese.java
package spring001;
public class Chinese implements person {
@Override
public String sayHello(String name) {
return name + ",哈囉!!!";
}
@Override
public String sayGoodbye(String name) {
return name + ",再見!!!";
}
}
--person.java
package spring001;
public interface person {
public String sayHello(String name);
public String sayGoodbye(String name);
}
--bean.xml 放置在src目錄下
2013年12月13日 星期五
2013年12月12日 星期四
在Eclipse中,使用JBoss Tools 建立 Hibernate 相關 映射檔案(java,hbm.xml,cfg.xml等)
以下以連結 Oracle 為例,首先建立一Dynamic Web Project
接著加入相關的jar檔,如 Hibernate 及 jdbc for Oracle
接下來在Project上新增一Hibernate Configuration File
選擇存放hibernate.cfg.xml的位置,一般位於 src根目錄
接著進入如下畫面,開始著手相關配置
可以使用Get values from Conntection 來建立(New)配置檔,以後直接選擇配置檔存取即可
選擇資料庫類型,Name及Description 任意,接著點選Next
選擇資料庫版本,一般選Oracle Thin Driver,接著將相關的jdbc jar檔位置設定好
再至Properties 設定相關資料庫屬性,如UserID Password
完成後,會在src的目錄下看到該檔案(hibernate.cfg.xml),但請進入修改依些設定,如下圖
接著開啟一個新的 Perspective --> Hibernate
接下來可以在畫面分頁中查看是否設定正確,若正確,則可以在Database中查看相關Table資料
接下來執行 Hibernate Code Generation Configurations...
開啟畫面如下,可以新增一個自己的配置
【Main】
Console configuration --> 選擇自己的專案名稱
Output directory --> 選擇輸出檔案的目錄,一般設定為 src
Reverse engineer from JDBC Connection --> 請勾選
package --> 選擇要放置升成 java 映射檔的 pagkage 為何
reveng.xml --> 若未建立過,請選擇新增,一般也是設定在 src 的目錄下
【Exporters】
選擇要產出的檔案類型 如 java / hbm.xml映射檔等
其餘的不太需要變更,直接選擇Run,會發現專案目錄已出現我們要的檔案
其餘一些相關設定如以下圖片:
【Table filters】
可選擇要建立相關映射的 Table
選擇產出的 ?.hbm.xml 檔案中,jdbc的資料型別對應Hibernate的類型
將重複無用對應資料刪除
建立要加入該 ?.hbm.xml資料的對應欄位,可順便設定primary key 及 相關產出方式
範例:
<id name="logId"type="long">
<column name="LOG_ID"precision="10" scale="0"/>
<generator class="native">
<param name="sequence">CHECKIN_LOG_AUTO</param>
</generator>
</id>
對照的選項如下:
完成後產出資料後,請記得去將該 ???.hbm.xml 加入 hibernate.cfg.xml 的 mapping 中,如下
修改後的結果,其實可透過介面新增屬性,當然也可以直接對source對修改
如此就可以試著使用該產出的檔案,若有勾選輸出DAO,則可直接拿來運用
但請記得修改當中的 getSessionFactory()
protected SessionFactory getSessionFactory() {
try {
//return (SessionFactory) new InitialContext().lookup("SessionFactory");
return (SessionFactory)new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
log.error("Could not locate SessionFactory in JNDI", e);
throw new IllegalStateException(
"Could not locate SessionFactory in JNDI");
}
}
如此一來才能順利取得 hibernate.cfg.xml 的相關配置資料
By William Hsu 2013.12.12
參考資料:
eclipse利用Hibernate Tools生成Hibernate Mapping文件及PO类
eclipse下wtp+HibernateTools開發筆記
Hibernate 學習筆記 - openhome.cc
參考資料:
eclipse利用Hibernate Tools生成Hibernate Mapping文件及PO类
eclipse下wtp+HibernateTools開發筆記
Hibernate 學習筆記 - openhome.cc
2013年12月3日 星期二
溫故知新 DDL、DML、DCL、DQL
資料定義語言:
DDL(Data Definition Language)
用來定義資料庫、資料表、檢視表、索引、預存程序、觸發程序、函數等資料庫物件。
可以用來建立、更新、刪除 table,schema,domain,index,view
常見的指令有:
CREATE 建立資料庫的物件
ALTER 變更資料庫的物件
DROP 刪除資料庫的物件
===========================================
資料操作語言:
DML(Data Manipulation Language)
用來處理資料表裡的資料。
常見的指令有:
INSERT 新增資料到資料表中
UPDATE 更改資料表中的資料
DELETE 刪除資料表中的資料
===========================================
資料控制語言:
DCL(Data Control Language)
用來控制資料表、檢視表之存取權限,提供資料庫的安全性。
常見的指令有:
GRANT 賦予使用者使用權限
REVOKE 取消使用者的使用權限
COMMIT 完成交易作業
ROLLBACK 交易作業異常,將已變動的資料回復到交易開始的狀態
===========================================
資料查詢語言:
DQL(Data Query Language)
負責進行資料查詢,不會對資料本身進行修改的語句
用來查詢資料表裡的資料。
指令只有一個:
SELECT 選取資料庫中的資料
===========================================
各類輔助指令:SELECT,FROM,WHERE,GROUP BY,ORDER BY
用來定義資料庫、資料表、檢視表、索引、預存程序、觸發程序、函數等資料庫物件。常見的指令有:
CREATE 建立資料庫的物件
ALTER 變更資料庫的物件
DROP 刪除資料庫的物件
DDL(Data Definition Language)
用來定義資料庫、資料表、檢視表、索引、預存程序、觸發程序、函數等資料庫物件。
可以用來建立、更新、刪除 table,schema,domain,index,view
常見的指令有:
CREATE 建立資料庫的物件
ALTER 變更資料庫的物件
DROP 刪除資料庫的物件
===========================================
資料操作語言:
DML(Data Manipulation Language)
用來處理資料表裡的資料。
常見的指令有:
INSERT 新增資料到資料表中
UPDATE 更改資料表中的資料
DELETE 刪除資料表中的資料
===========================================
資料控制語言:
DCL(Data Control Language)
用來控制資料表、檢視表之存取權限,提供資料庫的安全性。
常見的指令有:
GRANT 賦予使用者使用權限
REVOKE 取消使用者的使用權限
COMMIT 完成交易作業
ROLLBACK 交易作業異常,將已變動的資料回復到交易開始的狀態
===========================================
資料查詢語言:
DQL(Data Query Language)
負責進行資料查詢,不會對資料本身進行修改的語句
用來查詢資料表裡的資料。
指令只有一個:
SELECT 選取資料庫中的資料
===========================================
各類輔助指令:SELECT,FROM,WHERE,GROUP BY,ORDER BY
用來定義資料庫、資料表、檢視表、索引、預存程序、觸發程序、函數等資料庫物件。常見的指令有:
CREATE 建立資料庫的物件
ALTER 變更資料庫的物件
DROP 刪除資料庫的物件
2013年10月30日 星期三
[Log4j] 簡易Log4j 設定
好用的 訊息紀錄工具 Log4j
簡易測試程式
package com.test;
import org.apache.log4j.Logger;
public class Log4jTest {
public static void main(String[] args){
Logger logger = Logger.getLogger("Log4jTest.class");
logger.debug("Hello World!!!");
logger.info("What a beautiful day!!");
}
}
需要在 src 的目錄下生成一 Log4j.properties 說明
log4j.rootLogger=DEBUG, console, logfile
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %-5p %l - %m%n
log4j.appender.console.encoding=UTF-8
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %-5p %l - %m%n
log4j.appender.logfile.File=c:/log.txt
log4j.appender.logfile.MaxFileSize=3MB
log4j.appender.logfile.MaxBackupIndex=5
log4j.appender.logfile.encoding=UTF-8
log4j.logger.org.apache.commons=INFO
log4j.logger.org.apache.jasper=INFO
log4j.logger.org.apache.catalina=INFO
PatternLayout(ConversionPattern) 的 格式字元列表如下:
# %c 輸出日誌訊息所屬的類別的全名
# %d 輸出日誌時間點的日期或時間,指定格式的方式:%d{yyy-MM-dd HH:mm:ss }。
# %l 輸出日誌事件的發生位置,即輸出日誌訊息的語句處於它所在的類別的第幾行。
# %m 輸出訊息,如log(message)中的message。
# %n 輸出一個列尾符號。
# %p 輸出優先階層,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %t 輸出產生該日誌事件的線程名。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %f 輸出日誌訊息所屬的類別的類別名。
# %M 輸出日誌訊息所屬的類別的方法名。
若執行時發生以下錯誤訊息,則表示 Log4j.properties未設定 or 找不到
log4j:WARN No appenders could be found for logger (Log4jTest.class).
log4j:WARN Please initialize the log4j system properly.
若是採用 log4j.xml 的設定方式(web端搭配web.xml)在程式初始化過程中發生錯誤
請加上下面這一段
問題解答參考:http://emsooriyabandara.blogspot.tw/2013/05/exception-sending-context-initialized.html
參考資料:
log4j訊息:WARN No appenders could be found for logger
[java] Log4j簡介與快速設定
[Java] log4j 的說明及實作
log4j.properties详解与例子
Log4j簡介
簡易測試程式
package com.test;
import org.apache.log4j.Logger;
public class Log4jTest {
public static void main(String[] args){
Logger logger = Logger.getLogger("Log4jTest.class");
logger.debug("Hello World!!!");
logger.info("What a beautiful day!!");
}
}
需要在 src 的目錄下生成一 Log4j.properties 說明
log4j.rootLogger=DEBUG, console, logfile
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %-5p %l - %m%n
log4j.appender.console.encoding=UTF-8
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %-5p %l - %m%n
log4j.appender.logfile.File=c:/log.txt
log4j.appender.logfile.MaxFileSize=3MB
log4j.appender.logfile.MaxBackupIndex=5
log4j.appender.logfile.encoding=UTF-8
log4j.logger.org.apache.commons=INFO
log4j.logger.org.apache.jasper=INFO
log4j.logger.org.apache.catalina=INFO
PatternLayout(ConversionPattern) 的 格式字元列表如下:
# %c 輸出日誌訊息所屬的類別的全名
# %d 輸出日誌時間點的日期或時間,指定格式的方式:%d{yyy-MM-dd HH:mm:ss }。
# %l 輸出日誌事件的發生位置,即輸出日誌訊息的語句處於它所在的類別的第幾行。
# %m 輸出訊息,如log(message)中的message。
# %n 輸出一個列尾符號。
# %p 輸出優先階層,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %t 輸出產生該日誌事件的線程名。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %f 輸出日誌訊息所屬的類別的類別名。
# %M 輸出日誌訊息所屬的類別的方法名。
若執行時發生以下錯誤訊息,則表示 Log4j.properties未設定 or 找不到
log4j:WARN No appenders could be found for logger (Log4jTest.class).
log4j:WARN Please initialize the log4j system properly.
若是採用 log4j.xml 的設定方式(web端搭配web.xml)在程式初始化過程中發生錯誤
Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
例如設定了:請加上下面這一段
問題解答參考:http://emsooriyabandara.blogspot.tw/2013/05/exception-sending-context-initialized.html
參考資料:
log4j訊息:WARN No appenders could be found for logger
[java] Log4j簡介與快速設定
[Java] log4j 的說明及實作
log4j.properties详解与例子
Log4j簡介
2013年10月29日 星期二
測試 WebService 的工具 wizdl
測試 Web Service 的工具 wizdl
很便利的一套工具,免除開 VS20XX 的麻煩
wizdl - Web Service GUI Test Tool
相關連結:介紹好用工具:Web Service GUI Test Tool ( wizdl )
再來一套 WebServiceStudio
WebServiceStudio
相關連結 :WebServiceStudio一個方便的WebService測試工具
解決在 eclipse 編譯過程中無法正常編譯 且 ToolProvider.getSystemJavaCompiler() returns null 的問題
一般來說是因為在eclipse 中使用錯誤的 jre standard VM開發環境
設定正確即可
詳細步驟:
- Go to Java->Installed JREs. Add your JDK as a runtime. You may choose to select this JDK to use for all your FUTURE projects. However your selection will not take effect on existing projects. Hence onto step 2.
- Select your project's properties. Select Java Build Path.
- Under the Libraries tab, select JRE System Library [jreblahblahblah] and Edit it.
- Select Alternate JRE and use the dropdown to find the JDK that you just added.
- Clean your project and rebuild.
參考:
null JavaCompiler in Eclipse
ToolProvider.getSystemJavaCompiler() returns null - usable with only JRE installed?
2013年10月11日 星期五
列印 HTML 網頁強制換頁的方式
透過 CSS 的 Pagebreak 來處理
{ page-break-after: always; /*在標籤後換頁*/ }
{ page-break-before: always; /*在標籤前換頁*/ }
參考文件:
http://blog.xuite.net/ben19770209/ASBeginner/5741666
http://www.neo.com.tw/archives/798
http://www.study-area.org/coobila/tutorial_576.html
{ page-break-after: always; /*在標籤後換頁*/ }
{ page-break-before: always; /*在標籤前換頁*/ }
參考文件:
http://blog.xuite.net/ben19770209/ASBeginner/5741666
http://www.neo.com.tw/archives/798
http://www.study-area.org/coobila/tutorial_576.html
訂閱:
文章 (Atom)