SlideShare a Scribd company logo
1 of 17
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

What's hot

山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發koji lin
 
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Justin Lin
 
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletJustin Lin
 
1. JavaScript 起步走
1. JavaScript 起步走1. JavaScript 起步走
1. JavaScript 起步走Justin Lin
 
Ch02 撰寫與設定Servlet
Ch02 撰寫與設定ServletCh02 撰寫與設定Servlet
Ch02 撰寫與設定ServletJustin Lin
 
使用 Liquibase 發展資料庫結構
使用 Liquibase 發展資料庫結構使用 Liquibase 發展資料庫結構
使用 Liquibase 發展資料庫結構Steven Wang
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
 
整合資料庫
整合資料庫整合資料庫
整合資料庫Justin Lin
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework國昭 張
 
CH16:整合資料庫
CH16:整合資料庫CH16:整合資料庫
CH16:整合資料庫Justin Lin
 
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTLServlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTLJustin Lin
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Justin Lin
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS國昭 張
 
MySQL运维那些事
MySQL运维那些事MySQL运维那些事
MySQL运维那些事Jinrong Ye
 
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤Justin Lin
 
CH02:從JDK到IDE
CH02:從JDK到IDECH02:從JDK到IDE
CH02:從JDK到IDEJustin Lin
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
 

What's hot (20)

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

Viewers also liked

Java_02:初探物件導向程式設計
Java_02:初探物件導向程式設計Java_02:初探物件導向程式設計
Java_02:初探物件導向程式設計Brad Chao
 
Java 基本程式設計
Java 基本程式設計Java 基本程式設計
Java 基本程式設計Brad Chao
 
觀察與設計
觀察與設計觀察與設計
觀察與設計志浩 蔡
 
大江露營裝備_露營器材 入門指南
大江露營裝備_露營器材 入門指南大江露營裝備_露營器材 入門指南
大江露營裝備_露營器材 入門指南岐勉 余
 
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Brad Chao
 
Java_06:Collection
Java_06:CollectionJava_06:Collection
Java_06:CollectionBrad Chao
 
Java_07:Thread
Java_07:ThreadJava_07:Thread
Java_07:ThreadBrad Chao
 
Java Basic(1)
Java Basic(1)Java Basic(1)
Java Basic(1)Brad Chao
 
Java_03:進階物件導向觀念
Java_03:進階物件導向觀念Java_03:進階物件導向觀念
Java_03:進階物件導向觀念Brad Chao
 
第六堂 Youtube 播放 App (1)
第六堂 Youtube 播放 App (1)第六堂 Youtube 播放 App (1)
第六堂 Youtube 播放 App (1)力中 柯
 
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorMakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorFred Chien
 
第十一堂 學習編譯與上架
第十一堂 學習編譯與上架第十一堂 學習編譯與上架
第十一堂 學習編譯與上架力中 柯
 
Java8 time
Java8 timeJava8 time
Java8 timekoji lin
 
流程語法與函式
流程語法與函式流程語法與函式
流程語法與函式Justin Lin
 
AI機器人正夯
AI機器人正夯AI機器人正夯
AI機器人正夯佳新 陳
 
20140827_粉樂町_莊志維Chuang, Chih-Wei
20140827_粉樂町_莊志維Chuang, Chih-Wei20140827_粉樂町_莊志維Chuang, Chih-Wei
20140827_粉樂町_莊志維Chuang, Chih-WeiChih-Wei Chuang
 
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Justin Lin
 
創新數位行銷
創新數位行銷創新數位行銷
創新數位行銷Norika
 
十倍速252字根 2016年新版 241-252
十倍速252字根 2016年新版 241-252十倍速252字根 2016年新版 241-252
十倍速252字根 2016年新版 241-252gary wang
 
超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門Fred Chien
 

Viewers also liked (20)

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

Similar to Java_08:SQL

Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Justin Lin
 
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Justin Lin
 
02.web sphere培训 应用websphere
02.web sphere培训 应用websphere02.web sphere培训 应用websphere
02.web sphere培训 应用webspherelittlecong
 
Oracle sql developer支持第三方数据库
Oracle  sql developer支持第三方数据库Oracle  sql developer支持第三方数据库
Oracle sql developer支持第三方数据库shadowfalao
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17twMVC
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)My own sweet home!
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7Justin Lin
 
招聘试题
招聘试题招聘试题
招聘试题yiditushe
 
Yog Framework
Yog FrameworkYog Framework
Yog Frameworkfansekey
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管Will Huang
 
My sql管理基础 李春_v2
My sql管理基础 李春_v2My sql管理基础 李春_v2
My sql管理基础 李春_v2Pickup Li
 
Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Wade Huang
 
Jdbc中驱动加载的过程分析(下)
Jdbc中驱动加载的过程分析(下)Jdbc中驱动加载的过程分析(下)
Jdbc中驱动加载的过程分析(下)yiditushe
 
20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting祺元 曾
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kaoxwcoder
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲ArBing Xie
 
John Resig Beijing 2010 (中文版)
John Resig Beijing 2010 (中文版)John Resig Beijing 2010 (中文版)
John Resig Beijing 2010 (中文版)Jia Mi
 

Similar to Java_08:SQL (20)

Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
 
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
 
02.web sphere培训 应用websphere
02.web sphere培训 应用websphere02.web sphere培训 应用websphere
02.web sphere培训 应用websphere
 
Oracle sql developer支持第三方数据库
Oracle  sql developer支持第三方数据库Oracle  sql developer支持第三方数据库
Oracle sql developer支持第三方数据库
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
 
招聘试题
招聘试题招聘试题
招聘试题
 
Yog Framework
Yog FrameworkYog Framework
Yog Framework
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
 
My sql管理基础 李春_v2
My sql管理基础 李春_v2My sql管理基础 李春_v2
My sql管理基础 李春_v2
 
Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享
 
Jdbc中驱动加载的过程分析(下)
Jdbc中驱动加载的过程分析(下)Jdbc中驱动加载的过程分析(下)
Jdbc中驱动加载的过程分析(下)
 
No sql
No sqlNo sql
No sql
 
20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
 
Ant
AntAnt
Ant
 
John Resig Beijing 2010 (中文版)
John Resig Beijing 2010 (中文版)John Resig Beijing 2010 (中文版)
John Resig Beijing 2010 (中文版)
 

Java_08:SQL