Java可以使用JDBC訪問資料庫,也可以使用各類ORM框架訪問資料庫,但這些框架最終還是通過JDBC訪問資料庫,它們只是封裝了資料庫操作,而使得開發者可以減少這部分消耗。因此,本文只講解JDBC訪問方式。
JDBC訪問一般分為如下流程:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入Mysql的驅動類
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驅動程序類 ,載入驅動失敗!");
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例注冊到DriverManager類中。
2、提供JDBC連接的URL
•連接URL定義了連接資料庫時的協議、子協議、數據源標識。
•書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字元集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
•要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,該對象就代表一個資料庫的連接。
•使用DriverManager的getConnectin(String url,String username,String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("資料庫連接失敗!");
se.printStackTrace() ;
}
4、創建一個Statement
•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、執行SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute
1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具體實現的代碼:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
•ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些行中數據的訪問。
•使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1); // 此方法比較高效(列是從左到右編號的,並且從列1開始)
}
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
❷ 如何分析網站訪問數據
通過對有效的用戶行為分析,如來自搜索引擎的關鍵字訪問統計、哪些頁面最受歡迎及為什麼受歡迎、又有哪些頁面不受歡迎其原因在哪等,找到人們如何發現及以什麼方式瀏覽我們網站的規律,從而能夠為我們改善訪問者的體驗,改進網站以更好地滿足訪問者的要求提供基本思路,這樣,才可以改進客戶服務並使網站更具吸引力。
對網站訪問情況分析應首先著眼於如下幾方面:
用戶來源
用戶通過什麼途徑到達我們網站的,是其他網站的鏈接還是搜索引擎?來自搜索引擎的訪問量又是分別來自哪家搜索引擎的?等等。
用戶在搜索引擎中使用什麼樣的關鍵詞找到我們網站的?通過對此項內容的分析,可以讓我們找到關鍵詞中的規律,如我們選定的關鍵詞是不是有效,是否存在與內容相關甚至更佳但被忽略的關鍵詞等。在此基礎上,更改、調整或強化相應關鍵詞,以求達到更好的網站優化效果。
最具吸引力的頁面
網站訪問量最大的頁面是哪些?通過分析這些網頁的關鍵詞、Onpage優化元素等可以讓我們更准確地把握搜索引擎的優化規律,同時,這些網頁也揭示出用戶瀏覽時希望查找何種類型內容的信息。
要達到更好的網站優化效果,就需要將從這類頁面中歸納出的優化技巧更普遍地應用到其他網頁上;要使網站更具吸引力,就需要突出顯示此類內容,等等。
最不受歡迎的網頁
哪些網頁是無用頁面?或基本上沒人訪問?
分析其原因,如果是搜索引擎未收錄該頁面或該頁面在SERP中的排名很低導致用戶無法在搜索引擎中找到該頁,那麼,需要改進該頁的優化措施;如果是該頁在SERP中存在且排名尚可,但訪問人數卻不理想,則可能該頁內容屬於絕大多數用戶不感興趣的了,這就需要調整網站中相應內容所佔比例。
用戶在網站內的瀏覽行為
用戶在網站上停留多長時間?他們如何瀏覽網站?
對此的分析首先可以幫助我們發現網站結構是否合理,網站內的導航是否有效。要知道,很多時候甚至網站導航和信息路徑之間的不一致也會造成用戶瀏覽的困難。
對網站結構方面的分析還包括用戶是否跳過多個頁面,或者僅在某個頁面上停留較短時間即離開網站,這往往意味著用戶難以找到他們所需的具體內容,或者,也可能表示網站頁面的載入時間過長,導致用戶失去興趣。
❸ 什麼是數據訪問
數據訪問 (Data Access),是應用程序鏈接到數據源 (Data Source) 訪問數據的一種行為 (Behavior),在大多數的應用程序中,經常會需要使用到數據,而這些數據可能來自很多不同類型的來源,像是資料庫 (Database),網路數據源,本機文件,或是異質性的來源 (例如在 Mainframe 上的 IBM DB2 資料庫),經由一層 (或多層) 中介代碼或中間件 (Middleware) 進入數據源中,並且取出數據後送回應用程序中來處理。
❹ 簡述C語言中直接訪問數據方式和間接訪問數據方式的區別
C語言具有獲取變數地址和操作地址的能力,而用來操作地址的這種特殊數據就需要使用指針。指針是C的核心思想,是否可以熟練運用指針是是否掌握C語言的標志。
指針概述
指針是一種數據類型,它的值表示內存地址,指針數據類型聲明的變數是指針變數,使用指針變數可以對內存空間進行操作。在C中,對內存空間的訪問有兩種訪問方式,直接訪問和間接訪問。
1.直接訪問
按照C的方式,如果定義一個變數,系統會給這個變數分配一塊內存,變數有兩個屬性,變數值和變數地址。變數地址指示了該變數在內存中的存儲位置,變數值是這塊內存中的內容。要訪問這塊內存空間上的內容,可以直接使用變數名。
2.間接訪問
間接訪問的含義是先從其它內存空間獲得要訪問的內存地址,根據得到的地址訪問目的地址。
❺ C語言中直接訪問數據方式和間接訪問數據方式區別
直接訪問數據和間接訪問數據 直接訪問數據是指通過變數名直接使用變數數據,我們以前編寫的程序,都是用這種方式訪問數據。例如: int i; scanf("%d",&i); printf("%d",i); 間接訪問數據是指通過指針變數去訪問其他變數數據,這是C語言中大量使
❻ 訪問資料庫的方式有哪些啊
在ASP中可以通過三種方式訪問資料庫:
1、IDC(Internet Database Connector)方式;
2、ADO(ActiveX Data Objects)方式;
3、RDS(Remote Data Service)方式。
這三種訪問方式對資料庫的訪問都是由Internet Information Server完成的。通過Web瀏覽器用HTTP協議向IIS(Internet信息伺服器)發送請求,IIS執行對資料庫的訪問,並返回一個HTML格式的文檔響應
❼ 資料庫訪問是什麼
ps -ef | grep ora_
sqlplus / as sysdba
startup 然後想訪問什麼就打什麼
❽ 資料庫如何訪問
關於如果訪問的問題分3步吧
1.贈送方應該告訴你放置你資料庫的伺服器地址,以及資料庫的用戶名和密碼,不過一般用戶名和密碼是你提供給贈送方,他們幫你設置好的。
2.你本地裝有MYSQL和MSSQL資料庫。
3.對本地資料庫進行訪問遠程資料庫的設置。
最後一步要自己具體操作的。
一般來說資料庫的伺服器和網站的伺服器是分開的,你說的自行建立文件夾當作資料庫我不太明白你到底是什麼意思,如果你用的是access資料庫,就可以方便地在本地建立。
❾ 如何用sql server 訪問資料庫
用sql server 訪問資料庫整理如下:
SQL Server默認是不允許遠程連接的,如果想要在本地用SSMS連接遠程伺服器上的SQLServer2012資料庫,需要確認以下環節:
1)如果是工作組環境,則需要使用SQL Server身份驗證方式
2)如果是Windows域環境,則可使用Windows身份驗證或者SQL Server身份驗證
現在以工作組環境下SQL Server身份驗證方式為例:
1)啟用SQLServer身份驗證模式進行登錄。
❿ 如何直接訪問網站的資料庫
樓上的這種問題我也遇到過,往往是設計網站界面視圖的人沒有考慮到所有的需求,提供的資料庫查詢不夠靈活。
確實有可能找到辦法去訪問這個資料庫,不過應該提醒樓主,網站做界面的目的出了美觀方便外,就是要限制用戶不訪問,所以通過非正常途徑訪問就要承擔一定的責任了。
具體方法有:
1.理想方法:得到資料庫的地址,例如樓上說的把mdb文件直接下載下來。當然很少有網站用access做資料庫的,一般情況是需要知道資料庫IP地址,資料庫類型,庫名,用戶名和密碼,然後通過toad等客戶端軟體來訪問。
既然是理想方法,這種情況不太可能發生,除非你是內部人士,可以知道很多信息。因為通常資料庫伺服器會放在區域網上,不能被外部訪問到。
2.實際方法:採用SQL注入等黑客技術。SQL注入是最簡單的黑客技術了,不過由於簡單威力也不會很大,要求網站設計對於安全的考慮不周,存在漏洞才行。
由於網站設計不周,就會在出錯或者某些情況下暴露出資料庫表結構的一些內幕,這樣就可以寫出你想要的SQL命令,把它插入到Web表單遞交,或者頁面請求的查詢字元串中,最終達到欺騙伺服器執行的目的。
如果樓主想了解更多,可以學學黑客知識,祝樓主好運!