0

如何使用 QueryRunner 类从 mysql 数据库中删除记录?ids 作为字符串数组传递。您还可以建议使用 apache common 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;
        }
4

1 回答 1

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,",") +")";
    ...
    ...
    ...
]
于 2012-12-11T18:00:24.273 回答