2013年12月13日 星期五

Spring Framwwork 各版本 jar 下載 及簡易範例

下載位置:
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月12日 星期四

在Eclipse中,使用JBoss Tools 建立 Hibernate 相關 映射檔案(java,hbm.xml,cfg.xml等)

在Eclipse中先使用 Install new software 下載 JBoss Tools 或直接去官網下載。
以下以連結 Oracle 為例,首先建立一Dynamic Web Project



接著加入相關的jar檔,如 Hibernate jdbc for Oracle

接下來在Project上新增一Hibernate Configuration File

選擇存放hibernate.cfg.xml的位置,一般位於 src根目錄

接著進入如下畫面,開始著手相關配置

可以使用Get values from Conntection 來建立(New)配置檔,以後直接選擇配置檔存取即可

選擇資料庫類型,NameDescription 任意,接著點選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 的相關配置資料

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 刪除資料庫的物件

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)在程式初始化過程中發生錯誤

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開發環境
設定正確即可



 詳細步驟:

  1. 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.
  2. Select your project's properties. Select Java Build Path.
  3. Under the Libraries tab, select JRE System Library [jreblahblahblah] and Edit it.
  4. Select Alternate JRE and use the dropdown to find the JDK that you just added.
  5. Clean your project and rebuild.

 

參考:
null JavaCompiler in Eclipse
ToolProvider.getSystemJavaCompiler() returns null - usable with only JRE installed?

2013年10月11日 星期五

Related Posts Plugin for WordPress, Blogger...