日系框架之seasar2(S2DAO)

来源:互联网 发布:linux的两大就业方向 编辑:程序博客网 时间:2024/03/29 09:58

 官方网站:http://s2dao.seasar.org/ja/

以下演示代码来源于官网,仅作少量修改。

使用版本Seasar2.4.29+s2-dao1.0.48。

使用的Jar包一览如下:

aopalliance-1.0.jar
commons-logging-1.1.jar
geronimo-j2ee_1.4_spec-1.0.jar
hsqldb-1.8.0.1.jar
javassist-3.4.ga.jar
junit-3.8.2.jar
log4j-1.2.13.jar
ognl-2.6.9-patch-20070908.jar
poi-3.0-FINAL.jar
s2-dao-1.0.48.jar
s2-dao-tiger-1.0.48.jar
s2-extension-2.4.29.jar
s2-framework-2.4.29.jar
s2-tiger-2.4.29.jar
geronimo-jta_1.1_spec-1.0.jar

 

步骤如下:

启动HSQLDB,并运行如下SQL:

  1. create table department (id integer generated by default as identity, name varchar(255) not null,version integer not null)
  2. create table address (id integer generated by default as identity, name varchar(255) not null, version integer not null)
  3. create table employee (id integer generated by default as identity,name varchar(255) not null,job_type integer not null,salary integer,department_id integer,address_id integer,version integer not null,constraint fk_department FOREIGN KEY(DEPARTMENT_ID) REFERENCES DEPARTMENT(ID),constraint fk_address FOREIGN KEY(ADDRESS_ID) REFERENCES ADDRESS(ID))
  4. INSERT INTO DEPARTMENT VALUES(1,'ACCOUNTING',1)
  5. INSERT INTO DEPARTMENT VALUES(2,'RESEARCH',1)
  6. INSERT INTO DEPARTMENT VALUES(3,'SALES',1)
  7. INSERT INTO DEPARTMENT VALUES(4,'OPERATIONS',1)
  8. INSERT INTO ADDRESS VALUES(1,'STREET 1',1)
  9. INSERT INTO ADDRESS VALUES(2,'STREET 2',1)
  10. INSERT INTO ADDRESS VALUES(3,'STREET 3',1)
  11. INSERT INTO ADDRESS VALUES(4,'STREET 4',1)
  12. INSERT INTO ADDRESS VALUES(5,'STREET 5',1)
  13. INSERT INTO ADDRESS VALUES(6,'STREET 6',1)
  14. INSERT INTO ADDRESS VALUES(7,'STREET 7',1)
  15. INSERT INTO ADDRESS VALUES(8,'STREET 8',1)
  16. INSERT INTO ADDRESS VALUES(9,'STREET 9',1)
  17. INSERT INTO ADDRESS VALUES(10,'STREET 10',1)
  18. INSERT INTO ADDRESS VALUES(11,'STREET 11',1)
  19. INSERT INTO ADDRESS VALUES(12,'STREET 12',1)
  20. INSERT INTO ADDRESS VALUES(13,'STREET 13',1)
  21. INSERT INTO ADDRESS VALUES(14,'STREET 14',1)
  22. INSERT INTO EMPLOYEE VALUES(1,'ALLEN',1,1600,3,1,1)
  23. INSERT INTO EMPLOYEE VALUES(2,'WARD',1,1250,3,2,1)
  24. INSERT INTO EMPLOYEE VALUES(3,'JONES',2,2975,2,3,1)
  25. INSERT INTO EMPLOYEE VALUES(4,'MARTIN',1,1250,3,4,1)
  26. INSERT INTO EMPLOYEE VALUES(5,'BLAKE',2,2850,3,5,1)
  27. INSERT INTO EMPLOYEE VALUES(6,'CLARK',2,2450,1,6,1)
  28. INSERT INTO EMPLOYEE VALUES(7,'SCOTT',3,3000,2,7,1)
  29. INSERT INTO EMPLOYEE VALUES(8,'KING',4,5000,1,8,1)
  30. INSERT INTO EMPLOYEE VALUES(9,'TURNER',1,1500,3,9,1)
  31. INSERT INTO EMPLOYEE VALUES(10,'ADAMS',0,1100,2,10,1)
  32. INSERT INTO EMPLOYEE VALUES(11,'JAMES',0,950,3,11,1)
  33. INSERT INTO EMPLOYEE VALUES(12,'FORD',3,3000,2,12,1)
  34. INSERT INTO EMPLOYEE VALUES(13,'MILLER',0,1300,1,13,1)
  35. INSERT INTO EMPLOYEE VALUES(14,'SMITH',0,800,2,14,1)

