我有从2个数据库调用查询的代码,但它必须同时编译。这是我的代码
public void SummTEkspor(){
TEkspor ti = new TEkspor();
TEksporDAOImpl impd = new TEksporDAOImpl (DBConnection.getInstance().getCon());
String sql1 ="DELETE FROM a.dbo.t_export\n" +
"INSERT INTO a.dbo.t_export\n" +
"SELECT * FROM b.dbo.export x WHERE x.sk_batch IN \n" +
"(SELECT sk_batch from batch_hdr WHERE
mth="+cmbBln.getSelectedItem()+
"AND year="+cmbThn.getSelectedItem();
try {
Statement st = kon.conn.createStatement();
Statement st2 = kon.secCon.createStatement();
ResultSet rs = st.executeQuery(sql1);
while (rs.next()) {
System.out.println("success");
}
} catch (Exception x) {
System.out.println("error");
}
}
但是,当我运行它时,输出很好,但查询没有正确执行,因为我的表中没有数据,而有一些数据将在该表上。
有没有解决办法?感谢您的回复
答案 0 :(得分:0)
尝试使用executeUpdate
代替executeQuery
进行数据更新。分离选择查询并使用executeQuery
执行它并获取结果集。
答案 1 :(得分:0)
使用executeUpdate
代替executeQuery
并尝试将您的查询分成几个查询。
答案 2 :(得分:0)
更好的选择是不要在一行中使用所有语句,因为要检索你应该调用executequery并删除或插入你调用executeUpdate方法。
另请避免使用statement
并使用PreparedStatement