如何使用QueryRunner Class从mysql数据库中删除记录? id作为String数组传递。您也可以建议使用apache常见的db utils进行DML操作是否有用,有哪些替代方案或最佳实践?
以下是我的StudentDAO.java课程的摘录。
public boolean deleteStudent(String [] ids) {
Connection connection = null;
String query;
boolean result = false;
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/cmsDB");
connection = ds.getConnection();
QueryRunner run = new QueryRunner(ds);
query = "delete tbl_student where student_id";// what should i put here???
int nor = run.update(query, ids); //nor = no of records
if (nor > 0) {
result = true;
} else {
result = false;
}
} catch (NumberFormatException e) {
// e.getMessage();
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
DbUtils.closeQuietly(connection);
}
return result;
}
答案 0 :(得分:0)
public static String join(String[] s, String delimiter) {
int imax = s.length;
String strJoin="";
if (imax > 1) {
int i = 0;
for (i = 0; i < imax-1; i++) {
strJoin += s[i] + delimiter;
}
strJoin += s[i];
}
else
strJoin += s[0];
return strJoin;
}
public boolean deleteStudent(String [] ids) {
...
...
...
query = "delete tbl_student where student_id in ("+ join(ids,",") +")";
...
...
...
]