java與資料庫
Java可以使用JDBC訪問資料庫,也可以使用各類ORM框架訪問資料庫,但這些框架最終還是通過JDBC訪問資料庫,它們只是封裝了資料庫操作,而使得開發者可以減少這部分消耗。因此,本文只講解JDBC訪問方式。
JDBC訪問一般分為如下流程:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),這通過java.lang.Class類的靜態方法forName(StringclassName)實現。
例如:
try{
//載入MySql的驅動類
Class.forName("com.mysql.jdbc.Driver");
}catch(e){
System.out.println("找不到驅動程序類,載入驅動失敗!");
e.();
}
成功載入後,會將Driver類的實例注冊到類中。
2、提供JDBC連接的URL
連接URL定義了連接資料庫時的協議、子協議、數據源標識。
書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&=gbk;
useUnicode=true:表示使用Unicode字元集。如果設置為
gb2312或GBK,本參數必須設置為true。=gbk:字元編碼方式。
3、創建資料庫的連接
要連接資料庫,需要向java.sql.請求並獲得Connection對象,該對象就代表一個資料庫的連接。
使用的(Stringurl,Stringusername,Stringpassword)方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
Stringurl="jdbc:mysql://localhost:3306/test";
Stringusername="root";
Stringpassword="root";
try{
Connectioncon=
.(url,username,password);
}catch(se){
System.out.println("資料庫連接失敗!");
se.();
}
4、創建一個Statement
要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過實例實現。
3、執行資料庫存儲過程。通常通過實例實現。
具體的實現方式:
Statementstmt=con.();
PreparedStatementpstmt=con.prepareStatement(sql);
CallableStatementcstmt=con.prepareCall("{CALLdemoSp(?,?)}");
5、執行慧轎SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery、executeUpdate和execute
1、ResultSetexecuteQuery(StringsqlString):執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象。
2、intexecuteUpdate(StringsqlString):用於執行INSERT、UPDATE或DELETE語句以及SQLDDL語句,如:CREATETABLE和DROPTABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具芹尺體實現的代碼:
ResultSetrs=stmt.executeQuery("SELECT*FROM...");
introws=stmt.executeUpdate("INSERTINTO...");
booleanflag=stmt.execute(Stringsql);
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提嫌碧高供了對這些行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
Stringname=rs.getString("name");
Stringpass=rs.getString(1);//此方法比較高效(列是從左到右編號的,並且從列1開始)
}
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs!=null){//關閉記錄集
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(stmt!=null){//關閉聲明
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(conn!=null){//關閉連接對象
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
Ⅱ Java中如何實現與後台資料庫的連接
用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如何連接資料庫
1、首先第一步就是在網上下載一個mysql的資料庫驅動jar包,類似mysql-connector-java-5.1.20-bin.jar。新建一個JAVA項目,在項目下面創建一個lib文件夾,將驅動jar文件拷貝到lib文件夾中。
2、光是拷貝到這里還不夠,需要將該JAR包加入到項目的buildpath變數中。滑鼠右邊-》buildpath->configurebuildpath..在彈出的界面中點擊Addjars選中驅動jar包將之添加到buildpath變數中。
3、然後創建一個JAVA文件寫連接資料庫的代碼。需要聲明四個變數(靜態的,一般不會修改)。url是資料庫的網路地址及其資料庫的名稱。name驅動的名稱(不同資料庫是不同的,別人定義的固定寫法),user資料庫用戶名password資料庫連接密碼。
4、接下來就是通過資料庫連接創建Connection對象,TestDBHelper類的構造方法傳入sql語句,那樣在使用的時候就可以直接New對象然後傳入SQL語句執行了。記得寫一個關閉連接的方法,每次訪問資料庫之後必須關閉連接。
5、接下來就是寫main方法測試資料庫連接,SQL語句執行的結果集是放在ResultSet對象中的,如果要取裡面的內容就需要循環依次取出。使用完拍罩之後記得關閉資料庫連接。
6、最後就是查看控制台的輸出信息,比較和資料庫表中的信息是否一致。另外我這里的表只有兩個欄位,如果有多個欄位按照ret.getString(2);ret.getString(3);依次往後面取就可以了。
拓展資料:
Java是由Sun公司於1995年5月推出的面向對象的程序設計語言。
Java繼承了C++語言面向對象技術的核心,又舍棄了C++語言中的指針、運算符重載以及多重繼承的特性,同時引入了泛型編程、類型安全的枚舉等特性,使Java成為簡手賀備單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言。
隨著互聯網的迅猛畢毀發展,Java已經成為重要的網路編程語言,被廣泛應用於企業級Web應用開發和移動應用開發。
Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。例如,Java不支持goto語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載(overload)和多繼承特徵,並且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。
Ⅳ javaweb與資料庫相連,具體怎麼做(javaweb項目怎麼連接資料庫)
1.首先要移動mysql-connector-java-5.1.44-bin.jar到tomactde的lib目錄下(我的目錄是這樣:F: omcatapache-tomcat-7.0.63lib)這是一個連接資料庫要用到包,一般在下載mysql的時候選擇配置會下載,然旅配晌後移動到tomact的lib下;
2.在你賣明要連接資料庫的項目中新建一個jsp文件,將下列代碼復制進去;
<%@pagecontentType="text/html;charset=UTF-8"language="java"%<<%@pageimport="com.mysql.jdbc.Driver"%<<%@pageimport="java.sql.*"%/使用獲取資料庫連接,其中返回的Connection就代表了Java程序和資料庫的連接<%StringdriverName="com.mysql.jdbc.Driver";StringuserName="root";//你的資料庫用戶名StringpassWorld="your_password";//你的資料庫密碼StringdbName="test";//資料庫名稱StringtableName="abc";//表的名稱Stringurl="jdbc:mysql://localhost/"dbName"?user="userName"&password="passWorld;try{Class.forName("com.mysql.jdbc.Driver").newInstance();Connectionconnection=.(url);Statementstatement=connection.();Stringsql="SELECT*FROM"tableName;ResultSetresult=statement.(sql);rmate=result.getMetaData();intnumCount=rmate.();while(result.next()){out.print(result.getInt(2));out.print(result.getString(1));//out.print(result.getInt(3));out.print("
");}result.close();statement.close();connection.close();}catch(Exceptione){e.getMessage();}%<
3.然後運行該代碼就可以在頁面看見你的數據了。在這里同時提供一個可以在IDEA快速查看資料庫的方法;
4.點擊IDEA右側的DataBase,進入如下頁面,點擊要查看的資料庫類型,我是MySQL;
5.然後進入如下界面,輸入資料庫名稱,賬號,密碼,然後先測試一下連接,測試通過後,就可以點擊OK;
6.然後就可以查看你的數據信息啦。
拓展資料:
JavaWeb,是用Java技術來解決相關web互聯網領拆鋒域的技術總和。web包括:web伺服器和web客戶端兩部分。Java在客戶端的應用有javaapplet,不過使用得很少,Java在伺服器端的應用非常的豐富,比如Servlet,JSP和第三方框架等等。Java技術對Web領域的發展注入了強大的動力。
Java的Web框架雖然各不相同,但基本也都是遵循特定的路數的:使用Servlet或者Filter攔截請求,使用MVC的思想設計架構,使用約定,XML或Annotation實現配置,運用Java面向對象的特點,面向對象實現請求和響應的流程,支持Jsp,Freemarker,Velocity等視圖。