วันศุกร์ที่ 1 ตุลาคม พ.ศ. 2553

การติดต่อ MS Access Database ด้วย JDBC

การติดต่อ MS Access Database ด้วย JDBC
ไฟล์ JDBC_SELECT.java
import java.io.*;
import java.sql.*;

class JDBC_SELECT
{

static final String DB = "jdbc:odbc:ODBC_NORTHWIND";
static final String USER = "";
static final String PASSWORD = "";

public static void main(String[] args)
{
int ID=0;
String Name = "";

System.out.println("==========================");
System.out.println("SupplierID CompanyName ");
System.out.println("==========================");

try
{
// สร้าง class ชื่อว่า sun.jdbc.odbc.JdbcOdbcDriver ขึ้นมา เพื่อกำหนด Driver ให้กับ JDBC
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// สร้าง Connection object เพื่อใช้ในการติดต่อกับฐานข้อมูล
Connection db = DriverManager.getConnection(DB, USER, PASSWORD);

// SQL command
String query = "select * from Suppliers ";

// ใช้สำหรับ สร้าง statement ที่จะใช้ในการ execute sql command
Statement stmt = db.createStatement();

// สร้าง Resultset เพื่อรับผลของการ execute query ตัว resultset นี้ จะมีการทำงานเหมือน
// Recordset ก็คือเป็นคล้าย ๆ กับ pointer ที่ชี้ข้อมูลในตารางที่ตำแหน่งปัจจุบัน หรือ Record ปัจจุบัน
ResultSet rs = stmt.executeQuery(query);

// rs.next() ใช้ในการเลื่อน record ไปยัง record ถัดไป จะกว่าจะหมด
while (rs.next())
{

//SupplierID = rs.getString(1); //หรือใช้rs.getInt("id"));
//CompanyName = rs.getString(2); // หรือใช้ rs.getString("name"));

ID = rs.getInt("SupplierID");
Name = rs.getString("CompanyName");

//System.out.println("ID = " + ID + "\n" + "Name = " + Name);
System.out.println(+ ID + " " + Name);

}
// จะเห็นว่าผลของการทำ Loop while จะให้ค่า record สุดท้ายมาเก็บไว้ในตัวแปร ID, Name
// ซึ่งมันจะทับค่าข้อมูลที่ได้มาจาก record แรก เราจะมีวิธีการแก้ไขอย่างไร? ไปดูใน MyJDBCvector.java

rs.close();
stmt.close();
db.close();
}
catch (Exception ex)
{
System.err.println(ex);
System.out.println("Error");
System.out.println(ex);
}

}
}// end class

ไม่มีความคิดเห็น: