當前位置:
首頁 > 知識 > JDBC與JAVA資料庫編程

JDBC與JAVA資料庫編程


一、JDBC的概念

1、 JDBC (Java DataBase Connectivity) Java資料庫連接


a) 主要提供java資料庫應用程序的API支持

2、 JDBC的主要功能

a) 創建和管理與數據源的連接

b) 發送SQL數據命令到數據源

c) 提取並處理由數據源返回的結果集

3、 JDBC可分為兩層

a) 驅動程序管理介面

b) JDBC API

4、 Java.sql包中定義的常用基本的JDBC API


a) 類DriverManager:管理一組JDBC驅動程序的基本服務

b) 介面Connection:獲得與資料庫的連接

c) 介面Statement:用於執行靜態的SQL語句,並返回生成的結果集對象

d) 介面ResultSet:表示資料庫結果集的數據表,通常執行查詢資料庫的語句生成

e) 類SQLException:有關資料庫的異常操作

二、JDBC的基礎應用

1、編寫JDBC應用程序的基本步驟

a) 導入JDBC的包或包括JDBC的包

構建路徑(Building Path)-> 配置路徑

(b)載入JDBC驅動

1 //1.載入驅動

(c)建立與資料庫的連接

1 Connection conn = DriverManager.getConnection(url, user, password);

(d)執行SQL語句,與資料庫交互

//3.新建statement對象

(e)關閉建立的連接

各種關閉

2.實例

a.載入驅動程序

Class類中提供載入驅動的方法

Public static Class forName(String className)

Throws ClassNotFoundException

Oracle驅動類的描述符為:oracle.jdbc.driver.OracleDriver

b.建立資料庫的連接

DriverManager提供了getConnection方法可獲得指定資料庫的連接對象(Connecting conn):

Public static Connectioin getConnection(String url, String username, String pwd )throws SQLException

Oracle資料庫的url格式為:

Jdbc:oracle:thin:@<主機名或ip>:埠號:<資料庫名>

c.獲得Statement 對象(Statement st)

Connection類中提供獲得Statement對象的方法

Statement getStatement() throws SQLException

d.Statement類中提供可執行SQL命令的方法

Boolean execute(String SQL) throws SQLException

Result executeQuery(String SQL) throws SQLException

Int executeUpdate(String SQL) throws SQLException

e.ResultSet 可提供對結果集操作的方法

移動結果集操作指針

Boolean next() throws SQLException

由欄位名獲取其值

String getString(String columeName) throws SQLException

三:JDBC的高級應用

1.PreparedStatement介面是Statement的子介面,允許使用不同的參數多次使用同一個SQL語句

2.Connection介面提供了創建PreparedStatement對象的方法,可指定SQL語句

PreparedStatement preparedStatement(String Sql) throws SQLException

DEMO:

3.事務處理

事務:是由相關的SQL操作構成的一個完整的操作單元,該單元作為一個整體來使用要麼全做要麼不做

事務的四個屬性:

原子性:要麼全做,要麼全不做

一致性:事務使數據從一個一致性狀態大另一個一致性狀態

持久性:事務對資料庫的操作時永久的

隔離性:一個事務的操作不影響其他事務的操作即事務與事務之間是獨立的

4.java中的事務操作

Conn.setAutoCommit(false)//取消事務的自動提交

Conn.rollback();//事務的回滾

實戰演練

具:eclipse

MySQL5.6

MySQL連接驅動:mysql-connector-java-5.1.27.jar

載入驅動:

1. 在工程目錄中創建lib文件夾,將下載好的JDBC放到該文件夾下,如下圖所示:

JDBC與JAVA資料庫編程

2. 右鍵工程名,在java build path中的Libraries分頁中選擇Add JARs...,選擇剛才添加的JDBC,如下圖:

JDBC與JAVA資料庫編程

數據包準備:

在資料庫sqltestdb中創建如下數據表emp:


1234567 CREATE TABLE emp(empno INT(4) PRIMARY KEY,ename VARCHAR(10),job VARCHAR(9),hiredate DATE,sal FLOAT(7,2)) ;

添加數據

JDBC與JAVA資料庫編程

連接資料庫並讀取數據:

資料庫名稱:sqltestdb

數據包名稱:emp

埠號:3306

用戶名:root

密碼:root

JDBC與JAVA資料庫編程

