Javascript 在Java中创建公共SQL操作?

Javascript 在Java中创建公共SQL操作?,javascript,java,Javascript,Java,有没有一种方法可以在Java中以字符串数组的形式创建一个表作弊 此数组将保存所有稍后执行的查询,用于CRUD操作 我知道用javascript我们可以做到这一点: 然后我们可以这样使用它: queryArray[“插入”] 这在Java中可以实现吗?您使用的数据结构是一个映射,Java提供了一个带有HashMap类的实现。与静态字段相结合,您可以实现这一点。您使用的数据结构是一个映射,Java提供了一个带有HashMap类的实现。结合静态字段,您可能会实现这一点。Java没有类似于JS代码片段中

有没有一种方法可以在Java中以字符串数组的形式创建一个表作弊

此数组将保存所有稍后执行的查询,用于CRUD操作

我知道用javascript我们可以做到这一点:

然后我们可以这样使用它:

queryArray[“插入”]


这在Java中可以实现吗?

您使用的数据结构是一个映射,Java提供了一个带有
HashMap
类的实现。与静态字段相结合,您可以实现这一点。

您使用的数据结构是一个映射,Java提供了一个带有
HashMap
类的实现。结合静态字段,您可能会实现这一点。

Java没有类似于JS代码片段中的示例的内容

但是,您的问题的解决方案1可以使用
地图

其中,
将是CRUD操作和值合适的SQL命令

为方便起见,我建议为您的SQL键创建
你可以在这里用。这是一个典型的映射,其键为enum常量

我提醒解决方案2更简单,您可以使用enum,它将为每个常量保留适当的值

代码将类似于:

import java.util.EnumMap;
import java.util.Map;

enum SqlCommands {
    SELECT("SELECT * FROM ?"),
    INSERT("INSERT INTO ?() VALUES()"),
    UPDATE("UPDATE ? SET ?=? WHERE ?"),
    DELETE("DELETE FROM ? WHERE ?");

    private String sqlOperation;

    SqlCommands(String sqlOperation) {
        this.sqlOperation = sqlOperation;
    }

    public String getSqlOperation() {
        return sqlOperation;
    }
}

public class SqlTemplatesDemo {

    public static final EnumMap<SqlCommands, String> map = new EnumMap<>(SqlCommands.class);
    static {
        map.put(SqlCommands.SELECT, "SELECT * FROM ?");
        map.put(SqlCommands.INSERT, "INSERT INTO ?() VALUES()");
        map.put(SqlCommands.UPDATE, "UPDATE ? SET ?=? WHERE ?");
        map.put(SqlCommands.DELETE, "DELETE FROM ? WHERE ?");
    }

    public static void main(String[] args) {
        System.out.println("Solution 1:");
        for (Map.Entry<SqlCommands, String> entry : map.entrySet()) {
            System.out.printf("Key: [%s] for value: [%s]\n", entry.getKey(), entry.getValue());
        }

        System.out.println("\nSolution 2:");
        for (SqlCommands sqlCommand : SqlCommands.values()) {
            System.out.printf("Enum key: [%s], and value: [%s]\n", sqlCommand, sqlCommand.getSqlOperation());
        }
    }
}

Java没有类似于JS代码段中的示例的东西

但是,您的问题的解决方案1可以使用
地图

其中,
将是CRUD操作和值合适的SQL命令

为方便起见,我建议为您的SQL键创建
你可以在这里用。这是一个典型的映射,其键为enum常量

我提醒解决方案2更简单,您可以使用enum,它将为每个常量保留适当的值

代码将类似于:

import java.util.EnumMap;
import java.util.Map;

enum SqlCommands {
    SELECT("SELECT * FROM ?"),
    INSERT("INSERT INTO ?() VALUES()"),
    UPDATE("UPDATE ? SET ?=? WHERE ?"),
    DELETE("DELETE FROM ? WHERE ?");

    private String sqlOperation;

    SqlCommands(String sqlOperation) {
        this.sqlOperation = sqlOperation;
    }

    public String getSqlOperation() {
        return sqlOperation;
    }
}

public class SqlTemplatesDemo {

    public static final EnumMap<SqlCommands, String> map = new EnumMap<>(SqlCommands.class);
    static {
        map.put(SqlCommands.SELECT, "SELECT * FROM ?");
        map.put(SqlCommands.INSERT, "INSERT INTO ?() VALUES()");
        map.put(SqlCommands.UPDATE, "UPDATE ? SET ?=? WHERE ?");
        map.put(SqlCommands.DELETE, "DELETE FROM ? WHERE ?");
    }

    public static void main(String[] args) {
        System.out.println("Solution 1:");
        for (Map.Entry<SqlCommands, String> entry : map.entrySet()) {
            System.out.printf("Key: [%s] for value: [%s]\n", entry.getKey(), entry.getValue());
        }

        System.out.println("\nSolution 2:");
        for (SqlCommands sqlCommand : SqlCommands.values()) {
            System.out.printf("Enum key: [%s], and value: [%s]\n", sqlCommand, sqlCommand.getSqlOperation());
        }
    }
}

为了完整起见,我想提到java 9+提供了一种方便的方法来构建与js代码片段相似的映射:

static final Map<String, String> SQL_CHEAT_SHEET = Map.of(
    "INSERT", "INSERT INTO ...",
    "SELECT", "SELECT FROM ..."
);
静态最终映射SQL\u CHEAT\u SHEET=Map.of(
“插入”,“插入…”,
“选择”,“从…中选择”
);

为了完整起见,我想提到java 9+提供了一种方便的方法来构建与js代码片段相似的映射:

static final Map<String, String> SQL_CHEAT_SHEET = Map.of(
    "INSERT", "INSERT INTO ...",
    "SELECT", "SELECT FROM ..."
);
静态最终映射SQL\u CHEAT\u SHEET=Map.of(
“插入”,“插入…”,
“选择”,“从…中选择”
);

您可以为此使用地图。如果您想保留顺序,请选择LinkedHashMapYes,使用Java映射集合。但我还是忍不住干涸和软件重用。为什么不使用一个控制所有DAO代码的共享模块呢?我们将使用DAO,我们只想添加上面提到的内容,以基本上集中所有的查询,应用“一次编写,到处使用”的概念,而且它将非常易于维护,所有这些查询,尤其是当项目越来越大时。Map是一个很好的选择。您也可以使用枚举。您可以为此使用映射。如果您想保留顺序,请选择LinkedHashMapYes,使用Java映射集合。但我还是忍不住干涸和软件重用。为什么不使用一个控制所有DAO代码的共享模块呢?我们将使用DAO,我们只想添加上面提到的内容,以基本上集中所有的查询,应用“一次编写,到处使用”的概念,而且它将非常易于维护,所有这些查询,尤其是当项目越来越大时。Map是一个很好的选择。也可以使用枚举。