SlideShare a Scribd company logo
1 of 35
Download to read offline
如何用JDK8實作一個小型的關聯式
資料庫系統
Kishida Naoki
2014-8-1 Taipei Java Developer Day
自己介紹
● きしだ なおき(Kishida Naoki)
● 来了日本的福岡
● 自由工作者
Blog/SNS
● Twitter
– https://twitter.com/kis
● 部落格(きしだのはてな)
– http://d.hatena.ne.jp/nowokay/
福岡
● 日本的西邊
● 九州的北邊
● 九州=大概跟台灣一樣大
福岡
● 從福岡到東京跟從福岡到臺北(飛機兩個小時)
内容
● 自製資料庫
● 實作
– Java 8 使用到的功能
– 其他程式庫
自製的資料庫
●
主要用途是為了學習
●
關聯式資料庫
●
沒有資料形態
●
單執行
– 多執行是複雜
●
沒有網路
●
記憶體上運作
– 不會存取到檔案系統
● github
– https://github.com/kishida/sqlparser
資料庫的構造
● Parser
● Planner
● Optimizer(最佳化)
– Index
● Executor
– Transaction
Parser
● 字串表示的 SQL 剖析
● 製作 AST 抽象語法樹
● 使用了 JParsec 來實作
Planner
● 抽象語法樹後 生邏輯執行計劃產
● 邏輯執行計劃
– 詢的處理順序,用關聯式代數表示查
● 關聯式代數
– 關聯式資料庫的基礎
Optimizer
●
將邏輯執行計劃製作物理執行計劃
●
最佳化
– 節省不必要的處理
– 決定要使用的 index
●
規則為基礎的演算法
– 用來設定好規則使用 index
– 難支援複雜的 詢查
– 依照資料的分佈狀況,效率不好的狀況
→cost based 的演算法
物理執行計劃執行
● Transaction
● MVCC
– MultiVersionConcurentControl
● 沒 commit 的資料不會被其他 transaction 看到
Java8的効能
● Stream
● Optional
● 生新的產 List
● 將List 中的資料處理後 生新的產 List
– fields 的 List
– 所有 執行值 eval 的方法
List<Value> result = new ArrayList<>();
for(Field f : fields){
result.add(eval(f));
}
● 生新的產 List
● 用Stream
● 這種類似處理非常多
● 使用 Stream 可以減輕很多負擔
List<Value> result = fields.stream()
.map(f -> eval(f))
.collect(toList());
●判斷List
● List 的所有元素是否都符合條件的判斷
– conditions 的 List
– 元素在使用 hasOr
– 所有true 的話就 return
boolean result = true;
for(Condition c : conditions){
if(!hasOr(c)) result = false;
}
if(result) return;
●判斷List
● 使用Stream
– 一行就可以
– 可以在 if 直接使用
– 減少不必要的 result 變數
– 可以減少一些邏輯上出錯的問題
if(conditions.stream().allMatch(c -> hasOr(c))){
return;
}
Optional
● 表示有沒有 的型別值
● Scala→Optiona、Haskell→Maybe
● 通常使用 null
– 忘記做 null 檢 →查 NullPointerException
– 從程式碼型別上根本就分辨不出來,變數有沒
有可能被指定成 null 的狀況
Optional
● ex:BufferedReader
– readLine
● 沒有資料可以讀時會回傳 null
● 不會知道他有可能回傳 null
●
必須認真看文件
– 文件
●
忘記寫
●
常常 懶沒寫偷
– 忘記檢查 null
→NullPointerException
● 使用 Optional 就可以減少這類 NullPointerException
的狀況
Optional 的使用方法
● 建立 Optional
– Optional.of(value)
– null 的時候, 會 生產 NullPointerException
– 參數不為 null 時才可以使用
● 不知道是不是值 null
– Optional.ofNullable(value)
● 表示沒有值
– Optional.empty()
從 Optional 取得值1
● get()
– 沒有值,丟出 NoSuchElementException
– 請儘量不要這樣使用
● orElse(defaultValue)
– 沒有 時會回傳值 defaultValue
從 Optional 取得值2
● orElseGet(() -> defualtValue)
– defaultValue 的計算可能會花一些時間
– 傳入一個型別為 Supplier
– 使用 lambda 式
– 沒有 的時候才會執行值
– 只有在需要時才執行的動作
● 延遲執行(Lazy Execution)
Optional 有 得時候才會想要執行某值
些動作
● 判斷有沒有值
● isPresent()
– 有 →值 true
– 沒有值(empty)→false
● 不是 Java 8 的風格
Optional<String> ostr = Optional.ofNullable(str);
if(ostr.isPresent()){
System.out.println(ostr.get().length());
}
Optional 有 得時候才會想要執行某值
些動作
● ifPresent(Consumer c)
● 只有在有 時會執行傳入的式值
● 參數的型別是Consumer
– 用 lambda 來寫
– 有 時才會執行值
Optional<String> ostr = Optional.ofNullable(str);
ostr.ifPresent(s -> {
System.out.println(s.length());
});
轉換成其他值 值
● map(Function<T, U>)
– 傳入回傳普通 的值 lambda 式
– 回傳包著那個 得值 Optional
– null的時候,變成empty
– 不用擔心 NullPointerException
● flatMap(Function<T, Optional<U>)
– 傳入回傳Option的 lambda式
– 回傳剛剛的 Optional
Optional<String> ostr = Optional.ofNullable(str);
ostr
.map(String::length)
.ifPresent(System.out::println);
當 符合條件才要處理值
● filter(Predicate<T>)
– 條件不符合會回傳 empty
Optional<String> ostr = Optional.ofNullable(str);
ostr
.map(String::length)
.filter(len -> len < 5)
.ifPresent(System.out::println);
map,filter,ifPresent
● 跟 map 還有 filter 之類的方法搭配處理時,非常有效果
● map・filter・ifPresent裡面
– 保證 不會是值 null
– 不用擔心NullPointerException
● 隔離有 null 的世界和沒有null 的世界
● Optional要多打一些字 (^^
– 可以讓人寫的比較安心
– 請記得會出現 null 時就要利用 Optional
程式庫
● Lombok
● JParsec
Lombok
● http://projectlombok.org/
● 可以把一些 Java 很繁雜的程式碼減少
● Setter/Getter
– 可以用 IDE 幫我們 生產
– 看起來一長串很煩
– 改也很麻煩
class Foo{
String message;
public String getMessage(){
return message;
}
publilc void setMessage(String m){
this.message = m;
}
}
Lombok
● 清爽許多
class Foo{
@Setter @Getter
String message;
}
Lombok
● @NoArgsConstructor
– 生預設建構子產
● @AllArgsConstructor
– 成員變數都要設定的建構子
● @ToString
– 生產 toString
● @EqualsAndHashCode
– 生產 equals 和 hashcode
● 對應 IDE
JParsec
● http://jparsec.codehaus.org/
● Parser Generator
– 産生抽象語法樹
● Haskell的Parsec移植
● 用Java做 parser
– JavaCC和Antlr需要 Java 程式碼以外的語法定義檔
– 必須特別編譯
● 用 Java 來定義語法
– 不需要額外的檔案和編譯
JParsec的例
● delete的語法定義
public static Parser<ASTDelete> delete(){
return Parsers.sequence(
terms.token("delete").next(terms.token("*").optional())
.next(terms.token("from")).next(identifier()),
where().optional(),
(id, w) -> new ASTDelete(id, Optional.ofNullable(w)));
}
總結1
● 製作資料庫非常有幫助
– 資料庫的構造
● MySQL、PostgreSQL、Oracle
●
能大概知道他們到底在做什麼
– 能了解 SQL 的處理過程
● 可以寫出效率更好的 SQL
總結2
● Java8很方便
– 回不去Java7
● Optional應該多加利用
– Java8中如果出現 nullpointerexception 就太失
敗了
● Lombok
– 可以從又臭又長麻煩的程式碼中解脫
● JParsec
– 不知不覺的完成結構很大的語法定義,很有趣

More Related Content

What's hot

Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJustin Lin
 
保哥線上講堂:LINQ 快速上手
保哥線上講堂:LINQ 快速上手保哥線上講堂:LINQ 快速上手
保哥線上講堂:LINQ 快速上手Will Huang
 
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Justin Lin
 
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)Kris Mok
 
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Justin Lin
 
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJustin Lin
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7Justin Lin
 
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝Justin Lin
 
