【发布时间】:2013-02-13 16:39:42
【问题描述】:
我写了一个小代码,功能如下:
- 读取输入文件
- 读取其中的第一行并检查它是否
在某个位置有值
AAA - 如果它满足
条件调用方法
insertAAAmethod并将数据加载到 甲骨文表 - 如果是记录
BBB,则读取下一行,调用具有不同插入查询的insertBBBrmethod
问题是我在输入文件中有 15 条不同的记录,所以我有 15 种不同的方法,例如 insertAAAmethod,每种方法都有不同的插入查询:
public static void insertAAARecord() throws Exception {
String sqlQuery = "insert into my_table(ColumnA,ColumnB,ColumnC,ColumnD,ColumnE,ColumnF,ColumnG)"
+ "values (?,?,?,?,?,?,?)";
try {
pstmt = conn.prepareStatement(sqlQuery);
pstmt.setString(1, "AAA");
pstmt.setDate(2,
StringtoDate("AAA", CurrentLine.substring(150, 158)));
pstmt.setDate(3,
StringtoDate("AAA", CurrentLine.substring(158, 166)));
pstmt.setString(4, CurrentLine.substring(24, 34));
pstmt.setString(5, CurrentLine.substring(37, 45));
pstmt.setString(6, CurrentLine.substring(147, 150));
pstmt.setDate(7, headerDate);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace(System.out);
} finally {
pstmt.close();
}
}
是否可以将 sql 查询排除在 java 代码之外? (例如在属性文件中)
注意:插入查询会根据记录发生变化,如果记录为“AAA”,则应遵循一个插入查询,如果记录不同,则插入查询应更改..
让我知道如何优化我的代码。
【问题讨论】:
-
您能添加一些这些 SQL 查询的示例吗?你说他们是不同的,但不是多少......
-
为什么不将此元数据存储在数据库中?
-
我是 JPA 的忠实粉丝,但在这种情况下,由于我们掌握的信息很少,我不会推荐它。