概述
今天写Spring连接数据库,导入包的时候,混淆了javax.activation.DataSource与javax.sql.DataSource。
导致DataSource和阿里的DruidDataSource不匹配,却一直以为是阿里依赖问题,在错误的方向弄了很久。后来才发现是javax的DataSource包导入错误。特意查了javax.activation.DataSource与javax.sql.DataSource的区别。
如下:
javax.activation.DataSource中定义的接口跟I/O有关,是对资源文件的抽象,类似Reader、Writer等。而javax.sql.DataSource是JDBC2.0标准中的规范,其目的是针对1.0标准通过DriverManager.getConnenction()方式获取到数据库连接。其消耗大、不可复用等缺点而推出的新一代规范。
javax.sql.DataSource接口方法也只有两个:有参和无参的getConnection()方法。具体的现实有DruidDataSource(阿里)和BasicDataSource(Apache),还有HiKariCP(数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池。https://blog.csdn.net/fly_boss/article/details/60965849)
这些数据源能提供可复用方式的数据库连接,大多采用连接池实现(这些连接池的原理和C3P0类似,但是性能强很多),好处就是资源的服用。
最后
以上就是糟糕水池为你收集整理的javax.activation.DataSource与javax.sql.DataSource的区别的全部内容,希望文章能够帮你解决javax.activation.DataSource与javax.sql.DataSource的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复