JDBC 主要有兩種方法
DriverManager機制:java.sql核心API
DataSource機制:javax.sql可擴展API
DriverManager機制:
stetp1:注冊驅動程序
(1)隱式注冊Class.forName("JDBCDriverName");
(2)顯示注冊DriverMnager.registerDriver(new JDBCDriverName());
step 2:建立數據庫連接
Connection conn = DriverManager.getConnection(URL,username,password);
//其中URL=jdbc:driver:databasename
step3:SQL操作
DataSource機制
step1:查詢數據源對象
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(DataSourceJNDIName);
step2:獲取數據庫連接
Connection con = ds.getConnection();
step3:SQL操作
SQL操作
(1)使用Statement
Statement stmt = con.createStatement();
stmt.executeUpdate("SQL語句");
stmt.close();
(2)使用PreparedStatement
例子
PreparedStatement psmt = conn.preparedStatement("INSERT INTO employee VALUES(?,?,?)");
psmt.setString(1,"Benjamin");
psmt.setString(2,"France");
psmt.setInt(3,55);
int opNum = psmt.executeUpdate();
還可以批量處理
psmt.setString(1,"Benjamin");
psmt.setString(2,"France");
psmt.setInt(3,55);
psmt.addBatch();
psmt.setString(1,"Rob");
psmt.setString(2,"America");
psmt.setInt(3,56);
psmt.addBatch();
int [] updateCounts = psmt.executeBatch();
關于ResultSet
ResultSet rs = stmt.executeQuery("SQL");
next()——移到下一行,如果沒有了則返回false。常常放在while(rs.next)用來循環取數據
getString(String ColumnName)
absolute(int row)
beforeFist()
isAfterLast()
isBeforeFirst()
isFirst()
isLast()
refreshRow()
關于元數據
所謂元數據就是描述數據的數據,這里當然指列名等等信息了
ResultSetMetaData rsmd = rs.getMetaData();
rsmd.getColumnCount();
rsmd.getColumnName(index);