當前位置:首頁 » 數據倉庫 » 資料庫介面方案
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫介面方案

發布時間: 2022-09-23 14:44:13

① WEB網和資料庫的主要介面方式有哪四種

不理解你所說的是什麼意思.我按照自己的意思理解一下,就是前台(Asp.net,php,jsp)等和後台資料庫(sql server,oracle啥的)的連接
每種語言都有自己和後台資料庫的一組類庫,比如我是學.net的,連接資料庫有ado.net可以連接幾乎所有的主流資料庫,有一些比較偏的資料庫會自己提供類庫

而不同語言之間的訪問,比如我用asp.net想訪問java做的數據訪問層,現在比較通用的是通過web service,即一個與語言無關的中間層將其隔離

希望我的回答能有幫助~

② 資料庫介面技術是為了實現應用系統和資料庫管理系統的鏈接而出現的技術對嗎

對。
Microsoft推出的ODBCOpenDatabaseConnectivity技術,為異質資料庫的訪問提供了統一的介面。ODBC基於SQStructuredQueryLanguage,並把它作為訪問資料庫的標准。這個介面提供了最大限度的相互可操作性,一個應用程序可以通過一組通用的代碼訪問不同的資料庫管理系統。一個軟體開發者開發的客戶/伺服器應用程序不會被束定於某個特定的資料庫之上。ODBC可以為不同的資料庫提供相應的驅動程序。

③ 資料庫介面的資料庫介面技術

Microsoft推出的ODBC(Open Database Connectivity)技術 為異質資料庫的訪問提供了統一的介面。ODBC基於SQL(Structured Query Language),並把它作為訪問資料庫的標准。這個介面提供了最大限度的相互可操作性:一個應用程序可以通過一組通用的代碼訪問不同的資料庫管理系統。一個軟體開發者開發的客戶/伺服器應用程序不會被束定於某個特定的資料庫之上。ODBC可以為不同的資料庫提供相應的驅動程序。 什麼是ODBC ?
ODBC基於SQL(Structured Query Language),並把它作為訪問資料庫的標准。這個介面提供了最大限度的相互可操作性:一個應用程序可以通過一組通用的代碼訪問不同的資料庫管理系統。
與ODBC有關的名詞
ODBC驅動程序:是一個動態鏈接庫(DLL),用以將特定的開放式資料庫連接的數據源和另一個應用程序(客戶端)相連接。
ODBC數據源:作為數據源使用的資料庫或資料庫伺服器。ODBC數據源通過它們的數據源名稱來引用,或者通過具體引用ODBC驅動程序和伺服器名稱來引用。可以在Windows的控制面板中使用ODBC管理程序或rdoRegisterDataSource(一個ODBC API)方法來注冊命名的數據源。
ODBC驅動程序管理器:提供從主機語言到特定後端數據源驅動程序的介面。
ODBC API:資料庫廠商為程序設計者提供的直接訪問資料庫的一組函數。注意:這里要指出的是,雖然ODBC API提供了很多很方便而且強大的功能。但是通常來說ODBC API都比較難學,而且使用很容易出錯。雖然允許用ODBC API來操作ODBC句柄,但還是要小心,如果不正確地使用ODBC API,可能會導致不可預知的錯誤。例如,假如使用ODBC API代碼來關閉連接或釋放這些ODBC句柄中的任何一個,那麼RemoteData控制項或RDO的行為將是不可預知的。保存ODBC句柄以供備用也是沒有意義的,因為它們是可變的。 什麼是JDBC ?
JDBC(Java Data Base Connectivity,java資料庫連接)是一種用於執行SQL語句的Java API,可以為多種關系資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高級的工具和介面,使資料庫開發人員能夠編寫資料庫應用程序,同時,JDBC也是個商標名。
簡單地說,JDBC 可做三件事:、發送 操作資料庫的語句並處理結果。下列代碼段給出了以上三步的基本示例:
Connection con = DriverManager.getConnection(jdbc:odbc:wombat,login,
password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SELECT a, b, c FROM Table1);
while (rs.next()) {
int x = rs.getInt(a);
String s = rs.getString(b);
float f = rs.getFloat(c);
}
上述代碼對基於JDBC的資料庫訪問做了經典的總結。
這里簡單介紹下ODBC和JDBC,如果想詳細了解的同學可以單擊鏈接去相應詞條。

④ .net 資料庫訪問介面有哪些

