个人JDBC学习笔记(未完待续)

来源:互联网 发布:知画生孩子电视剧视频 编辑:程序博客网 时间:2024/05/08 18:42

一、装载驱动程序

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//SQL Server 2000的JDBC驱动类名oracel.jdbc.driver.OracleDriver//Oralce的JDBC驱动类名com.mysql.jdbc.Driver//MySQL的JDBC驱动类名
二、建立连接

Connection con = DriverManager.getConnection(url, "myLogin", "myPassword");
JDBC URL语法:jdbc:subprotocol:subname  协议:子协议:子名词

常用的JDBC URL形式

jdbc:microsoft:sqlserver://localhost:1433;databasename=pubsjdbc:oracle:thin:@localhost:1521:ORCLjdbc:mysql://localhost:3306/databasename

/**************************也可以通过JDBC-ODBC桥的方式*********************************************/

sun.jdbc.odbc.JdbcOdbcDriver//驱动类名jdbc.odbc:datasource_name//JDBC URL

/**********************************************************************************************************/

三、访问数据库

创建表

Statement stmt = con.createStatement();stmt.executeUpdate("CREATE TABLE COFFEES " +"(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +"SALES INTEGER, TOTAL INTEGER)");或者String createTableCoffees = "CREATE TABLE COFFEES " +  "(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +  "SALES INTEGER, TOTAL INTEGER)"; stmt.executeUpdate(createTableCoffees);

 Statement stmt = conn.createStatement(); stmt.executeUpdate( "INSERT INTO MyTable( name ) VALUES ( 'my name' ) " );


Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery( "SELECT * FROM MyTable" ); while ( rs.next() ) {     int numColumns = rs.getMetaData().getColumnCount();     for ( int i = 1 ; i <= numColumns ; i++ ) {        // 与大部分Java API中下标的使用方法不同,字段的下标从1开始        // 当然,还有其他很多的方式(ResultSet.getXXX())获取数据        System.out.println( "COLUMN " + i + " = " + rs.getObject(i) );     } } rs.close(); stmt.close();

/****************Java程序员们更倾向于使用PreparedStatement****************************/

PreparedStatement ps = null;ResultSet rs = null;try {ps = conn.prepareStatement( "SELECT i.*, j.* FROM Omega i, Zappa j     WHERE i = ? AND j = ?" );// 使用问号作为参数的标示// 进行参数设置// 与大部分Java API中下标的使用方法不同,字段的下标从1开始,1代表第一个问号// 当然,还有其他很多针对不同类型的类似的PreparedStatement.setXXX()方法ps.setString(1, "Poor Yorick");ps.setInt(2, 8008);// 结果集rs = ps.executeQuery();while ( rs.next() ) {    int numColumns = rs.getMetaData().getColumnCount();    for ( int i = 1 ; i <= numColumns ; i++ ) {       // 与大部分Java API中下标的使用方法不同,字段的下标从1开始       // 当然,还有其他很多的方式(ResultSet.getXXX())获取数据       System.out.println( "COLUMN " + i + " = " + rs.getObject(i) );    }}catch (SQLException e) { // 异常处理}finally { // 使用finally进行资源释放 try {  rs.close();  ps.close(); } catch( SQLException e){} // 异常处理:忽略close()时的错误}

/**********************************************************************************************/





原创粉丝点击