[Seasar-user:2951] [S2DAO] SQL実行について質問

danbara@frontierdomain.co.jp danbara
2005年 11月 29日 (火) 12:09:47 JST


初めて投稿いたします。檀原@FDです。
S2DAO の理解を深めるために数点質問させてください。

質問1. S2DAOを使用している際、JavaBean の配列を用意し、
    それを、examples.daoDepartmentDao#insert() メソッドにおいて
    実行するとします。

    DepartmentDaoClient.javaで、下記の処理とする
    ------------------------------------------------------
    DepartmentDao dao = (DepartmentDao) container
       .getComponent(DepartmentDao.class);
    Department department[] ; //Beanを配列として生成するところは省略
    for (int i = 0; i department.length; i++){
        dao.insert(department[i]);
    }

    実際の処理イメージは下記になるのか?
    PreparedStatement が毎回生成されるのか?
    ------------------------------------------------------
    Department department[] ; //Beanを配列として生成するところは省略
        
    String sql = "INSERT INTO department SET bar = ?"; //SQLは適当
    for (int i = 0; i < department.length ; i++){
        //ループ内でPreparedStatementを生成
        PreparedStatement pst = connection.prepareStatement(sql);
        pst.setString(args[i].getDname());
         ・・・
        try{
            int l = pst.executeUpdate();
        } catch (SQLException e){
            ・・・
        } final {
            pst.close(); 
        }
    }
    ------------------------------------------------------

質問2. 質問1の処理イメージ通りだとして、
    PreparedStatement pst = connection.prepareStatement(sql);
    を、ループ外に移動させる方法はありますか?

以上 よろしくお願いします。




Seasar-user メーリングリストの案内