.net資料庫訪問技術是ADO.net體系。主要有三大部分。
數據提供程序、DataSet、DataTable
數據提供程序介面有四個基類 Connection(連接資料庫) Command(執行SQL命令) DataAdapter(提取或填充數據) DataReader(讀取數據)
DataSet用來快速操作大量的數據
DataTable表示一個表。

⑤ 做個資料庫介面

9.Sql Server7.0/2000資料庫
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
::CoInitialize(NULL); // 初始化OLE/COM庫環境 ,為訪問ADO介面做准備

_RecordsetPtr m_pRecordset("ADODB.Recordset");
_ConnectionPtr m_pConnection("ADODB.Connection");

_bstr_t bstrSQL("select * from stu_info"); //查詢語句
char * query_cmd = "DELETE FROM stu_info WHERE sname = 』本拉登』";

try
{
// 創建Connection對象
m_pConnection.CreateInstance("ADODB.Connection");
// 設置連接字元串,必須是BSTR型或者_bstr_t類型
_bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;";
//若資料庫在網路上則Server為形如(192.168.1.5,3340)
//用戶sa和密碼123隻是針對我的庫
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!\n";
// 創建記錄集對象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的記錄
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);

_variant_t vsnum,vsname,vsage,vssex,vsmajor; //對應庫中的snum,sname,sage,ssex,smajor
cout << "學號 姓名 年齡 姓別 專業";
cout << "\n----------------------------------------------------------------\n";

while (!m_pRecordset->EndOfFile)
{
vsnum = m_pRecordset->GetCollect(_variant_t((long)0));//這兒給欄位編號和欄位名都可以
vsname = m_pRecordset->GetCollect("sname");
vsage = m_pRecordset->GetCollect("sage");
vssex = m_pRecordset->GetCollect("ssex");
vsmajor = m_pRecordset->GetCollect("smajor");
if (vsnum.vt != VT_NULL && vsname.vt != VT_NULL && vsage.vt != VT_NULL
&& vssex.vt != VT_NULL && vsmajor.vt != VT_NULL)
{
cout.setf(ios::left);
cout << setw(14) << (char*)(_bstr_t)vsnum;
cout << setw(14) << (char*)(_bstr_t)vsname;
cout << setw(8) << vsage.lVal;
cout << setw(8) << (char*)(_bstr_t)vssex;
cout <<setw(20) << (char*)(_bstr_t)vsmajor;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一條記錄
}
cout << "\n----------------------------------------------------------------\n";
cout << "\n請輸入你要添加的學生信息\n";
cout << "學號:";
cin >> student.snum;
cout << "\n姓名:";
cin >> student.sname;
cout << "\n年齡:";
cin >> student.sage;
cout << "\n姓別:";
cin >> student.ssex;
cout << "\n專業:";
cin >> student.smajor;
m_pRecordset->MoveFirst(); //移動到第一條記錄
m_pRecordset->AddNew(); ///添加新記錄
m_pRecordset->PutCollect("snum",_variant_t(student.snum));
m_pRecordset->PutCollect("sname",_variant_t(student.sname));
m_pRecordset->PutCollect("sage",_variant_t(student.sage));
m_pRecordset->PutCollect("ssex",_variant_t(student.ssex));
m_pRecordset->PutCollect("smajor",_variant_t(student.smajor));
m_pRecordset->Update();

m_pConnection->Execute(query_cmd,NULL,1); //用Execute執行sql語句來刪除
m_pRecordset->Close(); // 關閉記錄集
}
// 捕捉異常
catch(_com_error e)
{
// 顯示錯誤信息
cerr << "\nERROR:" << (char*)e.Description();//拋出異常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();

3.顯示表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL);
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb";
//_bstr_t varSource="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
_ConnectionPtr m_pConnection(_uuidof(Connection));
m_pConnection->Open(varSource,"","",adModeUnknow);
//打開屬性為默認(adModeRead(只讀),adModeWrite(可寫),adModeReadWrite(可讀寫)等)
_RecordsetPtr m_pSet(_uuid(Recordset));
try {
HRESULT hr=m_pSet->Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage());
}
if(SUCCESSED(hr))
{
//表打開成功
}
FieldsPtr p_fields=m_pSet->Fields;
FieldPtr p_field;
_variant_t var_index;
LPCSTR field_name;
int index=0;
_bstr_t bstr_field_name;
int countfields=p_fields->GetCount();
CString *Column=new CString[countfields];
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1);//IDC_LIST_TABLEDATA
VERIFY(pList);
pList->DeleteAllItems();
for(index=0;index<countfields;index++)
{
var_index.vt=VT_I4;
var_index.IVal=index;
p_field=p_fields->Item[var_index];
bstr_field_name=p_field->GetName();
field_name=(LPCSTR)bstr_field_name;
Column[index]=field_name;
int ColumnWidth=Column[index].GetLength()*15;
pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth);
}
int i=0;
_bstr_t vCol;
//pList->SetTextBkColor(RGB(122,200,122));
//pList->SetTextColor(RGB(0,0,200));
while(!m_pSet->adoEOF)
{
pList->Insert(i,atoi(i));
for(int j=0;j<countfields;j++)
{
vCol=m_pSet->GetCollect((long)j);
pList->SetItemText(i,j,vCol);
}
m_pSet->MoveNext();
i++;
}
CoUninitialize(NULL);

