Database 开发可以使用多种数据库类型的应用程序的最简单方法?

Database 开发可以使用多种数据库类型的应用程序的最简单方法?,database,web-applications,Database,Web Applications,我有一个类的项目,它要求如果使用数据库,用户可以选择一个不同类型的数据库。因此,虽然我可以使用MySQL进行开发,但在项目的最终版本中,用户必须能够在安装时选择数据库(Oracle、MySQL、SQLite等)。如果有简单的方法,最简单的方法是什么 只要该部门的Linux机器支持,所使用的语言就由我决定,因此可以是Java、PHP、Perl等。我一直在研究并找到有关ODBC、JDBC和SQLJ(如)的信息,但我对数据库非常陌生,所以我很难找出最适合我需要的语言。也有可能没有一个简单的方法来做到这

我有一个类的项目,它要求如果使用数据库,用户可以选择一个不同类型的数据库。因此,虽然我可以使用MySQL进行开发,但在项目的最终版本中,用户必须能够在安装时选择数据库(Oracle、MySQL、SQLite等)。如果有简单的方法,最简单的方法是什么

只要该部门的Linux机器支持,所使用的语言就由我决定,因此可以是Java、PHP、Perl等。我一直在研究并找到有关ODBC、JDBC和SQLJ(如)的信息,但我对数据库非常陌生,所以我很难找出最适合我需要的语言。也有可能没有一个简单的方法来做到这一点;这位教授承认,他也不是一个数据库专家,他似乎认为在不清楚需要做什么的情况下,这很容易

这是针对web应用程序的,但它应该相当直接,例如在客户端使用HTML和Javascript,在服务器端使用Java和MySQL数据库。没有提到框架,所以我认为它们太多了。如果有必要,我可以选择使用Tomcat或Apache,但总体思路是保持简单,使用的所有东西都应该能够通过用户级访问进行安装/更改/配置。因此,我认为,像必须重新编译PHP才能使用ODBC这样的事情将不复存在


在这些限制范围内,与任意数据库交互的最佳方式(如果有的话)是什么?

使用带有数据库抽象层和orm的框架。尝试或使用带有数据库抽象层和orm的框架。试试看或者

好吧,您可以选择两种方式(在Java中):

  • 您可以开发自己的类来处理不同的数据库,并在JDBC中加载它们的驱动程序。这样,您将为自己创建一个数据访问层,这需要一些时间

  • 您可以使用Hibernate(或其他ORM)。这样,Hibernate将为您处理事情,您只需知道如何使用Hibernate。学习Hibernate可能需要一些时间,但当您习惯了它,它对您未来的项目非常有用

  • 您可以选择两种方式(在Java中):

  • 您可以开发自己的类来处理不同的数据库,并在JDBC中加载它们的驱动程序。这样,您将为自己创建一个数据访问层,这需要一些时间

  • 您可以使用Hibernate(或其他ORM)。这样,Hibernate将为您处理事情,您只需知道如何使用Hibernate。学习Hibernate可能需要一些时间,但当您习惯了它,它对您未来的项目非常有用


  • 我认为这里的问题是SQL不是真正的标准。我的意思是,供应商(Oracle、MySQL等)包含了非SQL标准的类型和功能,以便将您“绑定”到他们的数据库中,例如Oracle的VARCHAR2等等

    当我在大学时,我最后一年的项目是创建一个应用程序,允许用户使用带有Java前端的JDBC创建关系数据库

    JDBC的使用非常简单,但问题在于找到足够多的SQL特性/类型,所有供应商都有这些特性/类型。这样他们就可以毫无问题地在它们之间切换。解决这个问题的一种方法是实现模块来处理特定于供应商的问题,并编写在它们之间进行转换的方法。例如,您可以为MySQL开发一个数据库,其中包含大量特定于MySQL的代码,但是您可能希望使用Oracle,然后会出现一些问题,您需要解决这些问题

    我会花一些时间看看所有供应商都实现了什么样的核心SQL标准,然后为这些特性编写代码。但我认为您使用的技术不是问题,而是您创建的SQL


    希望这有帮助,如果没有帮助,请道歉

    我认为您在这里遇到的问题是SQL不是真正的标准。我的意思是,供应商(Oracle、MySQL等)包含了非SQL标准的类型和功能,以便将您“绑定”到他们的数据库中,例如Oracle的VARCHAR2等等

    当我在大学时,我最后一年的项目是创建一个应用程序,允许用户使用带有Java前端的JDBC创建关系数据库

    JDBC的使用非常简单,但问题在于找到足够多的SQL特性/类型,所有供应商都有这些特性/类型。这样他们就可以毫无问题地在它们之间切换。解决这个问题的一种方法是实现模块来处理特定于供应商的问题,并编写在它们之间进行转换的方法。例如,您可以为MySQL开发一个数据库,其中包含大量特定于MySQL的代码,但是您可能希望使用Oracle,然后会出现一些问题,您需要解决这些问题

    我会花一些时间看看所有供应商都实现了什么样的核心SQL标准,然后为这些特性编写代码。但我认为您使用的技术不是问题,而是您创建的SQL


    希望这有帮助,如果没有帮助,请道歉

    有很多对象关系数据库框架,除非您更喜欢jdbc。对于简单/小型应用程序,这应该可以正常工作

    有很多对象关系数据库框架,除非您更喜欢jdbc。对于简单/小型应用程序,这应该可以正常工作

    如果你想让Java保持在Hibernate状态(不需要框架)。Hibernate相当容易使用。您可以编写HQL,将其转换为您所使用的数据库所需的SQL。

    如果您想将Java保持在Hibernate状态(不需要框架)。Hibernate相当容易使用。您可以编写HQL,将其转换为正在使用的数据库所需的SQL。

    可以使用(ORM)或(DAL)。它们旨在为多个数据库提供标准API