1. 程式人生 > >JavaWeb07-HTML篇筆記(四)

JavaWeb07-HTML篇筆記(四)

Java

1.1 案例三:手動抽取一個DBUtils的工具類:1.1.1 需求:
每次進行JDBC的CURD的操作的時候,有很多的代碼都是相似的.可以不可以抽取工具類.完成一些通用性的代碼?
1.1.2 分析:1.1.2.1 技術分析:
【JDBC的元數據MataData】(了解)-- 編寫通用性較高的代碼.

? DatabaseMetaData:獲得數據庫連接的信息,獲得數據庫的表的信息.
* 獲得數據庫元數據:Connection中getMetaData();

? ParameterMetaData:獲得SQL中的參數的個數及類型.
* 獲得參數元數據:PreparedStatement中getParameterMetaData()

? ResultSetMetaData:獲得結果集中的列名及列的類型.
* 獲得結果集元數據:ResultSet中getMeta()

【元數據的使用】

@Test
/**
 * 數據庫元數據
 */
public void demo1(){
Connection conn = null;
conn = JDBCUtils2.getConnection();
// 獲得數據庫元數據:
try {
DatabaseMetaData metaData = conn.getMetaData();
System.out.println("獲得驅動名稱:"+metaData.getDriverName());
System.out.println("獲得驅動URL:"+metaData.getURL());
System.out.println("獲得用戶名:"+metaData.getUserName());
// 獲得表中的主鍵:
ResultSet rs = metaData.getPrimaryKeys(null, null, "category");
if(rs.next()){
String name = rs.getString("COLUMN_NAME");
System.out.println(name);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
@Test
/**
 * 參數元數據:
 */
public void demo2(){
Connection conn = null;
PreparedStatement stmt = null;
try{
conn = JDBCUtils2.getConnection();
String sql = "update category set cname = ? where cid = ?";
stmt = conn.prepareStatement(sql);
ParameterMetaData metaData = stmt.getParameterMetaData();
int count = metaData.getParameterCount();
System.out.println(count);
}catch(Exception e){
}
}
@Test
/**
 * 結果集元數據:
 */
public void demo3(){
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try{
conn = JDBCUtils2.getConnection();
String sql = "select * from category";
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
int count = metaData.getColumnCount();
for(int i = 1;i<=count ;i++){
String name = metaData.getColumnName(i);
String type = metaData.getColumnTypeName(i);
System.out.println(name+type);
}
}catch(Exception e){
}
}

JavaWeb07-HTML篇筆記(四)