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);