【发布时间】:2020-03-25 21:52:32
【问题描述】:
我已经用它的变量创建了不同的类,我正在尝试创建一个在 SQL 数据库中创建表的 Java 程序。问题是我不知道如何在函数中将类作为参数发送。
我正在开发这个功能:
public void createTable (/*Class c ?*/) {
ArrayList<String> fields = new ArrayList<>();
for (Field f: c.class.getDeclaredFields()) {
fields.add(f.getName());
}
Statement statement;
statement = connection.createStatement(); //This part of the function wouldn't work. But let's focus on the question
statement.execute("insert into " + c.getSimpleName() + "(" + String.join(", ", fields) + ") values" etc...
}
请注意,我想将数据插入 SQL 数据库的函数的第二部分将无法工作,因为它尚未完成。但是,我怎么能在这个函数中接收不同的类(显然有不同的变量)并对所有类做同样的事情? (创建一个包含其字段名称的列表)。
【问题讨论】:
-
你想传递一个类,还是那个类的一个实例(一个对象)?当您生成插入语句时,我假设您还想传递值,在这种情况下,您需要一个对象,而不是一个类。另外,请了解准备好的陈述。您不应该将值连接到查询字符串中,这会使它们容易受到 SQL 注入的攻击。最后,考虑研究像 Hibernate 这样的 ORM:你正在重新发明轮子(而且很糟糕)。