app.dicon

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
  3.     "http://www.seasar.org/dtd/components24.dtd">
  4. <components>
  5.     <include path="examples/dicon/EmployeeDao.dicon"/>
  6.     <include path="examples/dicon/Employee2Dao.dicon"/>
  7.     <include path="examples/dicon/EmployeeAutoDao.dicon"/>
  8.     <include path="examples/dicon/DepartmentDao.dicon"/>
  9.     <include path="examples/dicon/DepartmentManager.dicon"/>
  10.     
  11. </components>

jdbc.dicon

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
  3.     "http://www.seasar.org/dtd/components21.dtd">
  4. <components namespace="jdbc">
  5.     <include path="jta.dicon"/>
  6.     <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
  7.     <component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
  8.     <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
  9.         <property name="driverClassName">
  10.             "org.hsqldb.jdbcDriver"
  11.         </property>
  12.         <property name="URL">
  13.             "jdbc:hsqldb:hsql://localhost:9001"
  14.         </property>
  15.         <property name="user">"sa"</property>
  16.         <property name="password">""</property>
  17.     </component>
  18.     <component name="connectionPool" class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
  19.         <property name="timeout">600</property>
  20.         <property name="maxPoolSize">10</property>
  21.         <property name="allowLocalTx">true</property>
  22.         <destroyMethod name="close"/>
  23.     </component>
  24.     <component name="DataSource" class="org.seasar.extension.dbcp.impl.DataSourceImpl" />
  25.     
  26. </components>

customized.dicon

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
  3.     "http://www.seasar.org/dtd/components21.dtd">
  4. <components namespace="dao">
  5.     <include path="jdbc.dicon"/>
  6.     <component
  7.         class="org.seasar.dao.impl.AnnotationReaderFactoryImpl"/>
  8.     <component
  9.         class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
  10.         <property name="sqlFileEncoding">"MS932"</property>
  11.     </component>
  12.     <component
  13.         name="interceptor"
  14.         class="org.seasar.dao.pager.PagerS2DaoInterceptorWrapper">
  15.         <arg>
  16.             <component class="org.seasar.dao.interceptors.S2DaoInterceptor"/>
  17.         </arg>
  18.     </component>
  19.     <component
  20.         class="org.seasar.dao.impl.ValueTypeFactoryImpl"/>
  21.     <component class="org.seasar.dao.impl.BeanMetaDataFactoryImpl"/>
  22.     <component class="org.seasar.dao.impl.DaoNamingConventionImpl">
  23.         <property name="insertPrefixes">new String[]{"generate"}</property>
  24.         <property name="deletePrefixes">new String[]{"destory"}</property>
  25.         <property name="updatePrefixes">new String[]{"change"}</property>
  26.     </component>
  27.     <component class="org.seasar.dao.impl.BeanEnhancerImpl"/>
  28.     <component class="org.seasar.dao.impl.ResultSetHandlerFactoryImpl"/>
  29.     <component class="org.seasar.dao.impl.DtoMetaDataFactoryImpl"/>
  30.     <component class="org.seasar.dao.impl.PropertyTypeFactoryBuilderImpl"/>
  31.     <component class="org.seasar.dao.impl.RelationPropertyTypeFactoryBuilderImpl"/>
  32.     <component class="org.seasar.dao.impl.DefaultTableNaming"/>
  33.     <component class="org.seasar.dao.impl.DefaultColumnNaming"/>
  34.     <component class="org.seasar.dao.impl.ProcedureMetaDataFactoryImpl"/>
  35. </components>

