在 Java 中将您的数据库函数放在专用的 class/methods 中是一种很好的形式吗?
Is it good form in Java to place your DB functions in dedicated class/methods?
在编写一个相对简单的应用程序时,我正在考虑制作一个 class 来处理所有数据库交互。我打算在 class 中构建所有准备好的语句。这样,任何数据库更改(可能)只会导致对该数据库的更改 class。 (此外,它将数据库用户 ID 和密码放在一个 class 中。)
例如,我计划编写一个 class,其中包含一个方法来注册 DB 驱动程序,另一个用于建立连接,另一个用于读取,另一个用于写入,还有一个用于更新。
除了易于维护代码之外,这还有其他好处吗?也许在多线程上下文中?
此外,我计划将变量作为参数传递给查询方法以绑定到准备好的语句。我也打算 return 结果集作为参数。
我是不是想多了?
TIA.
这听起来 "by definition" 是数据库的封装,然后是 adapter/bridge/facade-'design pattern' 变体(取决于您的具体实施)
所以不,我不认为你是 over-thinking 这个。
我会说像 hibernate 这样使用 ORM 是更好的选择。它将减少大量样板代码。加上更容易 read-write 或编写迁移(添加新字段或表)。
我在我的大学项目中使用了类似的方法,纯粹是 java。我创建了一个具有所有功能的单例 class 数据库。单例 class 仅确保数据库方法的副本。
您可以使用 DBUtil,它是封装数据库访问和操作的库(与您尝试做的相同)。
您不应在 class 中对凭据进行硬编码,因为 de-compiling 您的 class 可以访问它。参见 here。
在编写一个相对简单的应用程序时,我正在考虑制作一个 class 来处理所有数据库交互。我打算在 class 中构建所有准备好的语句。这样,任何数据库更改(可能)只会导致对该数据库的更改 class。 (此外,它将数据库用户 ID 和密码放在一个 class 中。)
例如,我计划编写一个 class,其中包含一个方法来注册 DB 驱动程序,另一个用于建立连接,另一个用于读取,另一个用于写入,还有一个用于更新。
除了易于维护代码之外,这还有其他好处吗?也许在多线程上下文中?
此外,我计划将变量作为参数传递给查询方法以绑定到准备好的语句。我也打算 return 结果集作为参数。
我是不是想多了?
TIA.
这听起来 "by definition" 是数据库的封装,然后是 adapter/bridge/facade-'design pattern' 变体(取决于您的具体实施)
所以不,我不认为你是 over-thinking 这个。
我会说像 hibernate 这样使用 ORM 是更好的选择。它将减少大量样板代码。加上更容易 read-write 或编写迁移(添加新字段或表)。 我在我的大学项目中使用了类似的方法,纯粹是 java。我创建了一个具有所有功能的单例 class 数据库。单例 class 仅确保数据库方法的副本。
您可以使用 DBUtil,它是封装数据库访问和操作的库(与您尝试做的相同)。
您不应在 class 中对凭据进行硬编码,因为 de-compiling 您的 class 可以访问它。参见 here。