編寫JDBC框架優化CRUD操作

 Tip:元數據- DataBaseMetaData

元數據:數據庫、表、列的定義信息。

Connection.getDatabaseMetaData()

DataBaseMetaData對象

getURL():返回一個String類對象,代表數據庫的URL。

getUserName():返回連接當前數據庫管理系統的用戶名。

getDatabaseProductName():返回數據庫的產品名稱。

getDatabaseProductVersion():返回數據庫的版本號。

getDriverName():返回驅動驅動程序的名稱。

getDriverVersion():返回驅動程序的版本號。

isReadOnly():返回一個boolean值,指示數據庫是否只允許讀操作。

Tip:元數據- ParameterMetaData 
PreparedStatement . getParameterMetaData()

獲得代表PreparedStatement元數據的ParameterMetaData對象。

Select * from user where name=? And password=?

ParameterMetaData對象

getParameterCount()

獲得指定參數的個數

getParameterType(int param)

獲得指定參數的sql類型

原來由jdbcUtil創建連接,現在由dataSource創建連接,爲實現不和具體數據爲綁定,因此datasource也應採用配置文件的方法獲得連接。

Tip:元數據- ResultSetMetaData 
ResultSet. getMetaData()

獲得代表ResultSet對象元數據的ResultSetMetaData對象。

ResultSetMetaData對象

getColumnCount()

返回resultset對象的列數

getColumnName(int column)

獲得指定列的名稱

 getColumnTypeName(int column)

獲得指定列的類型

Tip:使用元數據簡化JDBC代碼
業務背景:系統中所有實體對象都涉及到基本的CRUD操作:

所有實體的CUD操作代碼基本相同,僅僅發送給數據庫的SQL語句不同而已,因此可以把CUD操作的所有相同代碼抽取到工具類的一個update方法中,並定義參數接收變化的SQL語句。

實體的R操作,除SQL語句不同之外,根據操作的實體不同,對ResultSet的映射也各不相同,因此可義一個query方法,除以參數形式接收變化的SQL語句外,可以使用策略模式由qurey方法的調用者決定如何把ResultSet中的數據映射到實體對象中。

Tip:O-R Mapping簡介
什麼是O-R  Mapping

常用O-R Mapping映射工具

Hibernate

Ibatis

Commons DbUtils(只是對JDBC簡單封裝)
轉自:http://www.cdtarena.com/javapx/201304/8396.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章