java與資料庫連接odbc
用JAVA連接資料庫主要有兩種方式,一是用JDBC-ODBC橋來連接,二是用相關廠商提供的相應驅動程序來連接,首先談談第一種連接。 x0dx0ax0dx0aJDBC-ODBC橋接器是用JdbcOdbc.Class和一個用於訪問ODBC驅動程序的本地庫實現的。對於WINDOWS平台,該本地庫是一個動態連接庫DLL(JDBCODBC.DLL)。 x0dx0ax0dx0a由於JDBC在設計上與ODBC很接近。在內部,這個驅動程序把JDBC的方法映射到ODBC調用上,這樣,JDBC就可以和任何可用的ODBC驅動程序進行交互了。這種橋接器的優點是,它使JDBC目前有能力訪問幾乎所有的資料庫。通行方式如圖所示: x0dx0ax0dx0a應用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC層---數據源 x0dx0ax0dx0a具體操作方法為: x0dx0ax0dx0a首先打開控制面板的管理工具,打開數據源(ODBC),在用戶DSN裡面添加數據源(即你要連接的資料庫的名字),在這里假定連接sql SERVER 2000的GoodsSupply資料庫。名稱填寫你要連接的資料庫的名稱(GoodsSupply),然後逐步設置,如果選用了使用SQL-SERVER密碼認證的話,就要輸入相應的用戶名及密碼連接到資料庫。一路下一步設置完成。 x0dx0ax0dx0a在JAVA裡面編寫程序進行測試,在這里我的程序是讓用戶輸入任意的表名與與列名,把該列的所有數據輸出。源代碼如下: x0dx0ax0dx0aimport java.io.BufferedReader; x0dx0aimport java.io.InputStreamReader; x0dx0aimport java.sql.*; x0dx0ax0dx0apublic class ODBCBridge { x0dx0ax0dx0apublic static void main(String[] args) { x0dx0aString url="jdbc:odbc:GoodsSupply"; x0dx0aStatement sm=null; x0dx0aString command=null; x0dx0aResultSet rs=null; x0dx0aString tableName=null; x0dx0aString cName=null; x0dx0aString result=null; x0dx0aBufferedReader input=new BufferedReader(new InputStreamReader(System.in)); x0dx0atry { x0dx0atry { x0dx0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //載入驅動 x0dx0a}catch(ClassNotFoundException e){ x0dx0aSystem.out.println("Can not load Jdbc-Odbc Bridge Driver"); x0dx0aSystem.err.print("ClassNotFoundException:"); x0dx0aSystem.err.println(e.getMessage()); x0dx0a} x0dx0aConnection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000認證 x0dx0aDatabaseMetaData dmd=con.getMetaData(); //DMD為連接的相應情況 x0dx0aSystem.out.println("連接的資料庫:"+dmd.getURL()); x0dx0aSystem.out.println("驅動程序:"+dmd.getDriverName()); x0dx0asm=con.createStatement(); x0dx0aSystem.out.println("輸入表名"); x0dx0atableName=input.readLine(); x0dx0awhile(true) { x0dx0aSystem.out.println("輸入列名(為空時程序結束):"); x0dx0acName=input.readLine(); x0dx0aif(cName.equalsIgnoreCase("")) x0dx0abreak; x0dx0acommand="select "+cName+" from "+tableName; x0dx0ars=sm.executeQuery(command); //執行查詢 x0dx0aif(!rs.next()) x0dx0aSystem.out.println("表名或列名輸入有誤"); x0dx0aelse { x0dx0aSystem.out.println("查詢結果為:"); x0dx0ado x0dx0a{ x0dx0aresult=rs.getString(cName); x0dx0a//資料庫語言設置為中文,不用轉換編碼 x0dx0a//result=new String(result.getBytes("ISO-8859-1"),"GB2312"); x0dx0aSystem.out.println(result); x0dx0a}while(rs.next()); x0dx0a} x0dx0a} x0dx0a}catch(SQLException ex) { x0dx0aSystem.out.println("SQLException:"); x0dx0awhile(ex!=null) { x0dx0aSystem.out.println("Message:"+ex.getMessage()); x0dx0aex=ex.getNextException(); x0dx0a} x0dx0a}catch(Exception e) { x0dx0aSystem.out.println("IOException"); x0dx0a} x0dx0a} x0dx0a}
Ⅱ Java中如何與資料庫建立連接(java怎麼與資料庫連接)
導入java.sql包
一、載入要連接資料庫的驅動程序
//Jdbc-Odbc橋和MicrosoftAess資料庫
Class.forName("sun.jdbc.odbc.");
//SQLServer驅動程序:
Class.forName("com.microsoft.jdbc.sqlserver.");
註:Class.forName()方法將給定的類載入到JVM,如果系統中不存在給定的類,則會引發異常
二、通過驅動程序管理器得到連接實例
Connectionconn=null;
//1.
//1.1建立數據源
conn=.("jdbc:odbc:");//是數據源名稱
//1-2、不建立數鬧彎據源
conn=.("jdbc:odbc:;Driver=MicrosoftAessDriver(*.mdb);DBQ=C:VBTest.mdb");
//2.SQLServer
conn=.("jdbc:microsoft:sqlserver://127.0.0.1:1433;=mydb","sa","");
註:類跟蹤已注冊的驅動程序,通過(URL)方法,找到一塌喚個能夠連接至URL中指定的資料庫驅動程序
它接收三個參數,分別表示1數據源的名稱、類型2用戶名(可選)3密碼(可選)
三、基於連接對象建立處理器對象
Statementstmt=conn.();
四、准備sql命令
Stringsql="select*fromStudent";
五、執行命令返回結果集
ResultSetrs=stmt.(sql);
六、顯示結果集
while(rs.next())//只要後面有記錄
{
//對當前行的所有欄位遍歷
for(inti=1;i<=rs.getMetaData().();i)
{
System.out.print(rs.getMetaData().getColumnName(i)":");//顯示欄位名
System.out.println(rs.getString(i));//顯示欄位當前值
}
System.out.println();
}
七、關閉資源
rs.close();//關閉記團彎凱錄集
stmt.close();//關閉處理器對象
conn.close();//關閉連接對象
預處理器的應用:
//3.基於連接對象建立預處理器對象
PreparedStatementpstmt=conn.prepareStatement("insertintostudentvalues(?,?,?,?)");
//4.給預處理對象的參數賦值
pstmt.setString(1,"8888");
pstmt.setString(2,"nemo");
pstmt.setString(3,"ap");
pstmt.setString(4,"sanxianglu");
//5.執行預處理命令
inti=pstmt.executeUpdate();
System.out.println(i"條記錄已成功插入!");
Ⅲ java通過jdbc-odbc連接資料庫
實現思路:就是通過ojdbc.jar中提供的方法,直接連接資料庫即可,固定代碼寫法如下:
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;
publicclassJDBCTest{
publicstaticvoidmain(String[]args)throwsException{
//1.載入驅動
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//Class.forName("com.mysql.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.創建資料庫連接對象
//Connectionconn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=db","sa","sqlpass");
//Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8","root","123456");
Connectionconn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","Oracle123");
//3.創建資料庫命令執行對象
Statementstmt=conn.createStatement();
//PreparedStatementps=conn.prepareStatement("select*fromt_user");
//4.執行資料庫命令
ResultSetrs=stmt.executeQuery("select*fromt_user");
//ResultSetrs=ps.executeQuery();
//5.處理執行結果
while(rs.next()){
intid=rs.getInt("id");
Stringusername=rs.getString("username");
Stringpassword=rs.getString("password");
System.out.println(id+" "+username+" "+password);
}
//6.釋放資料庫資源
if(rs!=null){
rs.close();
}
//if(ps!=null){
//ps.close();
//}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
Ⅳ 在java中與資料庫連接的技術是什麼
JDBC和ODBC都是資料庫連接的技術,JDBC使用更加廣泛。
JDBC(Java Data Base Connectivity,java資料庫連接)是一種用於執行SQL語坦乎句的Java API,可以為多種關系資料庫提供統一訪問,它由一組用Java語言編寫的類和陪纖介面組成。JDBC提供了一種基準,據此可以構建更高級的工具和介面,使資料庫開發人員能夠蘆信仿編寫資料庫應用程序。
開放資料庫互連(ODBC)是Microsoft提出的資料庫訪問介面標准。開放資料庫互連定義了訪問資料庫API的一個規范,這些API獨立於不同廠商的DBMS,也獨立於具體的編程語言(但是Microsoft的ODBC文檔是用C語言描述的,許多實際的ODBC驅動程序也是用C語言寫的。)ODBC規范後來被X/OPEN和ISO/IEC採納,作為SQL標準的一部分,具體內容可以參看《ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI)》等相關的標准文件。