String query = SELECT FoodName FROM Fo" name="description" />

使用JDBC創建數據庫對象(4)

發表于:2007-07-14來源:作者:點擊數: 標簽:
使用JDBC創建 數據庫 對象(4) · 執行SQL查詢 我們已經理解了 JDBC 的基本對象,現在就可以執行 SQL 查詢了。查詢是作為 Statement 對象的方法執行的,您很容易從 Connection 對象獲得 Statement 對象: CC CCCC"> String query = SELECT FoodName FROM Fo
使用JDBC創建數據庫對象(4)

· 執行SQL查詢

我們已經理解了 JDBC 的基本對象,現在就可以執行 SQL 查詢了。查詢是作為 Statement 對象的方法執行的,您很容易從 Connection 對象獲得 Statement 對象:

CCCCCC"> String query = "SELECT FoodName FROM Food;";
ResultSet results;
try
{
Statement stmt = con.createStatement();
results = stmt.executeQuery(query);
}
catch (Exception e)
{System.out.println("query exception");}

請注意,這個簡單的查詢返回 Food 表中的整個 FoodName 列。您使用像這樣的簡單查詢獲取整個列的內容。請注意,查詢的查詢本身是一個 ResultSet ,您可以用我們上面剛討論過的方法對它進行處理。

· 打印ResultSet

因為我們總是要從 ResultSets 中打印數據,我們可以設計一種簡單的方法,將整個 ResultSet 轉儲出來,包括表名稱元數據。該子程序如下所示:

private void dumpResults(String head)
{
//
這是打印列標頭和每列的內容的

//
通用方法

System.out.println(head);
try
{
//
從元數據中獲取列數

rsmd = results.getMetaData();
numCols = rsmd.getColumnCount();
//
打印列名

for (i = 1; i<= numCols; i++)
System.out.print(rsmd.getColumnName(i)+" ");
System.out.println();
//
打印列內容

boolean more = results.next();
while (more)
{
for (i = 1; i <= numCols; i++)
System.out.print(results.getString(i)+" ";
System.out.println();
more = results.next();
}
}
catch(Exception e)
{System.out.println(e.getMessage());}
}

· 一個簡單的JDBC程序

我們已經學習了 JDBC 的所有基本功能,現在我們可以編寫一個簡單的程序,該程序打開數據庫,打印它的表名以及某一表列的內容,然后對該數據庫執行查詢。此程序如下所示:

import java.net.URL;
import java.sql.*;
import java.util.*;
class JdbcOdbc_test
{
ResultSet results;
ResultSetMetaData rsmd;
DatabaseMetaData dma;
Connection con;
int numCols, i;
//--
public JdbcOdbc_test()
{
String url = "jdbc:odbc:Grocery prices";
String query = "SELECT DISTINCTROW FoodName FROM Food " + "WHERE (FoodName like 'C%');";
try
{
//
加載 JDBC-ODBC 橋驅動程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//連接數據庫
con = DriverManager.getConnection(url);
//獲取數據庫的元數據
dma =con.getMetaData();
System.out.println("Connected to:"+dma.getURL());
System.out.println("Driver "+dma.getDriverName());
//將數據庫中的表的名稱轉儲出來
String[] types = new String[1];
types[0] = "TABLES";
//請注意通配符是 % 符號(而不是“*”)
results = dma.getTables(null, null, "%", types);
dumpResults("--Tables--");
results.close();
}
catch (Exception e)
{System.out.println(e);}
//獲取表列的名稱
System.out.println("--Column Names--");
try {
results =
dma.getColumns(null, null, "FoodPrice", null);
ResultSetMetaData rsmd = results.getMetaData();
int numCols = rsmd.getColumnCount();
while (results.next() )
String cname = results.getString("COLUMN_NAME");
System.out.print(cname + " ");
System.out.println();
results.close();
}
catch (Exception e)
{System.out.println(e);}
//列出一個列的內容 -- 這是一個查詢
try {
Statement stmt = con.createStatement();
results =
stmt.executeQuery("SELECT FOODNAME FROM FOOD;");
}
catch (Exception e)
{System.out.println("query exception");}
dumpResults("--Contents of FoodName column--");
//嘗試實際的 SQL 語句
try
{
Statement stmt = con.createStatement();
results = stmt.executeQuery(query);
}
catch (Exception e)
{System.out.println("query exception");}
dumpResults("--Results of Query--");
}

該程序打印出的結果如下所示:

C:\Projects\objectJava\chapter19>java JdbcOdbc_test
Connected to:jdbc:odbc:Grocery prices
Driver JDBC-ODBC Bridge (ODBCJT32.DLL)
--Tables--
TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
groceries null Food TABLE null
groceries null FoodPrice TABLE null
groceries null Stores TABLE null
--Column Names--
FSKey StoreKey FoodKey Price
--Contents of FoodName column--
FOODNAME
Apples
Oranges
Hamburger
Butter
Milk
Cola
Green beans
--Results of Query--
FoodName
Cola

(未完待續)

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97