数据库类分析
java.sql.DriverManager:
驱动管理器静态类,类加载时会自动加载配置文件中jdbc.drivers配置的驱动,所有数据库驱动类加载时会调用DriverManager.registerDriver注册自己到DriverManager中,如下代码,为oracle驱动类中的一段静态代码(类加载时执行):
static {if (defaultDriver == null) {defaultDriver = new oracle.jdbc.OracleDriver();DriverManager.registerDriver(defaultDriver);}
}
常用函数有:
static void registerDriver(java.sql.Driver driver):供驱动程序注册自己
static Connection getConnection(String url,String user, String password):取数据库连接,根据url找到合适的数据库连接。
javax.sql.DataSource:
数据库数据源工厂,驱动程序管理器的另一个选择,构造时需传入url地址、用户名、密码等,常用函数有:
Connection getConnection():获取数据库连接
Connection getConnection(String username, String password):获取数据库连接
常用数据库源包括:
oracle.jdbc.pool.OracleDataSource:oracle数据库源
com.mysql.cj.jdbc.MysqlDataSource:mysql数据库源
dm.jdbc.driver.DmdbDataSource:达梦数据库源oracle.jdbc.pool.OracleOCIConnectionPool:oracle数据库连接池
com.mysql.cj.jdbc.MysqlConnectionPoolDataSource:mysql数据库连接池
dm.jdbc.driver.DmdbConnectionPoolDataSource:达梦数据库连接池
com.zaxxer.hikari.HikariDataSource:SpringBoot默认数据库连接池,世界上最快的数据库连接池
java.sql.Driver:
数据库驱动程序接口类,需要实现数据库驱动的类都需要基础该接口,一般不会直接使用,常用的数据库驱动类有:
oracle.jdbc.driver.OracleDriver:oracle数据库驱动
com.mysql.cj.jdbc.Driver:mysql数据库驱动
dm.jdbc.driver.DmDriver:达梦数据库驱动
java.sql.Connection:连接,比较常用。
java.sql.Statement:会话,比较常用。
java.sql.ResultSet:结果集,比较常用。
常用数据库驱动
数据库 | jar包 | 驱动 |
oracle | com.oracle.ojdbc6 | oracle.jdbc.OracleDriver |
mysql | mysql.mysql-connector-java | com.mysql.cj.jdbc.Driver |
数据库访问示例
1.通过DriverManager访问数据库:
public static void main( String[] args ) throws SQLException {Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.7.214:2881/mysql", "root", "");Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery("select 1 a");while (resultSet.next()){String ename = resultSet.getString("a");System.out.println(ename);}
}
2.通过DataSource访问数据库:
public static void main( String[] args ) throws SQLException {MysqlDataSource dataSource= new MysqlDataSource();dataSource.setURL("jdbc:mysql://192.168.7.214:2881/mysql");dataSource.setUser("root");dataSource.setPassword("");;Connection connection = dataSource.getConnection();Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery("select 1 a");while (resultSet.next()){String ename = resultSet.getString("a");System.out.println(ename);}
}