4.操作表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL);
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb";
//_bstr_t varSource="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
_ConnectionPtr m_pConnection(_uuidof(Connection));
m_pConnection->Open(varSource,"","",adModeUnknow);
//打開屬性為默認(adModeRead(只讀),adModeWrite(可寫),adModeReadWrite(可讀寫)等)
_RecordsetPtr m_pSet(_uuid(Recordset));
try {
HRESULT hr=m_pSet->Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage());
}
if(SUCCESSED(hr))
{
//表打開成功
}
FieldsPtr p_fields=m_pSet->Fields;
FieldPtr p_field;
_variant_t var_index;
LPCSTR field_name;
int index=0;
_bstr_t bstr_field_name;
int countfields=p_fields->GetCount();
CString *Column=new CString[countfields];
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1);//IDC_LIST_TABLEDATA
VERIFY(pList);
pList->DeleteAllItems();
for(index=0;index<countfields;index++)
{
var_index.vt=VT_I4;
var_index.IVal=index;
p_field=p_fields->Item[var_index];
bstr_field_name=p_field->GetName();
field_name=(LPCSTR)bstr_field_name;
Column[index]=field_name;
int ColumnWidth=Column[index].GetLength()*15;
pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth);
}
int i=0;
_bstr_t vCol;
//pList->SetTextBkColor(RGB(122,200,122));
//pList->SetTextColor(RGB(0,0,200));
while(!m_pSet->adoEOF)
{
pList->Insert(i,atoi(i));
for(int j=0;j<countfields;j++)
{
vCol=m_pSet->GetCollect((long)j);
pList->SetItemText(i,j,vCol);
}
m_pSet->MoveNext();
i++;
}
CoUninitialize(NULL);

6.關閉時斷開連接
::ExitInstance()
{
if (adStateOpen == ADOConn->State)
ADOConn->Close();
ADOConn.Release();
if(adStateOpen == m_pADOset->State)
m_pADOset->Close();
m_pADOset.Release();
return CWinApp::ExitInstance();
}

22.批量執行SQL和存儲過程
22.1、如果用ODBC訪問資料庫的話,可參考下列代碼:
CDatabase * pDatabase = new CDatabase;
TRY
{
pDatabase->OpenEx( _T("DSN=ODBCName;UID=%%1;PWD=%%2"), CDatabase::noOdbcDialog);
}
CATCH (CDBException, e)
{
delete pDatabase;
return;
}END_CATCH
SQL.Format("exec sp_Name");//有參數的話直接寫再後面
pDatabase->ExecuteSQL(SQL);
pDatabase->Close();
delete pDatabase;

22.2、用ADO調用存儲過程
_ConnectionPtr Conn = NULL;
_RecordsetPtr Rs = NULL;
_CommandPtr Cmd = NULL;
CoInitialize(NULL);
Conn.CreateInstance ( __uuidof(Connection));
Rs.CreateInstance (__uuidof(Recordset));
Cmd.CreateInstance (__uuidof(Command));
Conn->Open(L"db", L"sa", L"", adOpenUnspecified); //打開正常
//如下為_CommandPtr對象參數的賦值和調用
Cmd->ActiveConnection = Conn;
Cmd->CommandText = "SP_TEST";
//資料庫中實際存在這個測試存儲過程,select * from atable,不傳遞參數
Cmd->CommandType = adCmdStoredProc;
Cmd->Parameters->Refresh();
Rs = Cmd->Execute( NULL,NULL, adCmdUnknown ); //COM出錯。
//注釋掉的代碼為直接的SQL語句提交,運行正確。
//Cmd->ActiveConnection=Conn;
//Cmd->CommandText = "select * from atable";
//Cmd->CommandType = adCmdText;
//Cmd->Parameters->Refresh();
//Rs = Cmd->Execute(NULL,NULL,adCmdUnknown);
Rs->Close();
Conn->Close();
CoUninitialize();