1 package sqldemo;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8
9 public class main {
10
11 public static void main(String[] args) {
12 //聲明Connection對象
13 Connection con;
14 //驅動程序名
15 String driver = "com.mysql.jdbc.Driver";
16 //URL指向要訪問的資料庫名mydata17 String url = "jdbc:mysql://localhost:3306/sqltestdb";
18 //MySQL配置時的用戶名
19 String user = "root";
20 //MySQL配置時的密碼
21 String password = "123456";
22 //遍歷查詢結果集
23 try {
24 //載入驅動程序
25 Class.forName(driver);
26 //1.getConnection()方法,連接MySQL資料庫!!
27 con = DriverManager.getConnection(url,user,password);
28 if(!con.isClosed())
29 System.out.println("Succeeded connecting to the Database!");
30 //2.創建statement類對象,用來執行SQL語句!!
31 Statement statement = con.createStatement();
32 //要執行的SQL語句33 String sql = "select * from emp";
34 //3.ResultSet類,用來存放獲取的結果集!!
35 ResultSet rs = statement.executeQuery(sql);
36 System.out.println("-----------------");
37 System.out.println("執行結果如下所示:");

運行結果:


1234567891011121314 Succeeded connecting to the Database!-----------------執行結果如下所示:-----------------姓名 職稱-----------------李興華 經理張三 總監王五 廠長齊秦 書記張剛 組長曹操 財務李四 總裁資料庫數據成功獲取!!

增加、刪除和修改數據:

增加數據:


1234567891011121314151617 String name;String id;PreparedStatement psql;ResultSet res;//預處理添加數據,其中有兩個參數--「?」psql = con.prepareStatement("insert into emp (empno,ename,job,hiredate,sal) + "values(?,?,?,?,?)");psql.setInt(1, 3212); //設置參數1,創建id為3212的數據psql.setString(2, "王剛"); //設置參數2,name 為王剛psql.setString(3, "總裁");DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");Date myDate2 = dateFormat2.parse("2010-09-13");psql.setDate(4,new java.sql.Date(myDate2.getTime()));psql.setFloat(5, (float) 2000.3);psql.executeUpdate(); //執行更新

運行結果:

JDBC與JAVA資料庫編程

更新數據:


123456 PreparedStatement psql;//預處理更新(修改)數據,將王剛的sal改為5000.0psql = con.prepareStatement("update emp set sal = ? where ename = ?");psql.setFloat1,(float)5000.0); psql.setString(2,"王剛"); psql.executeUpdate();

更改結果:

JDBC與JAVA資料庫編程

刪除數據:


123456 PreparedStatement psql;//預處理刪除數據psql = con.prepareStatement("delete from emp where sal > ?");psql.setFloat(1, 4500);psql.executeUpdate();psql.close();

刪除結果:

JDBC與JAVA資料庫編程

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 青峰科技 的精彩文章:

網路TCP連接三次握手與四次揮手
35年编程史沉淀下来的8条宝贵经验
javaWeb框架Spring Boot API 版本許可權控制
linux命令-淺談ARP
簡潔的Java8-java8新特性詳解 編程語言

TAG:青峰科技 |

您可能感興趣

ACCESS資料庫
ICDE:POLARDB定義雲原生資料庫
TCGA資料庫mRNA&lncRNA數據提取
MATLAB學習教材與圖像處理資料
CFPS和CHARLS資料庫分析技巧大指南
SAP S/4 HANA Cloud資料庫加強AI能力
TCGA、GEO及SEER資料庫挖掘與應用學習會
AJAX 資料庫實例
阿里雲POLARDB資料庫為啥全線標配Intel「傲騰」?
3D建模軟體史話之一 「CG類」BIM收藏資料
PowerBI從SCCM資料庫中分析數據和KPI展現
混合雲利器:VMware 上可運行 AWS RDS 資料庫
【MYSQL】【SSM】資料庫管理
HTML5 Web SQL 資料庫
MySQL資料庫
DeBeers戴比爾斯ARIA光之舞限量珠寶資料手冊
JMeter 測試 MySQL 資料庫
AMD新款速龍CPU現身資料庫;小米MIX 2S大曝光
海賊王資料集生命卡:《VIVRE CARD》全書情報+翻譯(上)
SAS-你還在手動配置ODBC連接資料庫嗎