### JDBC访问所有数据库连接数据源知识点详解 #### 一、JDBC概述与环境配置 Java Database Connectivity (JDBC) 是一种用于执行 SQL 语句的标准 Java API,它为 Java 应用程序提供了一种标准的方式来连接多种类型的数据库。在 Java EE Web 应用程序中,通常需要将 JDBC 驱动放置到项目的 `WEB-INF/lib` 目录下。这样,当应用程序部署到服务器上时,服务器能够自动识别这些驱动,并将其加入到类路径(classpath)中。 #### 二、加载不同的数据库驱动 为了能够连接不同类型的数据库,需要根据所使用的数据库类型来加载相应的 JDBC 驱动。这一步是通过 Java 的 `Class.forName()` 方法来完成的,该方法会加载指定类,并将其初始化。下面列举了一些常见数据库的驱动加载方式: 1. **Oracle 8/8i/9i 数据库** (thin 模式): ```java Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ``` 2. **SQL Server 7.0/2000 数据库**: ```java Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); ``` 3. **DB2 数据库**: ```java Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance(); ``` 4. **Informix 数据库**: ```java Class.forName("com.informix.jdbc.IfxDriver").newInstance(); ``` 5. **Sybase 数据库**: ```java Class.forName("com.sybase.jdbc.SybDriver").newInstance(); ``` 6. **MySQL 数据库**: ```java Class.forName("com.mysql.jdbc.Driver").newInstance(); ``` 7. **PostgreSQL 数据库**: ```java Class.forName("org.postgresql.Driver").newInstance(); ``` 注意:上述代码中的 `.newInstance()` 已经过时,在现代 Java 开发中,我们通常使用更简单的 `DriverManager.registerDriver(new Driver());` 来注册驱动。 #### 三、获取数据库连接 获取数据库连接是使用 JDBC 进行数据库操作的基础步骤。对于不同的数据库,其连接字符串(URL)、用户名和密码可能有所不同。以下是一些示例: 1. **Oracle 8/8i/9i 数据库** (thin 模式): ```java String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String user = "scott"; String password = "tiger"; Connection conn = DriverManager.getConnection(url, user, password); ``` 2. **SQL Server 7.0/2000 数据库**: ```java String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; String user = "sa"; String password = ""; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. **DB2 数据库**: ```java String url = "jdbc:db2://localhost:5000/sample"; String user = "admin"; String password = ""; Connection conn = DriverManager.getConnection(url, user, password); ``` 4. **Informix 数据库**: ```java String url = "jdbc:informix-sqli://localhost:1533/testDB:INFORMIXSERVER=myserver;user=testuser;password=testpassword"; Connection conn = DriverManager.getConnection(url); ``` 5. **Sybase 数据库**: ```java String url = "jdbc:sybase:Tds:localhost:5007/tsdata"; Properties sysProps = System.getProperties(); sysProps.put("user", "userid"); sysProps.put("password", "user_password"); Connection conn = DriverManager.getConnection(url, sysProps); ``` 6. **MySQL 数据库**: ```java String url = "jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312"; Connection conn = DriverManager.getConnection(url); ``` 7. **PostgreSQL 数据库**: ```java String url = "jdbc:postgresql://localhost/testDB"; String user = "myuser"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` #### 四、创建 Statement 和 PreparedStatement - **Statement**: 用于执行简单 SQL 语句。 ```java Statement stmt = conn.createStatement(); ``` - **PreparedStatement**: 用于执行预编译的 SQL 语句。这种方式可以提高 SQL 执行效率,防止 SQL 注入攻击。 ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table_name (column1, column2) VALUES (?, ?)"); pstmt.setString(1, "value1"); pstmt.setInt(2, 10); int rowsAffected = pstmt.executeUpdate(); ``` 通过上述内容可以看出,JDBC 提供了一种灵活且统一的方式,使得 Java 应用程序能够轻松地与各种类型的数据库进行交互。无论是加载驱动、建立连接还是执行 SQL 语句,都有明确的操作步骤和最佳实践。这对于开发人员来说是非常有用的,因为它极大地简化了数据库访问的过程,同时也增强了应用程序的可移植性和可维护性。
2 加载JDBC驱动,并将其注册到DriverManager中,下面是一些主流数据库的JDBC驱动加裁注册的代码:
//Oracle8/8i/9iO数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
//Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
//DB2数据库
Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
//Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
//Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
//MySQL数据库
Class.forName("com.mysql.jdbc.Driver").newInstance();
//PostgreSQL数据库
Class.forNaem("org.postgresql.Driver").newInstance();
3 建立数据库连接,取得Connection对象.例如:
//Oracle8/8i/9i数据库(thin模式)
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="tiger";
Connection conn=DriverManager.getConnection(url,user,password);
//Sql Server7.0/2000数据库
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="sa";
String password="";
Connection conn=DriverManager.getConnection(url,user,password);
//DB2数据库
- 粉丝: 9
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程