JDBC
数据库连接纽带
l Java Database Connectivity
l JDBC简介
l SQL语言回顾
l JDBC编程基础
l JDBC编程高级
l DataSourse and RowSet
Why JDBC?
为了访问多种数据库,统一数据库接口ODBC。
Java 使用JDBC数据库接口,访问多种数据库,带给我们方便。但jdbc这种抽象不是特别完美,原因:必须将每种数据库语言带入java代码中,移植起来不方便。
JDBC两端:
对于我们java使用的一端是统一的, 不同数据库接口不统一,连接不同数据库使用不同数据库类库。
SQL语言回顾
l Select
Select * from T where …
l Insert
Insert into T values(…)
l Create
Create table T(…)
l Delete
Delete from T where…
l Update
Update T set t1 = ... and t2= … where t3 =…
l Drop
Drop table T
JDBC编程步骤
1. Load the Driver
a) Class.forName()|Class.forName().newInstance()|newDriverName()
b) 实例化时自动向DriverManager注册,不需显示调用DriverManager.registerDriver方法
2. Connect to the Datebase
a) DriverManager.getConnection()
3. Execute the SQL
a) Connection.CreateStatement()
b) Statement.executeQuery()
c) Starement,executeUpdate()
4. Retrieve the result data
a) 循环得取结果 while(rs.next())
5. Show the result data
a) 将数据库中各种种类转换为Java中的类型(getXXX)方法
6. Close
a) close the resultset. / closethe statement / close the connection
首先build path oracle classes12 jar包
例:
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) {
ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
//new oracle.jdbc.driver.OracleDriver();
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", "scott", "tiger");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from dept");
while(rs.next()) {
System.out.println(rs.getString("deptno"));
System.out.println(rs.getInt("deptno"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}