加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在Java中的DataSource中实现getConnection()?

发布时间:2020-12-15 08:36:10 所属栏目:Java 来源:网络整理
导读:我正在阅读DataSource,here,并试图通过使用一个简单的文件作为我的“数据源”在我自己的小项目中实现它.我创建了一个非常简单的课程…… public class QueueData implements DataSource { ... } 虽然它很简单的原因是因为我无法找到解释实现方法应该如何工作
我正在阅读DataSource,here,并试图通过使用一个简单的文件作为我的“数据源”在我自己的小项目中实现它.我创建了一个非常简单的课程……

public class QueueData implements DataSource { ... }

虽然它很简单的原因是因为我无法找到解释实现方法应该如何工作的资源.每个人似乎都只列出了一个上下文的初始化和一个神奇的getConnection()调用,就像这样.

Context ctx = new InitialContext(env1);
    DataSource ds = (DataSource)ctx.lookup("jdbc/mydatasource");
    Connection conn = ds.getConnection(); // Magical method!

但是你们其中一个人真的能给我一个getConnection()里面的代码应该是什么样子的例子吗?

解决方法

之所以没有人展示样本如何实现DataSource并且“只是”使用它们是因为只有JDBC驱动程序供应商(通常是数据库制造商)需要编写它们.

它应该做的当然是返回一个Connection对象,它也需要是一个特定于驱动程序的类的实例.在您的情况下,可以接受SQL语句从文件中读取的内容.

您的代码可能如下所示:

public Connection getConnection(){
      final String fileName = getFileNameFromMyDatabaseUrl();
      return new MyFileConnection(new File(fileName));
 }

当然,这也不是非常有趣的代码.

您可以查看一些开源DataSource实现,以了解它们的作用:

> Apache Commons DBCP PoolingDataSource(连接池)
> Apache Derby的EmbeddedDataSource(用Java编写的嵌入式数据库)
> Postgresql的BaseDataSource(Postgresql JDBC驱动程序的抽象基类)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读