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