Step By Step(Java JDBC篇)
JDBC是Sun公司发布的数据库连接API组件,使开发人员可以通过这个API接口连接到多种数据库,如Oracle、MySQL等,并使用SQL语句完成数据库的查询和更新等操作。JDBC主要分为两层,第一层为Java的接口层,主要面向Java的应用程序开发者,它定义了操作数据库的各种功能的接口,第二层为数据库驱动层,为数据库供应商提供了注册其数据库产品驱动程序的接口,两者之间是通过驱动管理器来负责协调和管理的。由于JDBC为所有支持的数据库提供了统一的API接口,因此在实际的开发中,如果软件产品被要求同时支持多种数据库平台,其间主要的差异将来自于不同数据库产品在特殊SQL语句方面的差异,至于调用接口方面,如果没有使用极为依赖数据库平台的接口API,那么该部分程序代码将不用作出任何改变。以下我们将通过示例代码的方式逐步了解JDBC中提供的API接口。
1. 创建与数据库的连接:
在使用Oracle的jdbc驱动之前需要先将Oracle提供的ojdbc14.jar添加到你的工程中,该文件一般位于"C:\oracle\product\10.2.0\db_1\jdbc\lib",以下示例用于验证你的驱动是否正常安装:
1 public static void main(String[] args) {
2 System.out.println("TestJDBCDriverInstallation_Oracle begin");
3 try {
4 String className = "oracle.jdbc.driver.OracleDriver";
5 Class<?> driverObject = Class.forName(className);
6 System.out.println("driverObject=" + driverObject);
7 System.out.println("your installation of JDBC Driver OK.");
8 } catch (Exception e) {
9 // your installation of JDBC Driver Failed
10 System.out.println("Failed: JDBC Driver Error: " + e.getMessage());
11 }
12 System.out.println("TestJDBCDriverInstallation_Oracle end.");
13 }
在确认驱动正常工作之后,尝试连接你的Oracle数据库,见下例:
1 //以非sysdba的身份登录
2 public static void main(String[] args) throws Exception {
3 Class.forName("oracle.jdbc.driver.OracleDriver");
4 /* @//192.168.1.101:1526/OraHome
5 * @//host_ip:port/SID
6 */
7 Connection conn = DriverManager.getConnection(
8 "jdbc:oracle:thin:@//192.168.1.101:1526/OraHome","scott","123456");
9 Statement stmt = conn.createStatement();
10 ResultSet rset = stmt.executeQuery("select * from user_tables");
11 while (rset.next())
12 System.out.println(rset.getString(1));
13 stmt.close();
14 }
15 //以sysdba的身份登录
16 public static void main(String[] args) throws Exception {
17 Class.forName("oracle.jdbc.driver.OracleDriver");
18 Properties conProps = new Properties();
19 conProps.put("user", "sys");
20 conProps.put("password", "helloworld");
21 conProps.put("internal_logon", "sysdba");
22 Connection conn = DriverManager.getConnection(
23 "jdbc:oracle:thin:@//192.168.1.101:1526/OraHome",conProps);
24 //创建statement,并通过它执行sql查询。
25 Statement stmt = conn.createStatement();
26 ResultSet rset = stmt.executeQuery("select * from user_tables");
27 while (rset.next()) {
28 System.out.println(rset.getString(1));
29 }
30 stmt.close();
31 }
2. 创建和删除表。
1 public static void main(String[] args) throws ClassNotFoundException{
2 Class.forName("oracle.jdbc.driver.OracleDriver");
3 Properties conProps = new Properties();
4 conProps.put("user", "sys");
5 conProps.put("password", "helloworld");
6 conProps.put("internal_logon", "sysdba");
7 Connection conn = null;
8 Statement statement = null;
9 try {
10 conn = DriverManager.getConnection(
11 "jdbc:oracle:thin:@//192.168.1.101:1526/OraHome", conProps);
12 statement = conn.createStatement();
13 String sql = "CREATE TABLE books (id NUMBER(11), title VARCHAR2(64))";
14 statement.execute(sql);
15 } catch (SQLException e) {
16 e.printStackTrace();
17 } finally {
18 try {
19 //为了方便程序
补充:软件开发 , Java ,