0

QueryRunner クラスを使用して mysql データベースからレコードを削除するにはどうすればよいですか? ID は文字列の配列として渡されます。また、DML 操作に apache common db utils を使用することが有効かどうか、代替手段またはベスト プラクティスは何か教えてください。

以下は私の 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 に答える