log4j.properties

  1. log4j.category.org.seasar=DEBUG, C
  2. log4j.additivity.org.seasar=false
  3. log4j.category.tutorial.chura=DEBUG, C
  4. log4j.additivity.tutorial.chura=false
  5. log4j.appender.C=org.apache.log4j.ConsoleAppender
  6. log4j.appender.C.Target=System.out
  7. log4j.appender.C.ImmediateFlush=true
  8. log4j.appender.C.layout=org.apache.log4j.PatternLayout
  9. log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n
  10. log4j.rootLogger=INFO, A1
  11. log4j.appender.A1=org.apache.log4j.ConsoleAppender
  12. log4j.appender.A1.layout=org.apache.log4j.PatternLayout
  13. log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

DepartmentDao.dicon

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5.     <include path="dao.dicon"/>
  6.     
  7.     <component class="examples.dao.DepartmentDao">
  8.         <aspect>dao.interceptor</aspect>
  9.     </component>
  10. </components>

DepartmentManager.dicon

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5.     <include path="customized.dicon"/>
  6.     
  7.     <component class="examples.dao.DepartmentManager">
  8.         <aspect>dao.interceptor</aspect>
  9.     </component>
  10. </components>

Employee2Dao.dicon

 

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5.     <include path="dao.dicon"/>
  6.     
  7.     <component class="examples.dao.Employee2DaoImpl">
  8.         <aspect>dao.interceptor</aspect>
  9.     </component>
  10. </components>

EmployeeAutoDao.dicon

 

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5.     <include path="dao.dicon"/>
  6.     
  7.     <component class="examples.dao.EmployeeAutoDao">
  8.         <aspect>dao.interceptor</aspect>
  9.     </component>
  10. </components>

EmployeeDao.dicon

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5.     <include path="dao.dicon"/>
  6.     
  7.     <component class="examples.dao.EmployeeDao">
  8.         <aspect>dao.interceptor</aspect>
  9.     </component>
  10.     
  11. </components>

DepartmentDao.java

  1. package examples.dao;
  2. import org.seasar.dao.annotation.tiger.S2Dao;
  3. import examples.entity.Department;
  4. @S2Dao(bean = Department.class)
  5. public interface DepartmentDao {
  6. //    public Class<Department> BEAN = Department.class;
  7.     public void insert(Department department);
  8.     public void update(Department department);
  9.     public void delete(Department department);
  10. }

DepartmentManager.java

  1. package examples.dao;
  2. import examples.entity.Department;
  3. public interface DepartmentManager {
  4.     public Class<Department> BEAN = Department.class;
  5.     public void generate(Department department);
  6.     public void change(Department department);
  7.     public void destory(Department department);
  8. }

Employee2Dao.java

  1. package examples.dao;
  2. import java.util.List;
  3. import examples.entity.Employee;
  4. public interface Employee2Dao {
  5.     public List<?> getEmployees(String ename);
  6.     public Employee getEmployee(int empno);
  7. }

Employee2DaoImpl.java

  1. package examples.dao;
  2. import java.util.List;
  3. import org.seasar.dao.DaoMetaDataFactory;
  4. import org.seasar.dao.impl.AbstractDao;
  5. import examples.entity.Employee;
  6. public abstract class Employee2DaoImpl extends AbstractDao implements Employee2Dao {
  7.     public static Class<Employee> BEAN = Employee.class;
  8.     public Employee2DaoImpl(DaoMetaDataFactory daoMetaDataFactory) {
  9.         super(daoMetaDataFactory);
  10.     }
  11.     public static String getEmployee_ARGS = "empno";
  12.     public List<?> getEmployees(String ename) {
  13.         
  14.         return getEntityManager().find("ename LIKE ?""%" + ename + "%");
  15.     }
  16. }