流程語法與函式
流程語法與函式流程語法與函式
流程語法與函式Justin Lin
 
2, object oriented programming
2, object oriented programming2, object oriented programming
2, object oriented programmingted-xu
 
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註Justin Lin
 
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註Justin Lin
 
執行緒與並行API
執行緒與並行API執行緒與並行API
執行緒與並行APIJustin Lin
 
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJava SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJustin Lin
 
如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scalajavatwo2011
 
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹Johnny Sung
 
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Justin Lin
 
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Justin Lin
 
J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目George Ang
 

What's hot (20)

Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
 
保哥線上講堂:LINQ 快速上手
保哥線上講堂:LINQ 快速上手保哥線上講堂:LINQ 快速上手
保哥線上講堂:LINQ 快速上手
 
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
 
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)
 
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
 
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
 
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
 
流程語法與函式
流程語法與函式流程語法與函式
流程語法與函式
 
2, object oriented programming
2, object oriented programming2, object oriented programming
2, object oriented programming
 
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
 
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
 
執行緒與並行API
執行緒與並行API執行緒與並行API
執行緒與並行API
 
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJava SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
 
如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala
 
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
 
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
 
輸入輸出
輸入輸出輸入輸出
輸入輸出
 
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
 
J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目
 

Viewers also liked

淺談JavaFX 遊戲程式
淺談JavaFX 遊戲程式淺談JavaFX 遊戲程式
淺談JavaFX 遊戲程式CodeData
 
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合Kyle Lin
 
JDK8 Functional API
JDK8 Functional APIJDK8 Functional API
JDK8 Functional APIJustin Lin
 
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)Kuo-Chun Su
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchReza Rahman
 
ASP.NET MVC 開發分享
ASP.NET MVC 開發分享ASP.NET MVC 開發分享
ASP.NET MVC 開發分享Eric Ping
 
什麼是PHP & JavaScript
什麼是PHP & JavaScript什麼是PHP & JavaScript
什麼是PHP & JavaScriptEric Ping
 
きしだのはてなのあれってどうなの勉強会
きしだのはてなのあれってどうなの勉強会きしだのはてなのあれってどうなの勉強会
きしだのはてなのあれってどうなの勉強会なおき きしだ
 
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定するNetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定するなおき きしだ
 
全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用建興 王
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Justin Lin
 
淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展Leon Chen
 
JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢なおき きしだ
 
そろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでそろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでなおき きしだ
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘Chen-Pan Liao
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016Brendan Gregg
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Brendan Gregg
 

Viewers also liked (20)

淺談JavaFX 遊戲程式
淺談JavaFX 遊戲程式淺談JavaFX 遊戲程式
淺談JavaFX 遊戲程式
 
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合
 
JDK8 Functional API
JDK8 Functional APIJDK8 Functional API
JDK8 Functional API
 
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
Hadoop, the Apple of Our Eyes (這些年,我們一起追的 Hadoop)
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
 
ASP.NET MVC 開發分享
ASP.NET MVC 開發分享ASP.NET MVC 開發分享
ASP.NET MVC 開發分享
 
什麼是PHP & JavaScript
什麼是PHP & JavaScript什麼是PHP & JavaScript
什麼是PHP & JavaScript
 
きしだのはてなのあれってどうなの勉強会
きしだのはてなのあれってどうなの勉強会きしだのはてなのあれってどうなの勉強会
きしだのはてなのあれってどうなの勉強会
 
職業人講和20140403
職業人講和20140403職業人講和20140403
職業人講和20140403
 
Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定するNetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
 
全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 
淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展
 
JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢
 
そろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでそろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやで
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 

Similar to 如何用JDK8實作一個小型的關聯式資料庫系統

Adorable python
Adorable pythonAdorable python
Adorable pythonRhythm Sun
 
Oozie in Practice - Big Data Workflow Scheduler - Oozie Case Study
Oozie in Practice - Big Data Workflow Scheduler - Oozie Case StudyOozie in Practice - Big Data Workflow Scheduler - Oozie Case Study
Oozie in Practice - Big Data Workflow Scheduler - Oozie Case StudyFX Live Group
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011Ching Yi Chan
 
Noder eyes for frontend guys
Noder eyes for frontend guysNoder eyes for frontend guys
Noder eyes for frontend guysHsu Ping Feng
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能Justin Lin
 
除錯、測試與效能
除錯、測試與效能除錯、測試與效能
除錯、測試與效能Justin Lin
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具國昭 張
 
Web development with zend framework
Web development with zend frameworkWeb development with zend framework
Web development with zend frameworkthinkinlamp
 
Sheepdog内部实现机制
Sheepdog内部实现机制Sheepdog内部实现机制
Sheepdog内部实现机制Liu Yuan
 
Refactoring with Patterns in PHP
Refactoring with Patterns in PHPRefactoring with Patterns in PHP
Refactoring with Patterns in PHPJace Ju
 
JavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsJavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsHo Kim
 

Similar to 如何用JDK8實作一個小型的關聯式資料庫系統 (12)

Adorable python
Adorable pythonAdorable python
Adorable python
 
Oozie in Practice - Big Data Workflow Scheduler - Oozie Case Study
Oozie in Practice - Big Data Workflow Scheduler - Oozie Case StudyOozie in Practice - Big Data Workflow Scheduler - Oozie Case Study
Oozie in Practice - Big Data Workflow Scheduler - Oozie Case Study
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
 
Noder eyes for frontend guys
Noder eyes for frontend guysNoder eyes for frontend guys
Noder eyes for frontend guys
 
Tcfsh bootcamp day2
 Tcfsh bootcamp day2 Tcfsh bootcamp day2
Tcfsh bootcamp day2
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
 
除錯、測試與效能
除錯、測試與效能除錯、測試與效能
除錯、測試與效能
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 
Web development with zend framework
Web development with zend frameworkWeb development with zend framework
Web development with zend framework
 
Sheepdog内部实现机制
Sheepdog内部实现机制Sheepdog内部实现机制
Sheepdog内部实现机制
 
Refactoring with Patterns in PHP
Refactoring with Patterns in PHPRefactoring with Patterns in PHP
Refactoring with Patterns in PHP
 
JavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsJavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization Skills
 

More from なおき きしだ

GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話なおき きしだ
 
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8なおき きしだ
 
VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話なおき きしだ
 
Java新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナーJava新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナーなおき きしだ
 
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会なおき きしだ
 
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島なおき きしだ
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11なおき きしだ
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11なおき きしだ
 
Java10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 SprJava10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 Sprなおき きしだ
 
New thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowNew thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowなおき きしだ
 
Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)なおき きしだ
 
これからのJava言語と実行環境
これからのJava言語と実行環境これからのJava言語と実行環境
これからのJava言語と実行環境なおき きしだ
 
JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪なおき きしだ
 
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...なおき きしだ
 

More from なおき きしだ (20)

GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
 
GraalVM at Fukuoka LT
GraalVM at Fukuoka LTGraalVM at Fukuoka LT
GraalVM at Fukuoka LT
 
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
 
GraalVMについて
GraalVMについてGraalVMについて
GraalVMについて
 
VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話
 
最近のJava事情
最近のJava事情最近のJava事情
最近のJava事情
 
怖いコードの話 2018/7/18
怖いコードの話 2018/7/18怖いコードの話 2018/7/18
怖いコードの話 2018/7/18
 
Java新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナーJava新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナー
 
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
 
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
 
Java10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 SprJava10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 Spr
 
New thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowNew thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should know
 
Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)
 
これからのJava言語と実行環境
これからのJava言語と実行環境これからのJava言語と実行環境
これからのJava言語と実行環境
 
JavaOne報告2017
JavaOne報告2017JavaOne報告2017
JavaOne報告2017
 
JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪
 
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
 
JavaOne2016報告
JavaOne2016報告JavaOne2016報告
JavaOne2016報告
 

Recently uploaded

催情药制作方法【网址☆THC88.com】催情药制作方法是什么
催情药制作方法【网址☆THC88.com】催情药制作方法是什么催情药制作方法【网址☆THC88.com】催情药制作方法是什么
催情药制作方法【网址☆THC88.com】催情药制作方法是什么chuanhen
 
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館Jason Cheng
 
离职证明范本【官网:bzw987.com】离职证明模板
离职证明范本【官网:bzw987.com】离职证明模板离职证明范本【官网:bzw987.com】离职证明模板
离职证明范本【官网:bzw987.com】离职证明模板yangpgnx
 
三唑仑如何购买【网址☆THC88.com】三唑仑售卖
三唑仑如何购买【网址☆THC88.com】三唑仑售卖三唑仑如何购买【网址☆THC88.com】三唑仑售卖
三唑仑如何购买【网址☆THC88.com】三唑仑售卖qieqingz
 
做爱药购买【购买网站: ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买
做爱药购买【购买网站:  ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买做爱药购买【购买网站:  ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买
做爱药购买【购买网站: ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买roldantamondong199
 
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放jianjuei
 
chat gpt账号购买👉top233.com👈chat gpt账号批发购买
chat gpt账号购买👉top233.com👈chat gpt账号批发购买chat gpt账号购买👉top233.com👈chat gpt账号批发购买
chat gpt账号购买👉top233.com👈chat gpt账号批发购买larondahannae1n
 
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模ruegsgbn
 
南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套
南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套
南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套jiaoniao
 
媚药哪里能买到【网址☆THC88.com】媚药如何购买
媚药哪里能买到【网址☆THC88.com】媚药如何购买媚药哪里能买到【网址☆THC88.com】媚药如何购买
媚药哪里能买到【网址☆THC88.com】媚药如何购买huiyvrru
 
google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法
google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法
google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法panqiany
 
uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址
uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址
uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址trnkavanliew308
 
榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师
榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师
榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师miuliuyo
 
网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药
网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药
网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药zicsuwja
 
春药购买虾皮shopee【网址☆THC88.com】春药买卖
春药购买虾皮shopee【网址☆THC88.com】春药买卖春药购买虾皮shopee【网址☆THC88.com】春药买卖
春药购买虾皮shopee【网址☆THC88.com】春药买卖huwdlmhc
 
如何买卖迷药价格【网址☆THC88.com】如何买迷药
如何买卖迷药价格【网址☆THC88.com】如何买迷药如何买卖迷药价格【网址☆THC88.com】如何买迷药
如何买卖迷药价格【网址☆THC88.com】如何买迷药maormduq
 
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址trnkavanliew308
 
迷奸水网上订购【网址☆THC88.com】迷奸水网上购买
迷奸水网上订购【网址☆THC88.com】迷奸水网上购买迷奸水网上订购【网址☆THC88.com】迷奸水网上购买
迷奸水网上订购【网址☆THC88.com】迷奸水网上购买minxkcpp
 
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址trnkavanliew308
 
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么kexlszgh
 

