S2DaoでINSERT
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 }
こんな感じに出ます。