JDBC注册过程分析
程序员文章站
2022-05-13 18:11:02
...
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()));
}
|
上一篇: sqlite3添加字段
下一篇: java大数据处理-大量数据到Excel
推荐阅读
-
Tomcat源码分析三:Tomcat启动加载过程(一)的源码解析
-
Mysql死锁如何排查:insert on duplicate死锁一次排查分析过程
-
Python实现操纵控制windows注册表的方法分析
-
Qt事件分发机制源码分析之QApplication对象构建过程
-
Mybaits 源码解析 (六)----- 全网最详细:Select 语句的执行过程分析(上篇)(Mapper方法是如何调用到XML中的SQL的?)
-
Oracle过程与函数的区别分析
-
搜索引擎流量下跌后的分析诊断过程
-
通过Android trace文件分析死锁ANR实例过程
-
Oracle sql的运行过程分析
-
mysql存储过程之引发存储过程中的错误条件(SIGNAL和RESIGNAL语句)实例分析