ODBC簡介
開放數據庫連接(Open Database Connectivity),ODBC是為解決異構數據庫間的數據共享而產生的,ODBC 為異構數據庫訪問提供統一接口,允許應用程序以SQL 為數據存取標准,存取不同DBMS管理的數據;使應用程序直接操縱DB中的數據,免除隨DB的改變而改變。
ODBC由應用程序、驅動管理器、 驅動程序 、數據源組成。在本實驗中我們只需要下載、安裝驅動程序,並配置數據源。
下載、安裝驅動程序
以mysql驅動程序為例。
首先進入官方下載網站:https://dev.mysql.com/downloads/connector/odbc/
根據自己設備來下載安裝包,然后按默認設置安裝即可。
注意:
若在javascript中連接數據庫,不能隨意選擇安裝包位數。要根據設備上IE瀏覽器的位數來選擇。比如我的設備的操作系統是Windows 64位,但是IE瀏覽器是32位的,所以應該選擇32位的安裝包。
若在java、python等語言中連接數據庫,則不需要考慮以上問題。
配置數據源
下載的是多少位的mysql驅動程序,就要使用多少位的ODBC。以我的設備為例,我下載了32位的mysql驅動程序,所以使用32位ODBC。打開本機的32位ODBC程序:
選擇系統DSN,點擊添加,選擇要使用的mysql驅動程序:
然后對其進行配置:
其中,Data Source Name為數據源名稱,可任意取名.
TCP/IP Server 中,填寫polarDB for mysq提供的連接地址。
User中,填寫polarDB for mysq提供的用戶名。
Password中,填寫polarDB for mysq提供的密碼。
Database中,填寫polarDB for mysq提供的數據庫名稱。
可以點擊test按鈕測試數據源的配置是否成功。
編寫JavaScript代碼測試
若用html文件中內聯的JavaScript代碼連接到數據庫,必須使用IE瀏覽器來運行html文件。
成功連接數據庫的關鍵是正確書寫數據庫連接串。其中DSN就是用戶自定義的數據源名稱。
connect.js源代碼:
function connectToDB(){ //創建數據庫連接對象 var conn = new ActiveXObject("ADODB.Connection"); //創建數據集對象 var rs = new ActiveXObject("ADODB.Recordset"); try{ //數據庫連接串 var connectionstring = "DSN=zhg_mysql2;Server=pc-bp18rn0tqu85a1600-public.rwlb.rds.aliyuncs.com;Database=db_zhg;User=lab_420510322; Password=a540a1f12517_#@Aa;Port=3306"; //打開連接 conn.open(connectionstring); //若成功連接輸出提示信息 alert("connect to polarDB for Mysql succeed"); //查詢語句 var sql = " select * from student "; //打開數據集(即執行查詢語句) rs.open(sql,conn); var str=""; //儲存查詢結果 var len = rs.Fields.count; //一個元組的屬性數量 var flag=true; //判斷是否輸出列名 //遍歷所有記錄 while(!rs.eof){ //處理第一個元組時先輸出列名 if(flag){ for(var i=0;i<len;i++){ str+=rs.Fields(i).Name; if(i==0) str+='\t\t'; else str+='\t'; } str+='\n'; flag=false; } //遍歷輸出所有元組 for(var i=0;i<len;i++){ str += rs.Fields(i).Value; str+='\t'; } str+='\n'; //迭代器讀入下一條記錄 rs.moveNext(); } //輸出查詢結果 alert(str); //關閉記錄集 rs.close(); //關閉數據庫連接 conn.close(); } catch(e){ //異常報告 alert(e.message); } finally{ } }
page.html代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>myhtml</title> <script type="text/javascript" src="connect.js"></script> </head> <body> <script> connectToDB(); </script> </body> </html>
使用IE瀏覽器打開page.html文件,若出現以下結果,說明數據庫連接成功。
之后js代碼中執行了簡單的查詢SQL,結果如下:
可以遠程操作數據庫。
總結
本文說明了如何編寫html內聯js代碼連接遠程數據庫的方法。實際上,JavaScript因為安全性問題一般不會被用作連接數據庫,推薦使用java等服務端語言來編寫連接數據庫的代碼。
使用ODBC為應用程序連接數據庫的方法實際上也早已過時,在使用java、python等服務端語言編寫連接數據庫的代碼時,更推薦使用已封裝好的模塊或包,如mysql-connectoe-java-8.0.26.jar,pymysql 模塊等。