SlideShare a Scribd company logo
JDBC 資料庫存取方式
多重執行緒
JDBC是什麼
•Java Database Connectivity
•Java 標準API的非相依性的資料庫連接方式
►一支程式, 適用於不同的資料庫
•Package: java.sql
JDBC 運用程序
•建立與資料庫的連線
•建構出SQL 敘述句物件
•執行SQL查詢
•顯示查詢結果
Calling Java Application
JDBC API
JDBC Driver Manager
JDBC – ODBC Bridge
(Type 1 Driver)
ODBC driver
Database library APIs
Database
C 運用程序 – 常用JDBC驅動類型
•JDBC-ODBC橋接驅動(JDBC-ODBC Bridge
Driver)
•JDBC原生API(JDBC-Native API)
•100% pure Java
建立測試環境 - MySQL
•Windows: EasyPHP
•Mac: MAMP
•Linux: LAMP
建立測試環境 - MySQL
•建立資料庫
►Create database mytest
•建立資料表
►Create table myuser (id integer,name varchar(20))
•建立使用者
►Create user ‘javauser’@’%’ identified by ‘123456’
•授權使用者
►Grant all privileges on mytest.* to ‘javauser’@’%’
►Flush privileges
資料庫表操作 – 基本程序(1)
•載入驅動程式
►Class.forName()
•取得資料庫連線物件實體
►Connection conn =
DriverManager.getConnection()
•建立SQL敘述句物件實體
►Statement stmt = conn.createStatement()
►PreparedStatement
資料庫表操作 – 基本程序(2)
•執行SQL敘述句
►stmt.execUpdate(SQL)
•關閉SQL敘述句
►stmt.close()
•關閉資料庫連線物件實體
►Conn.close()
資料庫表操作 – 基本程序(3)
•預先準備好的Statement物件
•PreparedStatement
►conn.preparestatement(String sql)
►sql: Insert into cust (custname,birthday)
values (?,?)
►呼叫putString(index, 值) 或 putXxx()
►Index 從 1 開始計數
►執行executeQuery()
►執行executeUpdate()
資料庫表操作
•程式碼維護性
•執行效能性
•執行安全性
Statement PreparedStatementv.s.
資料庫操作 – 建立與刪除資料庫
•建立一個名為TEST的資料庫
►String sql = “CREATE DATABASE mydb”;
►stmt.executeUpdate(sql);
•刪除一個名為的TEST資料庫
►String sql = “DROP DATABASE mydb”;
►Stmt.executeUpdate(SQL);
DB URL: jdbc:mysql://127.0.0.1/
資料表操作 – 建立與刪除資料表
•建立一個名為cust的資料表
►String sql =“CREATE TABLE cust”
+“(id INTEGER PRIMARY KEY AUTO_INCREMENT,”
+“custname VARCHAR(100), BIRTHDAY DATE)”;
►stmt.executeUpdate(sql);
•刪除一個名為cust的資料表
►String sql = “DROP TABLE cust”;
►Stmt.executeUpdate(sql);
DB URL: jdbc:mysql://127.0.0.1/mydb
資料表操作 – 增刪修查
•新增
•刪除
•修改
•查詢
DB URL: jdbc:mysql://127.0.0.1/mydb
結果集合Result Sets
•指標巡訪方式
►FORWARD_ONLY
►SCROLL_INSENSITIVE
►SCROLL_SENSITIVE
•get方法的運用
►API
•更新方式
►updateString()
交易機制Transactions
•Why
►增加效能
►維護商業流程的完整性
►使用分布式交易
•Commit & Rollback
•Savepoint
批次處理
•建立Statement物件實體
•設定auto-commit為false
•呼叫addBatch()
•執行executeBatch()
•呼叫commit()
預儲程序
建立CallableStatement物件實體
Connection的prepareCall()
關閉CallableStatement物件實體

More Related Content

PPT
PDF
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
PPTX
Ch13 整合 Spring MVC/Security
PDF
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
PDF
Ch09 整合資料庫
PDF
Ch13 整合Spring MVC
PDF
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
PPTX
Ch06 使用 JSP
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Ch13 整合 Spring MVC/Security
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Ch09 整合資料庫
Ch13 整合Spring MVC
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Ch06 使用 JSP

What's hot (20)

PPT
山頂洞人日記 - 回歸到最純樸的開發
PDF
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
PDF
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
PPTX
React js
PPTX
1. JavaScript 起步走
PDF
Ch02 撰寫與設定Servlet
ODP
RESTful
PPTX
使用 Liquibase 發展資料庫結構
PPTX
Ch09 整合資料庫
PDF
整合資料庫
PPTX
ASP.Net MVC Framework
PDF
CH16:整合資料庫
PDF
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
PPT
Java SE 8 技術手冊第 1 章 - Java平台概論
PPTX
深入淺出Node.JS
PDF
MySQL运维那些事
PDF
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
PDF
CH02:從JDK到IDE
PPTX
Ch03 請求與回應
PDF
Class loader
山頂洞人日記 - 回歸到最純樸的開發
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
React js
1. JavaScript 起步走
Ch02 撰寫與設定Servlet
RESTful
使用 Liquibase 發展資料庫結構
Ch09 整合資料庫
整合資料庫
ASP.Net MVC Framework
CH16:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Java SE 8 技術手冊第 1 章 - Java平台概論
深入淺出Node.JS
MySQL运维那些事
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
CH02:從JDK到IDE
Ch03 請求與回應
Class loader
Ad

Viewers also liked (20)

PDF
Java_02:初探物件導向程式設計
PPTX
Java 基本程式設計
ODP
觀察與設計
PPT
大江露營裝備_露營器材 入門指南
PPTX
Java_05:檔案輸出輸入機制
PPTX
Java_06:Collection
PPTX
Java_07:Thread
PPTX
Java Basic(1)
PDF
Java_03:進階物件導向觀念
PPTX
第六堂 Youtube 播放 App (1)
PDF
MakerBoard: MT7688 Emulator
PPTX
第十一堂 學習編譯與上架
PDF
Java8 time
PDF
流程語法與函式
PDF
AI機器人正夯
PDF
20140827_粉樂町_莊志維Chuang, Chih-Wei
PDF
Java Tutorial:Learn Java in 06:00:00
PPTX
創新數位行銷
PPT
十倍速252字根 2016年新版 241-252
PDF
超酷炫科幻 UI:QML 入門
Java_02:初探物件導向程式設計
Java 基本程式設計
觀察與設計
大江露營裝備_露營器材 入門指南
Java_05:檔案輸出輸入機制
Java_06:Collection
Java_07:Thread
Java Basic(1)
Java_03:進階物件導向觀念
第六堂 Youtube 播放 App (1)
MakerBoard: MT7688 Emulator
第十一堂 學習編譯與上架
Java8 time
流程語法與函式
AI機器人正夯
20140827_粉樂町_莊志維Chuang, Chih-Wei
Java Tutorial:Learn Java in 06:00:00
創新數位行銷
十倍速252字根 2016年新版 241-252
超酷炫科幻 UI:QML 入門
Ad

Similar to Java_08:SQL (6)

PDF
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
PPT
Java SE 8 技術手冊第 16 章 - 整合資料庫
PPT
lwdba – 開放原始碼的輕量級資料庫存取程式庫
PDF
Jdbc中驱动加载的过程分析(下)
PPTX
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
DOC
常用数据库的链接方法
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
lwdba – 開放原始碼的輕量級資料庫存取程式庫
Jdbc中驱动加载的过程分析(下)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
常用数据库的链接方法

Java_08:SQL