Java 组织JDBC项目
我有一些非常长的SQL语句需要通过JDBC运行。我想知道组织它们的最佳程序是什么?我应该创建一个单独的类,将它们定义为变量,并从我的主应用程序类引用这些类变量吗 或者我应该把它们放到应用程序类中,然后处理它的难读性Java 组织JDBC项目,java,jakarta-ee,Java,Jakarta Ee,我有一些非常长的SQL语句需要通过JDBC运行。我想知道组织它们的最佳程序是什么?我应该创建一个单独的类,将它们定义为变量,并从我的主应用程序类引用这些类变量吗 或者我应该把它们放到应用程序类中,然后处理它的难读性 任何帮助都会很好。我能想到的将它们放在一起的一个好处是,如果您更改数据模型,就很容易找到查询所在的位置并找到受影响的查询 如果您有少量查询,我不会太担心,只需格式化它们,使它们易于阅读(不管您使用哪种方法都可以!) 如果您想使用字符串变量路由类,并且如果您的查询数量很大(>100),
任何帮助都会很好。我能想到的将它们放在一起的一个好处是,如果您更改数据模型,就很容易找到查询所在的位置并找到受影响的查询 如果您有少量查询,我不会太担心,只需格式化它们,使它们易于阅读(不管您使用哪种方法都可以!)
如果您想使用字符串变量路由类,并且如果您的查询数量很大(>100),那么我会将它们分组到几个不同的类中。可以将脚本存储在从应用程序读取的单独文件中。如果脚本是SQL,那么为它们提供一个单独的文件将使它们能够直接运行以进行调试
如果您有大型查询语句,还可以定义视图。我不喜欢使用单独的文件。我会把它们放在使用它们的文件中,因为我不想去别的地方仅仅为了弄清楚数据库在做什么 我会使它们成为静态的最终字符串,这样我就不会每次都重复创建它们。如果您正在连接或使用StringBuilder,则可能是做错了 我肯定会在任何地方使用事先准备好的声明。您将不会受到SQL注入的影响,您的代码也将因此变得更好 使用数据访问对象模式为对象提供CRUD接口:
public interface FooDao<K, T>
{
T find(Long id);
List<T> find();
K save(T instance);
void delete(T instance);
}
公共接口FooDao
{
找不到(长id);
列表查找();
K保存(T实例);
无效删除(T实例);
}
我认为最简单的方法是要么从文件中读取SQL(如果有很多),要么制作一堆准备好的语句,只是不包装它们