获取数据库Connection连接

JDBC(Java DataBase Connectivity)定义了连接数据库的规范。使用JDBC操作数据源主要步骤是:

  1. 与数据源建立连接
  2. 执行SQL语句
  3. 检索SQL执行结果
  4. 关闭连接

DriverManager获取Connection

在JDBC1.0版本中,定义了DriverManager管理并获取驱动连接:

Class.forName("com.mysql.jdbc.Driver") // ①
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName","userName","password")

①:代码显式地加载驱动,此类通过父类继承了java.sql.Driver,提供了静态方法向DriverManager注册了mysql驱动,如下:

static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }

但是这种方法需要硬编码,不利于移植和变更驱动,于是在JDBC4.0版本利用SPI(Service Provider Interface)服务提供发现机制进行了优化。
符合4.0版本的驱动都会在META-INF/services/Driver文件中指定驱动类的完全限定名,例如mysql-connector-java.jar包这个文件内容是com.mysql.cj.jdbc.Driver,通过SPI的ServiceLoader.load(Driver.class)能加载文件内容中的实现类

DataSource获取Connection

JDBC2.0版本扩展包提供了javax.sql.DataSource,是一种比较推荐的获取数据源的方式。此扩展包主要的接口有DataSource,PooledConnection,RowSet,XADataSource,XAConnection。规范了连接池,返回结果集,分布式连接等。获取Connection代码如下:


DataSource获取Connection

其中利用JNDI(Java Naming and Directory Interface)API绑定DataSource名称和对象的,java仅仅提供JNDI的规范,具体实现需要使用方实现,以下例子用的是apache实现的。


apache实现的JNDI查找DataSource例子
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容