1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package Base;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class BaseDriver {
public static void Test() throws SQLException{
//注册驱动
DriverManager.registerDriver( new com.mysql.jdbc.Driver());
//建立连接
Connection conn = (Connection) DriverManager.getConnection( "" , "root" , "password01!" );
//创建语句
Statement stm = (Statement) conn.createStatement();
//执行语句,获取结果
ResultSet resultSet = stm.executeQuery( "select * from t_user" );
//遍历结果集
while (resultSet.next()){
System.out.println(resultSet.getObject( 0 )+ "\t" +resultSet.getObject( 1 )+ "\t" +resultSet.getObject( 2 )+ "\t" +resultSet.getObject( 3 ));
}
//释放资源
resultSet.close();
stm.close();
conn.close();
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
|
public class DriverManager {
// List of registered JDBC drivers
private final static CopyOnWriteArrayList<DriverInfo> registeredDrivers = new CopyOnWriteArrayList<>();
private static volatile int loginTimeout = 0 ;
private static volatile java.io.PrintWriter logWriter = null ;
private static volatile java.io.PrintStream logStream = null ;
// Used in println() to synchronize logWriter
private final static Object logSync = new Object();
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/**
* Returns the {@code Class} object associated with the class or
* interface with the given string name. Invoking this method is
* equivalent to:
*
* <blockquote>
* {@code Class.forName(className, true, currentLoader)}
* </blockquote>
*
* where {@code currentLoader} denotes the defining class loader of
* the current class.
*
* <p> For example, the following code fragment returns the
* runtime {@code Class} descriptor for the class named
* {@code java.lang.Thread}:
*
* <blockquote>
* {@code Class t = Class.forName("java.lang.Thread")}
* </blockquote>
* <p>
* A call to {@code forName("X")} causes the class named
* {@code X} to be initialized.
*
* @param className the fully qualified name of the desired class.
* @return the {@code Class} object for the class with the
* specified name.
* @exception LinkageError if the linkage fails
* @exception ExceptionInInitializerError if the initialization provoked
* by this method fails
* @exception ClassNotFoundException if the class cannot be located
*/
@CallerSensitive
public static Class<?> forName(String className)
throws ClassNotFoundException {
return forName0(className, true ,
ClassLoader.getClassLoader(Reflection.getCallerClass()));
}
|
相关推荐
通过阅读`JDBC loading 1.pdf`和`JDBC loading 2.pdf`,你可以获得更详细的实践指导和案例分析,进一步掌握Oracle JDBC驱动的加载和使用技巧。记住,理解和优化这个过程对于编写高效的Java数据库应用至关重要。
### JDBC中驱动加载的过程分析(上) #### 一、Driver接口 在JDBC体系中,`java.sql.Driver`接口扮演着核心角色,它是所有数据库驱动程序必须实现的标准接口。此接口定义了数据库提供商用于与Java应用程序通信的...
本文将深入分析JDBC驱动的加载机制,特别是sun提供的JDBC-ODBC桥接驱动的加载过程。 #### JDBC驱动加载原理 JDBC驱动加载是一个关键步骤,它决定了Java应用程序能否成功地与数据库建立连接。在本例中,我们将探讨...
### JDBC中驱动加载的过程分析(下) 在深入探讨JDBC驱动加载的过程之前,我们先简要回顾一下上文提到的JDBC(Java Database Connectivity)是什么。JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库...
**标题:“sharding-JDBC启动流程分析”** 在Java领域,Sharding-JDBC是一个轻量级的数据分片中间件,它适用于已经存在成熟数据库访问层的项目,无需更改原有架构即可实现数据分布式处理。Sharding-JDBC通过在JDBC...
### Jdbc深入分析 #### 一、JDBC概述与应用场景 **1.1 JDBC概念** JDBC(Java Database Connectivity)是Java中用来对关系型数据库进行访问的一种标准API,它提供了一种统一的方式去访问不同的数据库系统。通过...
1. `Driver`接口:所有JDBC驱动都必须实现这个接口,注册到JDBC DriverManager中,以便于应用程序通过`Class.forName()`加载和使用。 2. `Connection`接口:表示与数据库的会话,通过它执行SQL语句并管理事务。 3....
### JDBC调用存储过程知识点详解 #### 一、引言 在Java开发中,通过Java Database Connectivity (JDBC) 来访问数据库是非常常见的操作。其中,调用存储过程是实现复杂业务逻辑的一种重要方式。存储过程是预编译好...
- **注册驱动**:通过`Class.forName()`方法加载特定数据库的JDBC驱动。 - **建立连接**:使用`DriverManager.getConnection()`方法连接到数据库,需提供URL、用户名和密码。 - **创建Statement**:创建一个`...
- 驱动注册:在JDBC驱动类的静态初始化块中,通常会调用DriverManager.registerDriver(),将自身注册到DriverManager。 - 连接建立:DriverManager.getConnection()会遍历所有注册的Driver,尝试建立连接。这个...
1. `DriverManager`:管理数据库驱动,负责加载和注册JDBC驱动,建立和数据库的连接。 2. `Connection`:代表与数据库的会话,通过该接口可以创建Statement或PreparedStatement对象。 3. `Statement`:用于执行静态...
2. 连接Clickhouse:通过`java.sql.DriverManager`类注册JDBC驱动,并建立与Clickhouse服务器的连接。例如: ```java Class.forName("ru.yandex.clickhouse.ClickHouseDriver"); Connection conn = DriverManager...
// 注册JDBC驱动 Class.forName(driver); // 建立数据库连接 Connection conn = DriverManager.getConnection(url); System.out.println("Connected to SAP HANA database successfully!"); // 关闭连接 ...
深入探讨JDBC的高级主题,包括DbUtils源码分析、Spring对JDBC的封装等,有助于更深层次地理解和掌握JDBC技术。 综上所述,JDBC不仅是Java应用程序与数据库交互的基础,而且通过其丰富的功能和API,为开发者提供了...
本文详细分析了Java使用Jdbc连接Oracle数据库并执行简单查询操作的过程,并提供了一个简单的Java程序示例。同时,我们还讨论了使用PreparedStatement防止SQL注入的方法。通过本文,读者可以了解Java中Jdbc连接Oracle...
- **注册驱动**:在Java程序中,通过`Class.forName()`方法注册JDBC驱动。例如:`Class.forName("com.intersys.jdbc.CacheDriver")`。 - **建立连接**:使用`DriverManager.getConnection()`方法建立到Cache...
- **作用**:JDBC使得Java程序能够以统一的方式与多种数据库进行交互,大大简化了数据库开发过程。 ##### 安装配置指南 - **下载安装JDBC驱动**:根据所使用的数据库类型(如MySQL、Oracle等),从官方网站下载...
Sharding-JDBC的规则配置包括数据源配置、分片策略配置、规则注册等,而MyBatis配置则涉及到数据源、Mapper扫描、SqlSessionFactory等内容。 5. **源码分析** 源码中可能包含以下几个关键部分: - `...
#### 1.2 Dubbo执行过程分析 Dubbo架构主要包括以下角色: - Provider:服务提供方,发布服务到注册中心。 - Consumer:服务消费方,通过注册中心获取服务并调用。 - Registry:注册中心,用于服务的注册和发现。 - ...
这行代码会初始化驱动并注册到JDBC驱动管理器。 2. **建立连接**:加载驱动后,可以使用`DriverManager.getConnection()`方法建立到达梦数据库的连接。连接字符串通常包含数据库URL、用户名和密码,如: ```java ...