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

一、装载驱动程序

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=pubs
jdbc:oracle:thin:@localhost:1521:ORCL
jdbc: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()时的错误
}

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值