如何使用QueryRunner类删除记录

时间:2012-09-13 22:51:11

标签: java jsp jstl

如何使用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;
        }

1 个答案:

答案 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,",") +")";
    ...
    ...
    ...
]