[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
INSERT文をSQLFILEと自動SQL作成を使用して実行してみる。
まずはDaoから
TableDao.java
package s2dao.test.dao;
import java.util.List;
import s2dao.test.dto.Tran;
import s2dao.test.dto.TranDto;
public interface TableDao {
public static final Class BEAN = TranDto.class;
public static final String getAllColumn_SQL_FILE = "s2dao/test/sql/TableDao_getAllColumn.sql";
public List<TranDto> getAllColumn();
public List<TranDto> getAllColumnAuto();
public String getAllColumnAutoId_ARGS = "id";
public List<TranDto> getAllColumnAutoId(int id);
public int insert(TranDto tran);
public static final String insertTran_SQL_FILE = "s2dao/test/sql/TableDao_insertTran.sql";
public int insertTran(TranDto tran);
}
んでINSERT用のSQLファイル
TableDao_insertTran.sql
INSERT INTO TRAN VALUES ( /*id*/7788,/*tname*/'aaa',/*mstno*/20 )
/**/で囲まれた部分に引数のプロパティ名と同じものが入ります。
/*プロパティ名*/リテラルの書式
/*の後ろに半角スペースを入れるとコメントになっちゃうので入れないように!!
リテラルはよくわからない(=ω=)
まぁ適当な数値や文字列を入れれば問題なさそう。(入れなくてもうまくいったしw)
んで最後のSqlStater.java
package s2dao.test.stat;
import java.util.List;
import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;
import s2dao.test.dao.TableDao;
import s2dao.test.dto.Tran;
import s2dao.test.dto.TranDto;
public class SqlStater {
private static final String PATH = "mysql.dicon";
public static void main(String[] args) {
S2Container container = S2ContainerFactory.create(PATH);
container.init();
try {
TableDao dao = (TableDao)container.getComponent(TableDao.class);
System.out.println("======ALL RECODE========");
List<TranDto> tableDtoList = dao.getAllColumn();
for( int i = 0; i < tableDtoList.size(); ++i ) {
System.out.println(tableDtoList.get(i));
}
System.out.println("======Auto========");
tableDtoList = dao.getAllColumnAuto();
for( int i = 0; i < tableDtoList.size(); ++i ) {
System.out.println(tableDtoList.get(i));
}
System.out.println("======Auto ID========");
tableDtoList = dao.getAllColumnAutoId(1);
for( int i = 0; i < tableDtoList.size(); ++i ) {
System.out.println(tableDtoList.get(i));
}
System.out.println("======Insert SQLFILE========");
TranDto trandto = new TranDto();
trandto.setId(7);
trandto.setTname("TRANNAME7");
trandto.setMstno(20);
int count1 = dao.insertTran(trandto);
System.out.println("INSERT SUCCESS COUNT : " + count1 );
System.out.println("======Insert AUTO========");
trandto = new TranDto();
trandto.setId(8);
trandto.setTname("TRANNAME8");
trandto.setMstno(21);
int count2 = dao.insert(trandto);
System.out.println("INSERT SUCCESS COUNT : " + count2 );
System.out.println("======ALL RECODE========");
tableDtoList = dao.getAllColumnAuto();
for( int i = 0; i < tableDtoList.size(); ++i ) {
System.out.println(tableDtoList.get(i));
}
} finally {
container.destroy();
}
}
}
これで実行すると・・・
======ALL RECODE========
1, TRANNAME1, 20, { 20. MSTNAME1 }
2, TRANNAME2, 20, { 20. MSTNAME1 }
3, TRANNAME3, 21, { 21. MSTNAME2 }
4, TRANNAME4, 21, { 21. MSTNAME2 }
======Auto========
1, TRANNAME1, 20, { 20. MSTNAME1 }
2, TRANNAME2, 20, { 20. MSTNAME1 }
3, TRANNAME3, 21, { 21. MSTNAME2 }
4, TRANNAME4, 21, { 21. MSTNAME2 }
======Auto ID========
1, TRANNAME1, 20, { 20. MSTNAME1 }
======Insert SQLFILE========
INSERT SUCCESS COUNT : 1
======Insert AUTO========
INSERT SUCCESS COUNT : 1
======ALL RECODE========
1, TRANNAME1, 20, { 20. MSTNAME1 }
2, TRANNAME2, 20, { 20. MSTNAME1 }
3, TRANNAME3, 21, { 21. MSTNAME2 }
4, TRANNAME4, 21, { 21. MSTNAME2 }
7, TRANNAME7, 20, { 20. MSTNAME1 }
8, TRANNAME8, 21, { 21. MSTNAME2 }
こんな感じに出ます。