การติดต่อ 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
วันศุกร์ที่ 1 ตุลาคม พ.ศ. 2553
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น