首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使我的java代码能够与许多数据库和许多OSes一起工作?

如何使我的java代码能够与许多数据库和许多OSes一起工作?
EN

Stack Overflow用户
提问于 2012-08-01 21:45:38
回答 3查看 589关注 0票数 0

我想让java代码在3-4个DBMS中创建一个示例数据库,如mysql、oracle sql、sql server等安装在任何OS - windows、linux发行版、Mac等上。

我如何做我的代码:

  1. 自动(或在用户的帮助下)在计算机中找到jdbc驱动程序。
  2. 执行一组固定的sql命令,这些命令可以工作,而不管使用的DBMS是什么。

请建议我怎么做这些事。

编辑:这将是一个后端的应用程序。我对JDBC有点陌生,所以我一开始就在寻找简单/基本的解决方案。以后就会换高级的了。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-01 21:49:31

  1. 将所有支持的数据库的驱动程序与您的程序捆绑在一起。用户不必处理JDBC驱动程序或连接字符串。(提供一个UI来编辑后者,这在数据库之间可能有所不同。)
  2. 使用ORM (如Hibernate);或者,如果不需要用数据填充数据库,则使用数据库迁移库(如立交桥)
票数 3
EN

Stack Overflow用户

发布于 2012-08-01 22:02:35

看这里..。如何从任意位置使用JDBC驱动程序

2、不同的DBMS使用相似但不相同的语法。你至少有三个选择:

  • 只使用您感兴趣的所有DBMS支持的sql命令;
  • 嗅探DBMS并相应地修改SQL语句;
  • 使用SQL抽象层附带的框架(例如的JPQL)。我想这对你想要的东西来说可能太费劲了。
票数 2
EN

Stack Overflow用户

发布于 2012-08-01 22:08:07

如果您想让用户找到JDBC驱动程序,那么您应该处理ClassLoaders和实现定制的ClassLoaders,这不是一件简单的事情。或者您应该使用一个应用服务器来为您处理这个问题。

否则,类路径中将有所有JDBC驱动程序可用。

顺便说一句,JDBC是一个用于处理大多数使用SQL的RDBMSes的适配器,每个数据库提供程序都对它们的SQL进行了特定的供应商定制。例如,甲骨文中有序列,MySQL中有自动编号。或者您可以在limit中不可用的MySQL查询中使用Oracle。这个问题的解决方案是做Hibernate所做的事情(使用方言来处理特定于数据库供应商的东西)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11768036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档