EmployeeAutoDao.java

  1. package examples.dao;
  2. import java.util.List;
  3. import examples.entity.Employee;
  4. import examples.entity.EmployeeSearchCondition;
  5. public interface EmployeeAutoDao {
  6.     public Class<Employee> BEAN = Employee.class;
  7.     public List<?> getAllEmployees();
  8.     public String getEmployeeByJobDeptno_ARGS = "job, deptno";
  9.     public List<?> getEmployeeByJobDeptno(String job, Integer deptno);
  10.     public String getEmployeeByEmpno_ARGS = "empno";
  11.     public Employee getEmployeeByEmpno(int empno);
  12.     public String getEmployeesBySal_QUERY = "sal BETWEEN ? AND ? ORDER BY empno";
  13.     public List<?> getEmployeesBySal(float minSal, float maxSal);
  14.     public String getEmployeeByDname_ARGS = "dname_0";
  15.     public List<?> getEmployeeByDname(String dname);
  16.     public List<?> getEmployeesBySearchCondition(EmployeeSearchCondition dto);
  17.     public void update(Employee employee);
  18. }

EmployeeDao.java

  1. package examples.dao;
  2. import java.util.List;
  3. import examples.entity.Employee;
  4. import examples.entity.EmployeeSearchCondition;
  5. public interface EmployeeDao {
  6.     public Class<Employee> BEAN = Employee.class;
  7.     public List<Employee> getAllEmployees();
  8.     public List<Employee> getEmps(EmployeeSearchCondition dto);
  9.     public String getEmployee_ARGS = "empno";
  10.     public Employee getEmployee(int empno);
  11.     public int getCount();
  12.     public String getEmployeeByJobDeptno_ARGS = "job, deptno";
  13.     public List<Employee> getEmployeeByJobDeptno(String job, Integer deptno);
  14.     public String getEmployeeByDeptno_ARGS = "deptno";
  15.     public String getEmployeeByDeptno_QUERY = "/*IF deptno != null*/deptno = /*deptno*/123/n" 
  16.                                             + "-- ELSE 1=1/n" + "/*END*/";
  17.     public List<Employee> getEmployeeByDeptno(Integer deptno);
  18.     public int update(Employee employee);
  19.     public String getAllEmployeeNumbers_SQL = "SELECT empno FROM emp";
  20.     public int[] getAllEmployeeNumbers();
  21. }

EmployeeDao_getAllEmployees.sql

  1. SELECT emp.*, dept.dname dname_0, dept.loc loc_0 FROM emp, dept
  2. WHERE emp.deptno = dept.deptno ORDER BY emp.empno

EmployeeDao_getCount.sql

  1. SELECT count(*) FROM emp

EmployeeDao_getEmployee.sql

  1. SELECT emp.*, dept.dname dname_0, dept.loc loc_0 FROM emp, dept
  2. WHERE empno = /*empno*/7788 AND emp.deptno = dept.deptno

EmployeeDao_getEmployeeByJobDeptno.sql

  1. SELECT * FROM emp
  2. /*BEGIN*/WHERE
  3.   /*IF job != null*/job = /*job*/'CLERK'/*END*/
  4.   /*IF deptno != null*/AND deptno = /*deptno*/20/*END*/
  5. /*END*/

EmployeeDao_getEmps.sql

  1. SELECT * FROM emp
  2. /*BEGIN*/
  3. WHERE /*IF dto.job != "789"*/job = /*dto.job*/'CLERK'/*END*/
  4. /*END*/

EmployeeDao_update.sql

  1. UPDATE emp SET ename = /*employee.ename*/'SCOTT'
  2. WHERE empno = /*employee.empno*/7788

