一、一个JDBC程序的组成
1.导入需要的包和类(java.sql.*;)
2.加载合适的JDBC驱动
3.使用URL指定特定的数据库并建立连接
4.传输SQL语句至数据库
5.接收结果6.关闭连接
例子:
importjava.sql.*; importjava.io.*; importjava.lang.*; classMyJDBC{ static{ try{Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); }catch(Exception e){ //静态代码块 e.printStackTrace(); } } public static void main(String argv[]){ try{ Connection con = null; String url = "jdbc:db2:sample"; if( argv.length == 0 ) { con = DriverManager.getConnection(url); } else if( argv.length == 2 ) { String userid = argv[0]; String password = argv[1]; con=DriverManager.getConnection(url,userid,password); } else { throw new Exception ("\n Usage: javaMyJDBC[,username,password]\n"); } Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery ("SELECT EMPNO,LASTNAME " + "FROM employee " + "WHERE SALARY > 4000 " ); while ( rs.next() ){ System.out.println("empno=" + rs.getString(1) + "lastname = " +rs.getString(2) ); } rs.close(); stmt.close(); con.close(); }catch(Exception e){ e.printStackTrace();} } }
二、执行select语句
例子:
Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery ( "SELECT EMPNO, LASTNAME " + " FROM TEMPL " + " WHERE SALARY > 40000 " ); while ( rs.next() ) { System.out.println("empno="+ rs.getString(1) +"lastname="+rs.getString(2) ); } rs.close(); stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); }
说明:1.在遍历ResultSet前必须先执行next()方法。
三、执行update语句
不使用参数标识符:
例子:
PreparedStatement pUpd =con.prepareStatement ("UPDATETEMPL " + "SET SALARY=?"+ "WHERE EMPNO = ? "); pUpd.setString(1,argv[1]); pUpd.setString(2,argv[2]); intnumRows = pUpd.executeUpdate(); System.out.println("Numberof rows updated " + numRows); pUpd.close();
说明: 1.此处executeUpdate()会返回更新的行数
使用参数标识符
例子:
Statement updStmt = con.createStatement(); int numRows =updStmt.executeUpdate("UPDATE TEMPL " +" SET LASTNAME = 'Stohl'" +" WHERE EMPNO = '000110' "); System.out.println("Numberof rows updated " + numRow);
说明:1.使用参数标识符可以多次执行语句。
2.在SET子句和WHERE子句中都可以使用参数标识符
3.setxxx()方法第一个参数是从1开始的
4.此处executeUpdate()会返回更新的行数
四、执行insert语句
例子:
String sql = null; sql = "INSERT INTO TEMPL (EMPNO, LASTNAME,SALARY)" + "VALUES ('000110', 'Roth', 50000)", stmt = con.createStatement(); insertCount = stmt.executeUpdate( sql );
五、执行delete语句
例子:
PreparedStatementpstmt = null Stringeno = "000110"; Stringmysql = null; mysql= "DELETE FROM TEMPL WHERE EMPNO = ?"; pstmt= con.prepareStatement (mysql); pstmt.setString(1, eno); deleteCount= pstmt.executeUpdate();
说明:1.可以使用和update语句相同,PreparedStatement也可以使用Statement。