JDBC是java的数据库链接规范,链接上数据库可以并执行sql,执行逻辑如下,获取链接创建statement调用执行sql,获取结果,关闭链接
public static void main(String[] args) {
try {
Connection connection = DriverManager.getConnection("jdbc:mysql://39.133.312.23:3306/mall", "root", "654321");
Statement statement = connection.createStatement();
boolean execute = statement.execute("select * from tb_order");
ResultSet resultSet = statement.getResultSet();
while(resultSet.next()){
ResultSetMetaData metaData = resultSet.getMetaData();
Date create_time = resultSet.getDate("create_time");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String format = simpleDateFormat.format(create_time);
System.out.println(format);
}
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
通过DriverManager加载驱动的有两种方式加载驱动
1、通过Class.forname方法加载驱动,设置同步加载驱动的静态块(驱动静态块中会调用DriverManager的注册驱动)。
2、通过ServiceLoader加载驱动类
DriverManager.getConnection--- 可以获取链接,触发上述1、2步程序
第一步loadInitialDrivers() 加载驱动
// 特权执行
drivers = AccessController.doPrivileged(new PrivilegedAction(){
}
System.getProperty("jdbc.drivers") //获取驱动
ServiceLoader加载Driver的实现类, //获取驱动
关于ServiceLoader请看:https://blog.csdn.net/shi2huang/article/details/80308531
当驱动被加载时,驱动会调用DriverManager的DriverManager.registerDriver(new Driver());方法将驱动注册到DriverManager;