⑥ 資料庫介面的實現邏輯是怎樣的

一般的資料庫操作都是封裝好的,不外乎創建連接,打開連接,執行操作,關閉連接幾個步驟,具體看是使用的哪種資料庫,不同資料庫驅動不同,具體實現代碼也不一樣。

⑦ 網站的資料庫查詢介面怎麼做

jsp網站,想提供介面給其他項目獲取資料庫的數據方法如下:
jsp接收參數,就跟java類接收參數一樣,用request.getParameter("參數名");獲取
網頁游戲發送上來的參數,然後調用資料庫,把需要的信息查詢出來,通過字元串或者xml或者
json總之一切你想要的數據格式,返回出來就可以了。
返回出來實現:直接利用outputstream對象write出來即可,最後記得關閉。
java.io.OutputStream os = response.getOutputStream();
os.write(buf, 0, readSize);

⑧ 數據介面

系統在運行中將用到大量的數據資料,必須在設計初始就明確各類數據標准以及各子系統的數據介面。根據各子系統設計的數據項需求及產生的成果數據項,確定各項數據的數據表,定義表結構,進行代碼設計,然後由資料庫系統實施,同時形成文檔,作為系統的數據標准,統一執行。

數據的分類、編碼設計、資料庫的設計、地圖制圖、數據錄入和質量檢驗,均遵循國家和行業主管部門的標准、規范、規程;如沒有統一的規范規程,則參照相關的規程進行規范化設計。系統有關的數據定義全部形成文檔,作為技術規范,統一使用。

各子系統在設計時應當明確與相關子系統的數據關系,提出相關子系統必須提交的數據表要求和系統運行過程中的提交時間,對應子系統按照該提交數據要求在系統中進行相應設計和開發,保證數據流動的通暢,這是基於數據的系統集成方案的關鍵,是數據平台介面設計的重要依據。系統間數據關系須形成文檔,作為系統間數據介面標准規范,統一執行。

數據關系與數據標准相輔相成,共同定義了數據平台與各個子系統之間的輸入、輸出介面。在數據介面設計中應重點考慮以下幾個方面:

(1)遙感數據與圖形數據的介面:利用圖形配准技術,予以解決。遙感數據是動態監測專題圖件產生的基礎,必須經過坐標配准,才能產生專題圖件。配准過程由遙感動態監測子系統執行,需要應用綜合資料庫中的地形圖數據。在配准後遙感數據與圖形數據的套合依據空間坐標進行。

(2)空間數據與屬性數據的介面:利用關鍵字建立聯系。在數據建庫過程中依據數據標准有關文檔規定建立圖形庫和屬性庫結構,確定關鍵欄位,同時定義關鍵欄位編碼方案,保證關鍵欄位唯一性。在數據採集過程中對關鍵欄位賦予代碼。系統維護過程中的數據採集也必須依據編碼方案對關鍵欄位賦值。在應用系統中使用時只需建立圖形庫與屬性庫間的關聯即可。

( 3) 子系統之間數據的介面: 各子系統之間數據的交換通過資料庫進行,所以子系統間數據介面本質上是子系統與後台資料庫的介面; 在建立資料庫時,已經由資料庫管理系統依據系統間數據關系建立了介面。

系統內數據關系包括:

數據管理與資料庫子系統接受業務處理與信息服務子系統錄入的有關基礎信息、遙感動態監測子系統輸入的遙感數據及各子系統產生的成果數據,為各子系統提供綜合基礎數據、專題數據和成果數據。

遙感動態監測子系統需要資料庫系統管理的遙感數據、地形圖數據和歷史專題數據。

生態專業分析子系統需要遙感動態監測子系統產生的專題圖件和綜合資料庫中的歷史專題圖件以及屬性資料。

業務處理與信息服務子系統需要資料庫子系統管理的綜合基礎數據和各專業應用子系統產生的成果數據。

⑨ 如何在應用層和資料庫之間建設數據介面

【答案】A、B、D【答案解析】資料庫管理系統具有以下特點:(1)採用復雜的數據模型表示數據結構,數據冗餘小,易擴充,實現了數據共享;(2)具有較高的數據和程序獨立性,資料庫的獨立性有物理獨立性和邏輯獨立性;(3)資料庫系統為用戶提供了方便的用戶介面;(4)資料庫系統提供4個方面的數據控制功能,分別是並發控制、恢復、完整性和安全性,資料庫中各個應用程序所使用的數據由資料庫系統統一規定,按照一定的數據模型組織和建立,由系統統一管理和集中控制;(5)增加了系統的靈活性。