设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

一项针对数据库URI标准的提议

2013-12-25 11:10| 发布者: joejoe0332| 查看: 2480| 评论: 0|原作者: Jonathan Allen|来自: InfoQ

摘要:   大卫·惠勒提出了一种用于数据库连接的标准URI格式。该提议将允许基于不同技术构建的应用程序共用相同的连接串。这对于包括报表设计器、自动构建和部署工具以及ORM在内的众多工具都是有好处的。该提议以db作为方 ...

  大卫·惠勒提出了一种用于数据库连接的标准URI格式。该提议将允许基于不同技术构建的应用程序共用相同的连接串。这对于包括报表设计器、自动构建和部署工具以及ORM在内的众多工具都是有好处的。该提议以db作为方案名,紧随其后是数据库引擎名。这是第一个与当前做法不同的地方。它没有指定具体的驱动程序,而是留给应用程序自己决定。


  对于跨平台的URI标准而言,这是关键。由于连接到同样的数据库引擎常常需要不同的驱动程序名,所以在JDBC、OleDB和ODBC之间共用连接串非常困难。即使在一种API中,也可能有多种驱动程序可用。


  在引擎名之后是一组标准化的参数:用户名、密码、主机、端口和数据库名。这些参数总是以相同的顺序出现,这是又一个与当前做法不同的地方。

  • db:engine://[username[:password]@]host[:port][/dbname][?params]
  • db:engine:[dbname][?params]


  任何数据库在“?”之后指定参数都非常像HTTP请求的查询参数。这些参数会使用标准的键-值格式。


  最后是一个可选段,用符号“#”表示,用于指定具体的表或视图。



  有若干格式都是遵循engine://authority/dbname这一惯例,该格式即是受此启发。



  有人对使用前缀“db:”提出了若干反对意见。彼得·艾森特劳特写到,


我认为前缀db:是没有必要。首先,我认为,RFC 3986的语法规则不允许有两个方案前缀。其次,它没用。假设一款软件能够使用这些URI,那么它也将能够通过方案本身知道需要做什么。


通常,URL确定了用于访问资源的协议,但它并不是资源的性质。例如,一个git库可以通过几种不同的方案访问。没有单独的git:URL系统,更不用说scm:git或者其它什么实现。另外,浏览器能够通过诸如http:和ftp:等几种不同的协议访问文件。没有单独的textfile:或者video:URL方案。真见鬼,文件甚至可能是一个数据库,因此,我希望有个像SQLite的东西,可以接受典型的http:URL作为其数据库URL。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部