亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中的JDBC基本知識點都有哪些呢

發布時間:2021-09-18 15:26:12 來源:億速云 閱讀:149 作者:柒染 欄目:編程語言

java中的JDBC基本知識點都有哪些呢,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

jdbc做為最基礎也最重要的javaAPI之一,其意義無言自明。作為java語言的初級使用者,免不了的要與數據庫打交道,而操作數據庫的最簡單工具可以說就是jdbc了。并且編碼者如果想學習掌握更高級的數據庫操作技術比如說orm框架例如hibernate或者mybatis等,對其熟悉也是有事半功倍的效果。本著方便自己幫助他人的目的現把網上查找到的jdbc的基本知識點整理如下,

jdbc編程步驟:

注冊加載一個Drvier驅動:

Class.forName("oracle.jdbc.driver.OracleDriver");

創建數據庫連接

String url="jdbc:oracle:thin:@172.16.0.6:1521:tangjl";
String user="openlab";
String password="open123";
Connection Con=DriverManager.getConnection(url,user,password);

Connection 連接是通過DriverManager的靜態方法getConnection方法得到的這個方法的實質時把參數傳到實際的Dirver中的connect()方法中來獲得數據庫連接.

Jdbc:oracle:this:(協議)@xxx.xxx.xxx:xxx(ip地址及端口號):xxx(使用數據庫名)

Mysql的url是jdbc:mysql://localhost:3306/test

獲得一個statement對象(PreparedStatement)

String sql="select * from a_yyy";
Statement s=con.createStatment();
PreparedStatement ps=con.prepareStatement(sql);

通過Statement執行sql語句:

Statement接口代表了一個數據庫的狀態,在向數據庫發送相應的SQL語句時,都需要創建Statement接口或者PreparedStatement接口。在具體應用中,Statement主要用于操作不帶參數(可以直接運行)的SQL語句,比如刪除語句、添加或更新。

Sta.execute():適合任何語句

sta.executeQuery(sql):適合查詢語句.返回一個查詢結果集.

sta.executeUpdate(sql);適合增刪改創建語句,返回值為影響記錄的條數

//////////////////////////////////////////////////

PreparedStatement:預編譯的Statement .

若是PreparedStatement:得到ps之后:

同樣的,若是增刪改創建的就用ps.executeUpdate();若是查詢則用ps.executeQuery()返回一個結果集;

預編譯的PreparedStatement,對于執行同構的sql語句來說,它的效率比較高,提升性能.

第一步:通過連接獲得PreparedStatement對象,用帶占位符(?)的sql語句構造。

PreparedStatement pstm = con.preparedStatement(“select * from test where id=?”);

第二步:設置參數

pstm.setString(1,“ganbin”);

pstm.setDate(2,date);

第三步:執行sql語句

Rs = pstm.excuteQuery();

statement發送完整的Sql語句到數據庫不是直接執行而是由數據庫先編譯,再運行,而PreparedStatement是先發送帶參數的Sql語句,再發送一組參數值.如果是同構的sql語句,PreparedStatement的效率要比statement高。而對于異構的sql則兩者效率差不多。

同構:兩個Sql語句可編譯部分是相同的,只有參數值不同。

異構:整個sql語句的格式是不同的

注意點:1、使用預編譯的Statement編譯多條Sql語句一次執行

2、可以跨數據庫使用,編寫通用程序

              3、能用預編譯時盡量用預編譯

處理查詢結果集:

只有執行了select語句才有結果集

六關閉數據源

關閉細節:最先得到的,最后關閉.

元數據:是關于數據的信息,例如類型或者容量,通過JDBC API 可以訪問:

1 數據庫元數據:

使用Connection.getMetadata方法返回DataBaseMetaData引用.

2 結果集元數據
a使用ResultSet.getMetadata方法返回ResultSetMetaData引用

B能使用getColumnCount等類的方法獲取結果集信息.(查api)

事務

事務處理三步曲:

① connection.setAutoCommit(false); //把自動提交關閉

② 正常的DB 操作//若有一條SQL 語句失敗了,自動回滾

③ connection.commit() //主動提交或connection.rollback() //主動回滾

完整代碼:

try{
   con.setAutoCommit(false); //step1 把自動提交關閉
   Statement stm = con.createStatement();
   stm.executeUpdate("insert into person(id, name, age) values(520, 'X-Man', 18)");
   stm.executeUpdate("insert into Person(id, name, age) values(521, 'Super', 19)");
   //step2 正常的DB 操作
   con.commit(); //step3 成功主動提交
} catch(SQLException e){
   con.rollback();//step3 失敗則主動回滾
}

元數據:

JDBC通過元數據(MetaData)來獲得具體的表的相關信息,可以查詢數據庫中有哪些表,表有哪些字段,以及字段的屬性等.MetaData中通過一系列getXXX將這些信息返回給我們。

數據庫元數據 DatabaseMetaData 使用connection.getMetaData()獲得

MetaData包括: 包含了關于數據庫整體元數據信息。 

結果集元數據 ResultSetMetaData 使用resultSet.getMetaData()獲得

比較重要的是獲得表的列名、列數等信息。

結果集元數據對象:ResultSetMetaData meta = rs.getMetaData();

字段個數:meta.getColomnCount();

字段名字:meta.getColumnName();

字段JDBC類型:meta.getColumnType();

字段數據庫類型:meta.getColumnTypeName();

數據庫元數據對象:DatabaseMetaData dbmd = con.getMetaData();

數據庫名=dbmd.getDatabaseProductName();

數據庫版本號=dbmd.getDatabaseProductVersion();

數據庫驅動名=dbmd.getDriverName();

數據庫驅動版本號=dbmd.getDriverVersion();

數據庫Url=dbmd.getURL();

該連接的登陸名=dbmd.getUserName();

關于java中的JDBC基本知識點都有哪些呢問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新源县| 始兴县| 白水县| 洮南市| 远安县| 平和县| 综艺| 柘城县| 深泽县| 永善县| 无为县| 舟山市| 民乐县| 永丰县| 得荣县| 隆林| 霞浦县| 湘潭市| 石屏县| 铁岭县| 临邑县| 封丘县| 韶关市| 鹤峰县| 武汉市| 安阳市| 临江市| 佛学| 柯坪县| 牟定县| 清新县| 明溪县| 台北市| 九龙坡区| 永州市| 大宁县| 固原市| 岳阳市| 太保市| 荥阳市| 洛南县|