Recently uploaded (20)

催情药制作方法【网址☆THC88.com】催情药制作方法是什么
催情药制作方法【网址☆THC88.com】催情药制作方法是什么催情药制作方法【网址☆THC88.com】催情药制作方法是什么
催情药制作方法【网址☆THC88.com】催情药制作方法是什么
 
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
Graylog Open 打造資安戰情中心經驗分享 [2024/05/16] @台灣資安大會 @台北南港展覽二館
 
离职证明范本【官网:bzw987.com】离职证明模板
离职证明范本【官网:bzw987.com】离职证明模板离职证明范本【官网:bzw987.com】离职证明模板
离职证明范本【官网:bzw987.com】离职证明模板
 
三唑仑如何购买【网址☆THC88.com】三唑仑售卖
三唑仑如何购买【网址☆THC88.com】三唑仑售卖三唑仑如何购买【网址☆THC88.com】三唑仑售卖
三唑仑如何购买【网址☆THC88.com】三唑仑售卖
 
做爱药购买【购买网站: ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买
做爱药购买【购买网站:  ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买做爱药购买【购买网站:  ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买
做爱药购买【购买网站: ghb3.com☆】 药 王 网上 药物 商城,迷药,春药,乖乖水,ghb购买
 
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
黄色网站引流渠道【推广网址☆seotg8.com】黄色网站广告投放
 
chat gpt账号购买👉top233.com👈chat gpt账号批发购买
chat gpt账号购买👉top233.com👈chat gpt账号批发购买chat gpt账号购买👉top233.com👈chat gpt账号批发购买
chat gpt账号购买👉top233.com👈chat gpt账号批发购买
 
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
上海长宁区外围预约【选妞网址☆qmm123.com】上海长宁区嫩模
 
南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套
南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套
南昌哪里有白领【选妞网址☆qmm123.com】南昌外围全套
 
媚药哪里能买到【网址☆THC88.com】媚药如何购买
媚药哪里能买到【网址☆THC88.com】媚药如何购买媚药哪里能买到【网址☆THC88.com】媚药如何购买
媚药哪里能买到【网址☆THC88.com】媚药如何购买
 
google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法
google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法
google黄色网站排名技巧【推广网址☆seotg8.com】google黄色网站排名方法
 
uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址
uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址
uu短视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆抖音网红资源破解版app最新下载地址
 
榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师
榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师
榆林哪里有小姐上门【选妞网址☆qmm123.com】榆林技师
 
网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药
网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药
网上哪卖迷药如何买【网址☆THC88.com】网上能买到吗迷药
 
春药购买虾皮shopee【网址☆THC88.com】春药买卖
春药购买虾皮shopee【网址☆THC88.com】春药买卖春药购买虾皮shopee【网址☆THC88.com】春药买卖
春药购买虾皮shopee【网址☆THC88.com】春药买卖
 
如何买卖迷药价格【网址☆THC88.com】如何买迷药
如何买卖迷药价格【网址☆THC88.com】如何买迷药如何买卖迷药价格【网址☆THC88.com】如何买迷药
如何买卖迷药价格【网址☆THC88.com】如何买迷药
 
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
撸撸社【破解版下载:K782.com】☆☆☆官网下载☆☆☆醉花视频破解版app最新下载地址
 
迷奸水网上订购【网址☆THC88.com】迷奸水网上购买
迷奸水网上订购【网址☆THC88.com】迷奸水网上购买迷奸水网上订购【网址☆THC88.com】迷奸水网上购买
迷奸水网上订购【网址☆THC88.com】迷奸水网上购买
 
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
国产真实幼女迷奸视频【破解版下载:K782.com】☆☆☆官网下载☆☆☆小马视频破解版app最新下载地址
 
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
迷奸药制作方法【网址☆THC88.com】迷奸药制作方法是什么
 

如何用JDK8實作一個小型的關聯式資料庫系統