ขั้นตอน
- ขั้นแรกจะต้องมี JDK ก่อน ตั้งแต่ version 1.4 ขึ้นไป
- สามารถ Download JDBC ของ AS/400 ได้จาก http://jt400.sourceforge.net/
- เมื่อ download เสร็จแล้วก็ extract file .jar ไปไว้ที่ $JAVA_HOME/jre/lib/ext
- ใน AS/400 จะมี Object อยู่หลายๆอย่าง แต่ที่เกี่ยวข้องก็คือ LIBRARY ซึ่งก็เหมือน Folder และ File เหมือน Table เวลาจะอ้างอิง Table บน AS/400 จะต้องอยู่ในรูปแบบ LIBRARY.FILE
- ตัวอย่าง Function ที่ใช้ Connection
public Connection getAS400Connection() throws ClassNotFoundException, SQLException{Database Tool ที่ใช้เปิด Connection ไปยัง Database ต่างๆ รวมถึง AS/400
Connection conn=null;
final String HOST="10.251.1.20";
final String USER="nidex";
final String PASSWORD="nidex";
try{
Class.forName("com.ibm.as400.access.AS400JDBCDriver");
conn=DriverManager.getConnection("jdbc:as400://"+HOST,USER,PASSWORD);
}catch(ClassNotFoundException cex){
cex.printStackTrace();
throw cex;
}catch(SQLException sex){
sex.printStackTrace();
throw sex;
}
return conn;
}
ตัวอย่าง Source Code เต็มๆ
package csi.sample;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class As400Conn {
public static void printColTypes(ResultSetMetaData rsmd)
throws SQLException {
int columns = rsmd.getColumnCount();
for (int i = 1; i <= columns; i++) {
int jdbcType = rsmd.getColumnType(i);
String name = rsmd.getColumnTypeName(i);
System.out.print("Column " + i + " is JDBC type " + jdbcType);
System.out.println(", which the DBMS calls " + name);
}
}
public Connection getAS400Connection()
throws ClassNotFoundException, SQLException{
Connection conn=null;
final String HOST="10.251.1.20";
final String USER="nidex";
final String PASSWORD="nidex";
try{
Class.forName("com.ibm.as400.access.AS400JDBCDriver");
conn=DriverManager.getConnection("jdbc:as400://"+HOST,USER,PASSWORD);
}catch(ClassNotFoundException cex){
cex.printStackTrace();
throw cex;
}catch(SQLException sex){
sex.printStackTrace();
throw sex;
} return conn;
}
public static void main(String[] args) {
try{
As400Conn as400=new As400Conn();
final String LIBRARY="MVXCDTA3";
final String TABLE="MITMAS";
Connection conn=as400.getAS400Connection();
Statement stmt=conn.createStatement();
String query="select * from "+LIBRARY+"."+TABLE;
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
printColTypes(rsmd);
System.out.println("");
int numberOfColumns = rsmd.getColumnCount();
for (int i = 1; i <= numberOfColumns; i++) {
if (i > 1) System.out.print(", ");
String columnName = rsmd.getColumnName(i);
System.out.print(columnName);
}
System.out.println("");
while (rs.next()) {
for (int i = 1; i <= numberOfColumns; i++) {
if (i > 1) System.out.print(", ");
String columnValue = rs.getString(i);
System.out.print(columnValue);
}
System.out.println("");
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
No comments:
Post a Comment