1.jdbc的概述
是sun公司統一提供的一套接口規范,各個數據庫生產商提供實現
注冊驅動,獲得連接,獲得執行的SQL語句對象,釋放資源
package com.learn.jdbc;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;import org.junit.Test;public class Demo1 {Connection conn = null;@Testpublic void test() {try {//注冊驅動Class.forName("com.mysql.jdbc.Driver");//獲得連接String url = "jdbc:mysql///mydatebase";String user = "root";String password = "root";conn = DriverManager.getConnection(url, user, password);} catch (Exception e) {e.printStackTrace();//釋放資源if( conn != null) {try {conn.close();} catch (SQLException e1) {e1.printStackTrace();}//垃圾回收盡快回收對象conn = null;}}} }
2.JDBC的API
connection
?
?
statement
3.JDBC的元數據MataDate(提高通用性較高的代碼)
- DatabaseMetaData:獲得數據庫連接的信息,獲得數據庫的表的信息.
* 獲得數據庫元數據:Connection中getMetaData();
?
- ParameterMetaData:獲得SQL中的參數的個數及類型.
* 獲得參數元數據:PreparedStatement中getParameterMetaData()
?
- ResultSetMetaData:獲得結果集中的列名及列的類型.
* 獲得結果集元數據:ResultSet中getMeta()
4.元數據的使用
public void demo2(){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();}}
參數元數據
public void demo3(){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){}}
結果集元數據
public void demo4(){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){}}
?