JDBC是java的數(shù)據(jù)庫鏈接規(guī)范讲衫,鏈接上數(shù)據(jù)庫可以并執(zhí)行sql,執(zhí)行邏輯如下畔濒,獲取鏈接創(chuàng)建statement調(diào)用執(zhí)行sql顽悼,獲取結(jié)果,關(guān)閉鏈接
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加載驅(qū)動(dòng)的有兩種方式加載驅(qū)動(dòng)
1、通過Class.forname方法加載驅(qū)動(dòng)较木,設(shè)置同步加載驅(qū)動(dòng)的靜態(tài)塊(驅(qū)動(dòng)靜態(tài)塊中會(huì)調(diào)用DriverManager的注冊(cè)驅(qū)動(dòng))红符。
2、通過ServiceLoader加載驅(qū)動(dòng)類
DriverManager.getConnection---??? 可以獲取鏈接伐债,觸發(fā)上述1预侯、2步程序
第一步loadInitialDrivers() 加載驅(qū)動(dòng)
? ? ? ? ? ? ?? // 特權(quán)執(zhí)行?
?????????????? drivers = AccessController.doPrivileged(new PrivilegedAction(){
???????????????????? }
? ? ? ? ? ? ? ? ? ? System.getProperty("jdbc.drivers")?? //獲取驅(qū)動(dòng)
? ? ? ? ? ? ? ? ?? ServiceLoader加載Driver的實(shí)現(xiàn)類, //獲取驅(qū)動(dòng)
?????????????????? 關(guān)于ServiceLoader請(qǐng)看:https://blog.csdn.net/shi2huang/article/details/80308531
當(dāng)驅(qū)動(dòng)被加載時(shí)峰锁,驅(qū)動(dòng)會(huì)調(diào)用DriverManager的DriverManager.registerDriver(new Driver());方法將驅(qū)動(dòng)注冊(cè)到DriverManager萎馅;