Thursday, August 27, 2009

ก่อนจะไป Narisa tech talk 7

เนื่องจากวันเสาร์ที่ 27/08/2009 นี้จะมีงาน narisa tech talk ครั้งที่ 7 ผมในนามของคนที่มีอาชีพแขวนอยู่บนคอมพิวเตอร์และ โปรแกรมมิ่ง จึงอยากจะไปเปิดหูเปิดตาบ้างโดยจุดมุ่งหวังในครั้งนี้ของผมนั้นคือจะได้รู้จัก หัวข้อต่างๆที่พวกพี่ๆนำมาพูดกัน เพราะความรู้ของผมค่อนข้างจะแคบจริงๆ ได้เข้าใจก็จะดีมากแล้วครับ

Tuesday, July 14, 2009

Log4j JDBCAppender

การ config log ลง database โดยใช้ log4j

1. config log4j.properties eg.

log4j.logger.jdbclog4j=INFO, A2,D1

#กำหนดให้ใช้ JDBCAppender ซึ่งจะ writelog ลง database
log4j.appender.D1=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.D1.URL=jdbc:derby://localhost:1527/sun-appserv-samples
log4j.appender.D1.User=app
log4j.appender.D1.Password=app
log4j.appender.D1.layout=org.apache.log4j.PatternLayout
log4j.appender.D1.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n

#SQLstatement ที่จะ insert ลง database จะต้อง สร้าง TABLE รองรับ
log4j.appender.D1.sql = insert into LogTable (Thread, Class, Message) values ('%t', '%c', '%m')


2. สร้าง TABLE LOGTABLE สำหรับลง LOG

CREATE TABLE LOGTABLE
(
SEQ_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
THREAD VARCHAR(255),
CLASS VARCHAR(255),
MESSAGE VARCHAR(255)=,
UNIQUE (SEQ_ID)
)


*Conversion Character

d For example, %d{HH:mm:ss,SSS} or %d{dd MMM yyyy HH:mm:ss,SSS}

Friday, February 13, 2009

การสร้าง DATABASE LINK (Oracle)

ดังนี้
CREATE DATABASE LINK "LINK_NAME" CONNECT TO "remoteUser" IDENTIFIED by "remotePassword" USING 'destinationDB'


บรรยายตัวแปร
LINK_NAME = ชื่อ link ที่เราจะใช้อ้าง
remoteUser = username ของ database ปลายทางที่จะ remote ไป
remotePassword = password ของ database ปลายทางที่จะ remote ไป
destinationDB = ชื่อ database ที่จะ remote ไป

eg.
CREATE DATABASE LINK "LINK_2.REGRESS.RDBMS.DEV.US.ORACLE.COM" CONNECT TO "BKUSER" IDENTIFIED by "**********" USING 'SOBETDB'



ตัวอย่างการใช้งาน
มี db สองตัวคือ mydb1 มี table name และ mydb2 มี table surname หากต้องการ query จาก mydb1 ต้องสร้าง dbLink ชื่อ mydb2link ที่ mydb1 และใช้คำสั่ง query ตัวอย่างดังนี้้
eg. select * from surname@mydb2link

เป็นต้น

Wednesday, January 28, 2009

simple xml-parser by Apache-Digester

example.

create file example.xml

<ATSSYNC>
<DERIVERED>
<SERIAL></SERIAL>
<SERIAL></SERIAL>
</DERIVERED>
<EFFECTIVEDATE>12JUNE09</EFFECTIVEDATE>
</ATSSYNC>


coding main.java

Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("ATSSYNC", SalePointSync.class);
digester.addBeanPropertySetter("ATSSYNC/EFFECTIVEDATE", "effectiveDate");

digester.addObjectCreate("ATSSYNC/DERIVERED", Derivered.class);
digester.addCallMethod("ATSSYNC/DERIVERED/SERIAL", "addSerial", 1);
digester.addCallParam("ATSSYNC/DERIVERED/SERIAL", 0);
digester.addSetNext("ATSSYNC/DERIVERED", "addDerivered");


File inputFile = new File("example.xml");
SalePointSync salePointSync = null;
salePointSync = (SalePointSync) digester.parse(inputFile);
System.out.println(salePointSync.toXML());


coding SalePointSync.java

public class SalePointSync {

private Vector derivered;
private Vector returning;
private String effectiveDate;

public SalePointSync() {
derivered = new Vector();
returning = new Vector();
}
public void addDerivered(Derivered derivered){
this.derivered.addElement(derivered);
}
public Vector getDerivered() {
return derivered;
}
public void addReturning(Returning returning){
this.returning.addElement(returning);
}
public Vector getReturning() {
return returning;
}

public String getEffectiveDate() {
return effectiveDate;
}

public void setEffectiveDate(String effectiveDate) {
this.effectiveDate = effectiveDate;
}

public String toXML() {
StringBuffer sb = new StringBuffer();
sb.append("");
for(int i=0;i" + getEffectiveDate() + "");
sb.append("
");
return sb.toString();
}
}

coding Derivered.java

public class Derivered {
private Vector serial;
public Derivered(){
serial = new Vector();
}
public Vector getSerial() {
return serial;
}

public void addSerial(String serial) {
this.serial.addElement(serial);
}

public String toXML(){
StringBuffer sb = new StringBuffer();
sb.append("");
for(int i=0;i"+s+"");
}
sb.append("
");
return sb.toString();
}
}