溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Tomcat配置Web程序幾種方式

發(fā)布時(shí)間:2020-07-20 19:09:56 來源:網(wǎng)絡(luò) 閱讀:298 作者:ld0807 欄目:數(shù)據(jù)庫

原文來自搬磚工,如需轉(zhuǎn)載請(qǐng)注明出處


我們常用的是java的JDBC,因此這里就以JDBC為例總結(jié)一下java數(shù)據(jù)庫操作常用的一些內(nèi)容

一、數(shù)據(jù)庫驅(qū)動(dòng)加載

首先,我們知道JDBC是以java數(shù)據(jù)庫驅(qū)動(dòng)為主要實(shí)現(xiàn)機(jī)制進(jìn)行數(shù)據(jù)庫操作的,每個(gè)類型的數(shù)據(jù)庫都有不同的數(shù)據(jù)庫驅(qū)動(dòng)。常用的數(shù)據(jù)庫驅(qū)動(dòng)加載如下:(驅(qū)動(dòng)可到官網(wǎng)下載)

1.Oracle8/8i/9iO數(shù)據(jù)庫(thin模式)

Class.forName("Oracle.jdbc.driver.OracleDriver").newInstance();

2.mysql數(shù)據(jù)庫

Class.forName("com.mysql.jdbc.Driver").newInstance();

3.DB2數(shù)據(jù)庫

Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();

4.Sql Server數(shù)據(jù)庫

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //Sql Server7.0/2000數(shù)據(jù)庫
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //Sql Server2005/2008數(shù)據(jù)庫

二、建立連接

數(shù)據(jù)庫操作先需要與數(shù)據(jù)庫建立連接,然后從數(shù)據(jù)庫中讀取我們需要的數(shù)據(jù)

1.Oracle8/8i/9iO數(shù)據(jù)庫(thin模式)

String url="jdbc:oracle:thin:@localhost:1521:orcl"; 
String user="root"; 
String password="root"; 
Connection conn=DriverManager.getConnection(url,user,password);

2.mysql數(shù)據(jù)庫

String url="jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312"; 
Connection conn=DriverManager.getConnection(url);

3.DB2數(shù)據(jù)庫

String url="jdbc:db2://localhost:5000/sample"; 
String user="amdin" 
String password=-""; 
Connection conn=DriverManager.getConnection(url,user,password);

4.Sql Server數(shù)據(jù)庫

String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
String user="sa"; 
String password=""; 
Connection conn=DriverManager.getConnection(url,user,password);

三、執(zhí)行SQL語句

根據(jù)條件進(jìn)行數(shù)據(jù)庫操作

//建立Statement對(duì)象 
Statement stmt=conn.createStatement(); 
//建立PreparedStatement對(duì)象 
String sql="select * from user where userName=? and password=?"; 
PreparedStatement pstmt=Conn.prepareStatement(sql); 
pstmt.setString(1,"root"); 
pstmt.setString(2,"root"); 
//做好準(zhǔn)備工作之后就可以執(zhí)行sql語句了,執(zhí)行sql語句:
String sql="select * from users"; 
ResultSet rs=stmt.executeQuery(sql); 
//執(zhí)行動(dòng)態(tài)SQL查詢 
ResultSet rs=pstmt.executeQuery(); 
//執(zhí)行insert update delete等語句,先定義sql 
stmt.executeUpdate(sql);

 

四、處理結(jié)果集

把數(shù)據(jù)庫查詢出來的數(shù)據(jù)進(jìn)行處理,得到我們需要的內(nèi)容

while(rs.next) { 
System.out.println("你的第一個(gè)字段內(nèi)容為:"+rs.getString("Name")); 
System.out.println("你的第二個(gè)字段內(nèi)容為:"+rs.getString(2)); 
}

五、關(guān)閉數(shù)據(jù)庫連接

操作完數(shù)據(jù)庫一定要記得關(guān)閉數(shù)據(jù)庫連接,不然不造成資源浪費(fèi)。當(dāng)連接達(dá)到一定數(shù)目的時(shí)候,讀取數(shù)據(jù)庫速度將會(huì)降低。

依次將ResultSet、Statement、PreparedStatement、Connection對(duì)象關(guān)閉,釋放所占用的資源. 

rs.close(); 
stmt.clost(); 
pstmt.close(); 
con.close();

六、數(shù)據(jù)庫事務(wù)

事務(wù)是現(xiàn)代數(shù)據(jù)庫理論中的核心概念之一。如果一組處理步驟或者全部發(fā)生或者一步也不執(zhí)行,我們稱該組處理步驟為一個(gè)事務(wù)。當(dāng)所有的步驟像一個(gè)操作一樣被完整地執(zhí)行,我們稱該事務(wù)被提交。由于其中的一部分或多步執(zhí)行失敗,導(dǎo)致沒有步驟被提交,則事務(wù)必須回滾到最初的系統(tǒng)狀態(tài)。

事務(wù)必須服從ISO/IEC所制定的ACID原則。

什么是ACID原則?

ACID是原子性(atomicity)、一致性(consistency)、隔離性 (isolation)和持久性(durability)的縮寫。

1.事務(wù)的原子性表示事務(wù)執(zhí)行過程中的任何失敗都將導(dǎo)致事務(wù)所做的任何修改失效。

2.一致性表示 當(dāng)事務(wù)執(zhí)行失敗時(shí),所有被該事務(wù)影響的數(shù)據(jù)都應(yīng)該恢復(fù)到事務(wù)執(zhí)行前的狀態(tài)。

3.隔離性表示在事務(wù)執(zhí)行過程中對(duì)數(shù)據(jù)的修改,在事務(wù)提交之前對(duì)其他事務(wù)不可見。

4.持久性表示當(dāng)系統(tǒng)或介質(zhì)發(fā)生故障時(shí),確保已提交事務(wù)的更新不能丟失。持久性通過數(shù)據(jù)庫備份和恢復(fù)來保證。

JDBC 事務(wù)是用 Connection 對(duì)象控制的。JDBC Connection 接口( java.sql.Connection )提供了兩種事務(wù)模式:自動(dòng)提交和手工提交。 

java.sql.Connection 提供了以下控制事務(wù)的方法: 

public void setAutoCommit(boolean) 
public boolean getAutoCommit() 
public void commit() 
public void rollback()

使用 JDBC 事務(wù)界定時(shí),您可以將多個(gè) SQL 語句結(jié)合到一個(gè)事務(wù)中。JDBC 事務(wù)的一個(gè)缺點(diǎn)是事務(wù)的范圍局限于一個(gè)數(shù)據(jù)庫連接。一個(gè) JDBC 事務(wù)不能跨越多個(gè)數(shù)據(jù)庫。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI