JavaWeb07-HTML篇筆記(四)
阿新 • • 發佈:2018-05-17
Java1.1 案例三:手動抽取一個DBUtils的工具類:1.1.1 需求:
每次進行JDBC的CURD的操作的時候,有很多的代碼都是相似的.可以不可以抽取工具類.完成一些通用性的代碼?
1.1.2 分析:1.1.2.1 技術分析:
【JDBC的元數據MataData】(了解)-- 編寫通用性較高的代碼.
每次進行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篇筆記(四)