Department.java

  1. package examples.entity;
  2. import java.io.Serializable;
  3. import org.seasar.dao.annotation.tiger.Bean;
  4. @Bean(table = "DEPT")
  5. public class Department implements Serializable {
  6.     private static final long serialVersionUID = -4062585060532498627L;
  7. //    public static final String TABLE = "DEPT";
  8.     private int deptno;
  9.     private String dname;
  10.     private String loc;
  11.     private int versionNo;
  12.     public Department() {
  13.     }
  14.     public int getDeptno() {
  15.         return this.deptno;
  16.     }
  17.     public void setDeptno(int deptno) {
  18.         this.deptno = deptno;
  19.     }
  20.     public java.lang.String getDname() {
  21.         return this.dname;
  22.     }
  23.     public void setDname(java.lang.String dname) {
  24.         this.dname = dname;
  25.     }
  26.     public java.lang.String getLoc() {
  27.         return this.loc;
  28.     }
  29.     public void setLoc(java.lang.String loc) {
  30.         this.loc = loc;
  31.     }
  32.     public int getVersionNo() {
  33.         return this.versionNo;
  34.     }
  35.     public void setVersionNo(int versionNo) {
  36.         this.versionNo = versionNo;
  37.     }
  38.     public boolean equals(Object other) {
  39.         if (!(other instanceof Department))
  40.             return false;
  41.         Department castOther = (Department) other;
  42.         return this.getDeptno() == castOther.getDeptno();
  43.     }
  44.     public String toString() {
  45.         StringBuffer buf = new StringBuffer();
  46.         buf.append(deptno).append(", ");
  47.         buf.append(dname).append(", ");
  48.         buf.append(loc).append(", ");
  49.         buf.append(versionNo);
  50.         return buf.toString();
  51.     }
  52.     public int hashCode() {
  53.         return this.getDeptno();
  54.     }
  55. }

