我写了一个小代码,其功能如下:
- 读取输入文件
- 读取其中的第一行并检查它是否
AAA
在某个位置具有值 - 如果满足条件,则调用该方法
insertAAAmethod
并将数据加载到 oracle 表中 - 如果记录
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”,则如果记录不同,则插入查询应遵循一个插入查询。插入查询应更改。
让我知道如何优化我的代码。