當前位置:編程學習大全網 - 編程語言 - 實現數據庫和java的鏈接怎麽操作數據庫

實現數據庫和java的鏈接怎麽操作數據庫

之前在遠標做過用JAVA連接數據庫主要有兩種方式,壹是用JDBC-ODBC橋來連接,二是用相關廠商提供的相應驅動程序來連接,首先談談第壹種連接。

JDBC-ODBC橋接器是用JdbcOdbc.Class和壹個用於訪問ODBC驅動程序的本地庫實現的。對於WINDOWS平臺,該本地庫是壹個動態連接庫DLL(JDBCODBC.DLL)。

由於JDBC在設計上與ODBC很接近。在內部,這個驅動程序把JDBC的方法映射到ODBC調用上,這樣,JDBC就可以和任何可用的ODBC驅動程序進行交互了。這種橋接器的優點是,它使JDBC目前有能力訪問幾乎所有的數據庫。通行方式如圖所示:

應用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC層---數據源

具體操作方法為:

首先打開控制面板的管理工具,打開數據源(ODBC),在用戶DSN裏面添加數據源(即妳要連接的數據庫的名字),在這裏假定連接SQL SERVER 2000的GoodsSupply數據庫。名稱填寫妳要連接的數據庫的名稱(GoodsSupply),然後逐步設置,如果選用了使用SQL-SERVER密碼認證的話,就要輸入相應的用戶名及密碼連接到數據庫。壹路下壹步設置完成。

在JAVA裏面編寫程序進行測試,在這裏我的程序是讓用戶輸入任意的表名與與列名,把該列的所有數據輸出。源代碼如下:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.sql.*;

public class ODBCBridge {

public static void main(String[] args) {

String url="jdbc:odbc:GoodsSupply";

Statement sm=null;

String command=null;

ResultSet rs=null;

String tableName=null;

String cName=null;

String result=null;

BufferedReader input=new BufferedReader(new InputStreamReader(System.in));

try {

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加載驅動

}catch(ClassNotFoundException e){

System.out.println("Can not load Jdbc-Odbc Bridge Driver");

System.err.print("ClassNotFoundException:");

System.err.println(e.getMessage());

}

Connection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000認證

DatabaseMetaData dmd=con.getMetaData(); //DMD為連接的相應情況

System.out.println("連接的數據庫:"+dmd.getURL());

System.out.println("驅動程序:"+dmd.getDriverName());

sm=con.createStatement();

System.out.println("輸入表名");

tableName=input.readLine();

while(true) {

System.out.println("輸入列名(為空時程序結束):");

cName=input.readLine();

if(cName.equalsIgnoreCase(""))

break;

command="select "+cName+" from "+tableName;

rs=sm.executeQuery(command); //執行查詢

if(!rs.next())

System.out.println("表名或列名輸入有誤");

else {

System.out.println("查詢結果為:");

do

{

result=rs.getString(cName);

//數據庫語言設置為中文,不用轉換編碼

//result=new String(result.getBytes("ISO-8859-1"),"GB2312");

System.out.println(result);

}while(rs.next());

}

}

}catch(SQLException ex) {

System.out.println("SQLException:");

while(ex!=null) {

System.out.println("Message:"+ex.getMessage());

ex=ex.getNextException();

}

}catch(Exception e) {

System.out.println("IOException");

}

}

}

  • 上一篇:遊戲中的怪獸形象設定賞析-獸人永不為奴
  • 下一篇:從零開始的英文
  • copyright 2024編程學習大全網