Employee.java

  1. package examples.entity;
  2. import java.io.Serializable;
  3. import java.sql.Timestamp;
  4. public class Employee implements Serializable {
  5.     private static final long serialVersionUID = -5960260125251941419L;
  6.     public static final String TABLE = "EMP";
  7.     public static final int department_RELNO = 0;
  8.     public static final String timestamp_COLUMN = "tstamp";
  9.     private long empno;
  10.     private String ename;
  11.     private String job;
  12.     private Short mgr;
  13.     private java.util.Date hiredate;
  14.     private Float sal;
  15.     private Float comm;
  16.     private int deptno;
  17.     private Timestamp timestamp;
  18.     private Department department;
  19.     public Employee() {
  20.     }
  21.     public Employee(long empno) {
  22.         this.empno = empno;
  23.     }
  24.     public long getEmpno() {
  25.         return this.empno;
  26.     }
  27.     public void setEmpno(long empno) {
  28.         this.empno = empno;
  29.     }
  30.     public java.lang.String getEname() {
  31.         return this.ename;
  32.     }
  33.     public void setEname(java.lang.String ename) {
  34.         this.ename = ename;
  35.     }
  36.     public java.lang.String getJob() {
  37.         return this.job;
  38.     }
  39.     public void setJob(java.lang.String job) {
  40.         this.job = job;
  41.     }
  42.     public Short getMgr() {
  43.         return this.mgr;
  44.     }
  45.     public void setMgr(Short mgr) {
  46.         this.mgr = mgr;
  47.     }
  48.     public java.util.Date getHiredate() {
  49.         return this.hiredate;
  50.     }
  51.     public void setHiredate(java.util.Date hiredate) {
  52.         this.hiredate = hiredate;
  53.     }
  54.     public Float getSal() {
  55.         return this.sal;
  56.     }
  57.     public void setSal(Float sal) {
  58.         this.sal = sal;
  59.     }
  60.     public Float getComm() {
  61.         return this.comm;
  62.     }
  63.     public void setComm(Float comm) {
  64.         this.comm = comm;
  65.     }
  66.     public int getDeptno() {
  67.         return this.deptno;
  68.     }
  69.     public void setDeptno(int deptno) {
  70.         this.deptno = deptno;
  71.     }
  72.     public Timestamp getTimestamp() {
  73.         return this.timestamp;
  74.     }
  75.     public void setTimestamp(Timestamp timestamp) {
  76.         this.timestamp = timestamp;
  77.     }
  78.     public Department getDepartment() {
  79.         return this.department;
  80.     }
  81.     public void setDepartment(Department department) {
  82.         this.department = department;
  83.     }
  84.     public boolean equals(Object other) {
  85.         if (!(other instanceof Employee))
  86.             return false;
  87.         Employee castOther = (Employee) other;
  88.         return this.getEmpno() == castOther.getEmpno();
  89.     }
  90.     public String toString() {
  91.         StringBuffer buf = new StringBuffer();
  92.         buf.append(empno).append(", ");
  93.         buf.append(ename).append(", ");
  94.         buf.append(job).append(", ");
  95.         buf.append(mgr).append(", ");
  96.         buf.append(hiredate).append(", ");
  97.         buf.append(sal).append(", ");
  98.         buf.append(comm).append(", ");
  99.         buf.append(deptno).append(", ");
  100.         buf.append(timestamp).append(" {");
  101.         buf.append(department).append("}");
  102.         return buf.toString();
  103.     }
  104.     public int hashCode() {
  105.         return (intthis.getEmpno();
  106.     }
  107. }
EmployeeSearchCondition.java
  1. package examples.entity;
  2. public class EmployeeSearchCondition {
  3.     public static final String dname_COLUMN = "dname_0";
  4.     private String job;
  5.     private String dname;
  6.     public String getDname() {
  7.         return dname;
  8.     }
  9.     public void setDname(String dname) {
  10.         this.dname = dname;
  11.     }
  12.     public String getJob() {
  13.         return job;
  14.     }
  15.     public void setJob(String job) {
  16.         this.job = job;
  17.     }
  18. }

测试代码:

DepartmentDaoClient.java

  1. package examples.work;
  2. import org.seasar.framework.container.S2Container;
  3. import org.seasar.framework.container.factory.S2ContainerFactory;
  4. import examples.dao.DepartmentDao;
  5. import examples.entity.Department;
  6. public class DepartmentDaoClient {
  7.     private static final String PATH = "app.dicon";
  8.     public static void main(String[] args) {
  9.         
  10.         S2Container container = S2ContainerFactory.create(PATH);
  11.         container.init();
  12.         try {
  13.             DepartmentDao dao = (DepartmentDao) container.getComponent(DepartmentDao.class);
  14.             Department dept = new Department();
  15.             dept.setDeptno(99);
  16.             dept.setDname("foo");
  17.             dao.insert(dept);
  18.             dept.setDname("bar");
  19.             System.out.println("before update versionNo:" + dept.getVersionNo());
  20.             dao.update(dept);
  21.             System.out.println("after update versionNo:" + dept.getVersionNo());
  22.             dao.delete(dept);
  23.         } finally {
  24.             container.destroy();
  25.         }
  26.     }
  27. }

DepartmentManagerClient.java

  1. package examples.work;
  2. import org.seasar.framework.container.S2Container;
  3. import org.seasar.framework.container.factory.S2ContainerFactory;
  4. import examples.dao.DepartmentManager;
  5. import examples.entity.Department;
  6. public class DepartmentManagerClient {
  7.     private static final String PATH = "app.dicon";
  8.     public static void main(String[] args) {
  9.         
  10.         S2Container container = S2ContainerFactory.create(PATH);
  11.         container.init();
  12.         try {
  13.             DepartmentManager dao = (DepartmentManager) container.getComponent(DepartmentManager.class);
  14.             Department dept = new Department();
  15.             dept.setDeptno(99);
  16.             dept.setDname("foo");
  17.             dao.generate(dept);
  18.             dept.setDname("bar");
  19.             System.out.println("before update versionNo:" + dept.getVersionNo());
  20.             dao.change(dept);
  21.             System.out.println("after update versionNo:" + dept.getVersionNo());
  22.             dao.destory(dept);
  23.         } finally {
  24.             container.destroy();
  25.         }
  26.     }
  27. }

Employee2DaoClient.java

  1. package examples.work;
  2. import java.util.List;
  3. import org.seasar.framework.container.S2Container;
  4. import org.seasar.framework.container.factory.S2ContainerFactory;
  5. import examples.dao.Employee2Dao;
  6. import examples.entity.Employee;
  7. public class Employee2DaoClient {
  8.     private static final String PATH = "app.dicon";
  9.     public static void main(String[] args) {
  10.         
  11.         S2Container container = S2ContainerFactory.create(PATH);
  12.         container.init();
  13.         try {
  14.             Employee2Dao dao = (Employee2Dao) container.getComponent(Employee2Dao.class);
  15.             List<?> employees = dao.getEmployees("CO");
  16.             for (int i = 0; i < employees.size(); ++i) {
  17.                 System.out.println(employees.get(i));
  18.             }
  19.             Employee employee = dao.getEmployee(7788);
  20.             System.out.println(employee);
  21.         } finally {
  22.             container.destroy();
  23.         }
  24.     }
  25. }

EmployeeAutoDaoClient.java

  1. package examples.work;
  2. import java.util.List;
  3. import org.seasar.framework.container.S2Container;
  4. import org.seasar.framework.container.factory.S2ContainerFactory;
  5. import examples.dao.EmployeeAutoDao;
  6. import examples.entity.Employee;
  7. import examples.entity.EmployeeSearchCondition;
  8. public class EmployeeAutoDaoClient {
  9.     private static final String PATH = "app.dicon";
  10.     public static void main(String[] args) {
  11.         
  12.         S2Container container = S2ContainerFactory.create(PATH);
  13.         container.init();
  14.         try {
  15.             EmployeeAutoDao dao = (EmployeeAutoDao) container.getComponent(EmployeeAutoDao.class);
  16.             dao.getEmployeeByJobDeptno(nullnull);
  17.             dao.getEmployeeByJobDeptno("CLERK"null);
  18.             dao.getEmployeeByJobDeptno(nullnew Integer(20));
  19.             dao.getEmployeeByJobDeptno("CLERK"new Integer(20));
  20.             List<?> employees = dao.getEmployeesBySal(01000);
  21.             for (int i = 0; i < employees.size(); ++i) {
  22.                 System.out.println(employees.get(i));
  23.             }
  24.             employees = dao.getEmployeeByDname("SALES");
  25.             for (int i = 0; i < employees.size(); ++i) {
  26.                 System.out.println(employees.get(i));
  27.             }
  28.             EmployeeSearchCondition dto = new EmployeeSearchCondition();
  29.             dto.setDname("RESEARCH");
  30.             employees = dao.getEmployeesBySearchCondition(dto);
  31.             for (int i = 0; i < employees.size(); ++i) {
  32.                 System.out.println(employees.get(i));
  33.             }
  34.             Employee employee = dao.getEmployeeByEmpno(7788);
  35.             System.out.println("before timestamp:" + employee.getTimestamp());
  36.             dao.update(employee);
  37.             System.out.println("after timestamp:" + employee.getTimestamp());
  38.         } finally {
  39.             container.destroy();
  40.         }
  41.     }
  42. }
EmployeeDaoClient.java

 

  1. package examples.work;
  2. import java.util.List;
  3. import org.seasar.framework.container.S2Container;
  4. import org.seasar.framework.container.factory.S2ContainerFactory;
  5. import examples.dao.EmployeeDao;
  6. import examples.entity.Employee;
  7. public class EmployeeDaoClient {
  8.     private static final String PATH = "app.dicon";
  9.     public static void main(String[] args) {
  10.         
  11.         S2Container container = S2ContainerFactory.create(PATH);
  12.         container.init();
  13.         try {
  14.             EmployeeDao dao = (EmployeeDao) container.getComponent(EmployeeDao.class);
  15.             List<Employee> employees = dao.getAllEmployees();
  16.             for (int i = 0; i < employees.size(); ++i) {
  17.                 System.out.println(employees.get(i));
  18.             }
  19.             Employee employee = dao.getEmployee(7788);
  20.             System.out.println(employee);
  21.             int count = dao.getCount();
  22.             System.out.println("count:" + count);
  23.             dao.getEmployeeByJobDeptno(nullnull);
  24.             dao.getEmployeeByJobDeptno("CLERK"null);
  25.             dao.getEmployeeByJobDeptno(nullnew Integer(20));
  26.             dao.getEmployeeByJobDeptno("CLERK"new Integer(20));
  27.             dao.getEmployeeByDeptno(new Integer(20));
  28.             dao.getEmployeeByDeptno(null);
  29.             System.out.println("updatedRows:" + dao.update(employee));
  30.             int[] numbers = dao.getAllEmployeeNumbers();
  31.             for (int i = 0; i < numbers.length; i++) {
  32.                 System.out.println(numbers[i]);
  33.             }
  34.         } finally {
  35.             container.destroy();
  36.         }
  37.     }
  38. }
原创粉丝点击