1. 程式人生 > >日系框架之seasar2(S2Hibernate3)

日系框架之seasar2(S2Hibernate3)

所需Jar包列表:

antlr-2.7.6.jar
aopalliance-1.0.jar
commons-collections-3.1.jar
commons-lang-2.3.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
ejb3-persistence.jar
geronimo-j2ee_1.4_spec-1.0.jar
hibernate3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate-validator.jar
hsqldb-1.8.0.1.jar
javassist-3.4.GA.jar
jta-1.1.jar
junit-3.8.2.jar
log4j.jar
ognl-2.6.9-patch-20070908.jar
poi-3.0-FINAL.jar
s2-extension-2.4.29.jar
s2-framework-2.4.29.jar
s2-tiger-2.4.29.jar
slf4j-api-1.4.2.jar
slf4j-log4j12.jar
s2-hibernate-1.1.2.jar

步驟如下:

啟動HSQLDB並執行如下DDL:

  1. CREATE TABLE EMP
  2.        (EMPNO NUMERIC(4) NOT NULL PRIMARY KEY,
  3.         ENAME VARCHAR(10),
  4.         JOB VARCHAR(9),
  5.         MGR NUMERIC(4),
  6.         HIREDATE DATE,
  7.         SAL NUMERIC(7, 2),
  8.         COMM NUMERIC(7, 2),
  9.         DEPTNO NUMERIC(2));
  10. INSERT INTO EMP VALUES (7369, 'SMITH',  'CLERK',     7902,
  11.         '1980-12-17',  800, NULL, 20);
  12. INSERT INTO EMP VALUES (7499, 'ALLEN',  'SALESMAN',  7698,
  13.         '1981-02-20', 1600,  300, 30);
  14. INSERT INTO EMP VALUES (7521, 'WARD',   'SALESMAN',  7698,
  15.         '1981-02-22', 1250,  500, 30);
  16. INSERT INTO EMP VALUES (7566, 'JONES',  'MANAGER',   7839,
  17.         '1981-04-02',  2975, NULL, 20);
  18. INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN',  7698,
  19.         '1981-09-28', 1250, 1400, 30);
  20. INSERT INTO EMP VALUES (7698, 'BLAKE',  'MANAGER',   7839,
  21.         '1981-05-01',  2850, NULL, 30);
  22. INSERT INTO EMP VALUES (7782, 'CLARK',  'MANAGER',   7839,
  23.         '1981-06-09',  2450, NULL, 10);
  24. INSERT INTO EMP VALUES (7788, 'SCOTT',  'ANALYST',   7566,
  25.         '1982-12-09', 3000, NULL, 20);
  26. INSERT INTO EMP VALUES (7839, 'KING',   'PRESIDENT', NULL,
  27.         '1981-11-17', 5000, NULL, 10);
  28. INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN',  7698,
  29.         '1981-09-08',  1500,    0, 30);
  30. INSERT INTO EMP VALUES (7876, 'ADAMS',  'CLERK',     7788,
  31.         '1983-01-12', 1100, NULL, 20);
  32. INSERT INTO EMP VALUES (7900, 'JAMES',  'CLERK',     7698,
  33.         '1981-12-03',   950, NULL, 30);
  34. INSERT INTO EMP VALUES (7902, 'FORD',   'ANALYST',   7566,
  35.         '1981-12-03',  3000, NULL, 20);
  36. INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK',     7782,
  37.         '1982-01-23', 1300, NULL, 10);
  38. CREATE TABLE DEPT
  39.        (DEPTNO NUMERIC(2) NOT NULL PRIMARY KEY,
  40.         DNAME VARCHAR(14),
  41.         LOC VARCHAR(13),
  42.         VERSIONNO NUMERIC(8));
  43. INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK', 0);
  44. INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS', 0);
  45. INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO', 0);
  46. INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON', 0);
  47. COMMIT;

app.dicon

  1. <?xmlversion="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. <includepath="examples/dicon/Employee.dicon"/>
  6. <includepath="examples/dicon/EmployeeAutoDao.dicon"/>
  7. <includepath="examples/dicon/DepartmentAutoDao.dicon"/>
  8. </components>

hibernate.cfg.xml

  1. <?xmlversion="1.0"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4.     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <session-factory>
  7. <propertyname="dialect">org.hibernate.dialect.HSQLDialect</property>
  8. <propertyname="show_sql">true</property>
  9. <mappingresource="examples/entity/Employee.hbm.xml"/>
  10. <mappingresource="examples/entity/Department.hbm.xml"/>
  11. </session-factory>
  12. </hibernate-configuration>

jdbc.dicon

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

s2hibernate.dicon

  1. <?xmlversion="1.0"encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <componentsnamespace="s2hibernate">
  5. <includepath="j2ee.dicon"/>
  6. <componentclass="org.seasar.hibernate3.impl.S2SessionFactoryImpl">
  7. <initMethodname="setConfigPath">
  8. <arg>"hibernate.cfg.xml"</arg>
  9. </initMethod>
  10. </component>
  11. <componentclass="org.seasar.hibernate3.dao.impl.HibernateDaoMetaDataFactoryImpl"/>
  12. <componentname="readOnly"class="org.seasar.hibernate3.interceptor.ReadOnlySessionInterceptor"/>
  13. <componentname="interceptor"class="org.seasar.hibernate3.dao.interceptors.S2HibernateDaoInterceptor"/>
  14. </components>

log4j.properties

  1. log4j.category.org.seasar=DEBUG, C
  2. log4j.additivity.org.seasar=false
  3. log4j.appender.C=org.apache.log4j.ConsoleAppender
  4. log4j.appender.C.Target=System.out
  5. log4j.appender.C.ImmediateFlush=true
  6. log4j.appender.C.layout=org.apache.log4j.PatternLayout
  7. log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n
  8. log4j.category.net.sf.hibernate=DEBUG, C
  9. log4j.additivity.net.sf.hibernate=false

DepartmentAutoDao.dicon

  1. <?xmlversion="1.0"encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5. <includepath="s2hibernate.dicon"/>
  6. <componentclass="examples.dao.DepartmentAutoDao">
  7. <aspect>j2ee.requiredTx</aspect>
  8. <aspect>s2hibernate.interceptor</aspect>
  9. </component>
  10. </components>

Employee.dicon

  1. <?xmlversion="1.0"encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5. <includepath="j2ee.dicon"/>
  6. <componentclass="org.seasar.hibernate3.impl.S2SessionFactoryImpl"/>
  7. <componentclass="examples.dao.EmployeeDaoImpl">
  8. <aspect>j2ee.requiredTx</aspect>
  9. </component>
  10. </components>

EmployeeAutoDao.dicon

  1. <?xmlversion="1.0"encoding="Shift_JIS"?>
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
  3. "http://www.seasar.org/dtd/components.dtd">
  4. <components>
  5. <includepath="s2hibernate.dicon"/>
  6. <componentclass="examples.dao.EmployeeAutoDao">
  7. <aspect>j2ee.requiredTx</aspect>
  8. <aspect>s2hibernate.interceptor</aspect>
  9. </component>
  10. </components>

DepartmentAutoDao.java

  1. package examples.dao;
  2. import java.util.List;
  3. import examples.entity.Department;
  4. publicinterface DepartmentAutoDao {
  5. public Class<Department> BEAN = Department.class;
  6. //load
  7. public Department load(short empno);
  8. //引數にListをしていする場合
  9. public String getDepartmentByDeptno_ARGS = "deptno";
  10. public String getDepartmentByDeptno_EAGER = "employee";
  11. public Department getDepartmentByDeptno( int deptno );
  12. public String findAll_EAGER = "employee";
  13. public List<?> findAll( );
  14. //public String getDept_HQL = "from Department as d where d.deptno = :deptno";
  15. //  public String getDept_HQL = "select d from Department as d where d.deptno = :deptno";
  16. public String getDept_HQL = "from Department as d where d.deptno = :deptno";
  17. public String getDept_ARGS = "deptno";
  18. public Department getDept(int deptno);
  19. public String getDeptName_HQL = "select d.dname from Department as d where d.deptno = :deptno";
  20. public String getDeptName_ARGS = "deptno";
  21. public String getDeptName(int deptno);
  22. }

EmployeeAutoDao.java

  1. package examples.dao;
  2. import java.math.BigDecimal;
  3. import java.util.List;
  4. import examples.dto.EmployeeSalDto;
  5. import examples.dto.EmployeeSearchDto;
  6. import examples.dto.EmployeeSimpleDto;
  7. import examples.entity.Employee;
  8. publicinterface EmployeeAutoDao {
  9. public Class<Employee> BEAN = Employee.class;
  10. //追加、削除、更新、儲存or更新をする場合
  11. publicvoid save(Employee employee);
  12. publicvoid delete(Employee employee);
  13. publicvoid update(Employee employee);
  14. publicvoid saveOrUpdate(Employee employee);
  15. //オブジェクトの取得
  16. public Employee load(Integer empno);
  17. //オブジェクトをロックをかけて取得
  18. public String loadLock_LOCK = "UPGRADE" ;
  19. public Employee loadLock(Integer empno);
  20. //HQLを指定しないで実行する場合
  21. public String   getEmployeeByEmpNo_ARGS = "empno";
  22. public Employee getEmployeeByEmpNo(Integer empNo);
  23. public String  getEmployeeByJobDeptno_ARGS = "job,deptno";
  24. public List<?> getEmployeeByJobDeptno(String job, int deptno);
  25. //HQLを指定して実行する場合
  26. public String  getHQLAllEmployee_HQL = "from Employee emp order by emp.empno";
  27. public List<?> getHQLAllEmployee();
  28. //何も指定していない場合
  29. public List<?> getAllEmployee();
  30. //firstResult,maxResultsを指定する場合
  31. public String  getEmployeeList_ARGS = "firstResult,maxResults";
  32. public String  getEmployeeList_HQL = "from Employee emp order by emp.empno";
  33. public List<?> getEmployeeList(int firstResult ,int MaxResults );
  34. //戻り値がintの場合
  35. public String getEmployeeCount_HQL = "select count(emp) from Employee emp";
  36. publicint getEmployeeCount();
  37. //戻り値がStringの場合
  38. public String getEmployeeNameById_HQL 
  39.                 = "select emp.ename from Employee emp where empno = :employeeId ";
  40. public String getEmployeeNameById_ARGS = "employeeId";
  41. public String getEmployeeNameById(Integer employeeId);
  42. //NamedQuery呼び出しを使う場合
  43. //(Employee.hbm.xmlの"examples.hibernate.dao.EmployeeAutoDao_getEmployeeByJob"に対応)
  44. public String  getEmployeeByJob_ARGS = "job";
  45. public List<?> getEmployeeByJob(String job);
  46. //NamedQueryで戻り値がStringになるようなSQL文を使う場合
  47. //(Employee.hbm.xmlの"examples.hibernate.dao.EmployeeAutoDao_getSQLEmployeeNameById"に対応)
  48. public String getSQLEmployeeNameById_ARGS = "employeeId";
  49. public String getSQLEmployeeNameById(Integer employeeId);   
  50. //NamedQueryで戻り値がLongになるようなSQL文を使う場合
  51. //(Employee.hbm.xmlの"getSQLEmployeeIdByName"NamedQueryを実行)
  52. public String  getSQLEmployeeIdByName_ARGS = "employeeName";
  53. public Integer getSQLEmployeeIdByName(String employeeName);
  54. //引數にListをしていする場合
  55. public String  getEmployeeByIdList_HQL = "from Employee emp where emp.empno in (:empnoList)";
  56. public String  getEmployeeByIdList_ARGS = "empnoList";
  57. public List<?> getEmployeeByIdList( List<?> empnoList );
  58. //OrderByのフィールドを指定する場合
  59. public String  getEmployeeOrderByField_ARGS = "orderBy";
  60. public List<?> getEmployeeOrderByField( String orderBy );
  61. //ARGSアノテーションに比較オペレーター(>)を指定した場合
  62. public String  getEmployeeByGtSal_ARGS = "sal >";
  63. public List<?> getEmployeeByGtSal( BigDecimal sal );
  64. //ARGSアノテーションに比較オペレーター(<)を指定した場合
  65. public String  getEmployeeByLtSal_ARGS = "sal <";
  66. public List<?> getEmployeeByLtSal( BigDecimal sal );
  67. //ARGSアノテーションに比較オペレーター(>,<)を指定した場合
  68. //指定したフィールドが指定した範囲の値のオブジェクトを取得したいとき
  69. public String  getEmployeeByGtLtSal_ARGS = "sal >,sal <";
  70. public List<?> getEmployeeByGtLtSal( BigDecimal BigDecimal ,BigDecimal toSal );
  71. //ARGSアノテーションに比較オペレーター(=)を指定した場合
  72. public String getEmployeeByJobDeptnoEq_ARGS = "job =,deptno =";
  73. public List<?> getEmployeeByJobDeptnoEq(String job, int deptno);
  74. //ARGSアノテーションに比較オペレーター(like)を指定した場合
  75. public String  getEmployeeByLikeEmane_ARGS = "ename like";
  76. public List<?> getEmployeeByLikeEmane( String ename );
  77. //ARGSアノテーションに比較オペレーター(in)を指定した場合
  78. public String  getEmployeeByInIdList_ARGS = "empno in";
  79. public List<?> getEmployeeByInIdList( List<?> empnoList );
  80. //ARGSアノテーションに比較オペレーター(>=,<=)を指定した場合(EmployeeSearchDto)
  81. //指定したフィールドが指定した範囲の値のオブジェクトを取得したいとき
  82. public String  getEmployeeByDto_PROPERTY = "empno,ename,job,mgr,deptno," +
  83. "hiredate >= fromHiredate,hiredate <= toHiredate,sal >= fromSal,sal <= toSal";
  84. public List<?> getEmployeeByDto( EmployeeSearchDto dto );
  85. //dtoとしてEmployeeを指定して処理する場合
  86. public List<?> getEmployeeByEmployeeDtoAuto( Employee dto );
  87. //dtoとしてEmployeeSimpleDtoを指定して処理する場合
  88. public List<?> getEmployeeByEmployeeSimpleDtoAuto( EmployeeSimpleDto dto );
  89. //Dtoの値をHQLに渡して実行する場合
  90. public String  getEmployeeBySalDto_PROPERTY = "fromSal,toSal";
  91. public List<?> getEmployeeBySalDto( EmployeeSalDto dto );
  92. }

EmployeeDao.java

  1. package examples.dao;
  2. import examples.entity.Employee;
  3. publicinterface EmployeeDao {
  4. public Employee getEmployee(int empno);
  5. publicvoid save(Employee employee);
  6. }

EmployeeDaoImpl.java

  1. package examples.dao;
  2. import java.util.List;
  3. import org.hibernate.Query;
  4. import org.seasar.hibernate3.S2SessionFactory;
  5. import examples.entity.Employee;
  6. publicclass EmployeeDaoImpl implements EmployeeDao {
  7. privatestaticfinal String HQL = "from Employee where empno = ?";
  8. private S2SessionFactory sessionFactory_;
  9. public EmployeeDaoImpl(S2SessionFactory sessionFactory) { 
  10.         sessionFactory_ = sessionFactory;
  11.     }
  12. public Employee getEmployee(int empno) {
  13. //      List result = sessionFactory_.getSession().find(
  14. //          HQL, new Integer(empno), Hibernate.INTEGER);
  15.         Query query = sessionFactory_.getSession().createQuery(HQL);
  16.         query.setInteger(0new Integer(empno));
  17.         List<?> result = query.list();
  18. if (result.size() > 0) {
  19. return (Employee) result.get(0);
  20.         } else {
  21. returnnull;
  22.         }
  23.     }
  24. publicvoid save(Employee employee) {
  25.         sessionFactory_.getSession().save(employee);
  26.     }
  27. }

EmployeeSalDto.java

  1. package examples.dto;
  2. import java.math.BigDecimal;
  3. publicclass EmployeeSalDto {
  4. private BigDecimal fromSal;
  5. private BigDecimal toSal;
  6. public EmployeeSalDto() {
  7.     }
  8. public BigDecimal getFromSal() {
  9. return fromSal;
  10.     }
  11. publicvoid setFromSal(BigDecimal fromSal) {
  12. this.fromSal = fromSal;
  13.     }
  14. public BigDecimal getToSal() {
  15. return toSal;
  16.     }
  17. publicvoid setToSal(BigDecimal toSal) {
  18. this.toSal = toSal;
  19.     }
  20. }

EmployeeSearchDto.java

  1. package examples.dto;
  2. import java.io.Serializable;
  3. import java.math.BigDecimal;
  4. publicclass EmployeeSearchDto implements Serializable {
  5. privatestaticfinallong serialVersionUID = 1L;
  6. private Integer empno;
  7. private String ename;
  8. private String job;
  9. private Short mgr;
  10. private java.util.Date fromHiredate;
  11. private java.util.Date toHiredate;
  12. private BigDecimal fromSal;
  13. private BigDecimal toSal;
  14. private Integer deptno;
  15. public EmployeeSearchDto() {
  16.     }
  17. public Integer getEmpno() {
  18. returnthis.empno;
  19.     }
  20. publicvoid setEmpno(Integer empno) {
  21. this.empno = empno;
  22.     }
  23. public java.lang.String getEname() {
  24. returnthis.ename;
  25.     }
  26. publicvoid setEname(java.lang.String ename) {
  27. this.ename = ename;
  28.     }
  29. public java.lang.String getJob() {
  30. returnthis.job;
  31.     }
  32. publicvoid setJob(java.lang.String job) {
  33. this.job = job;
  34.     }
  35. public Short getMgr() {
  36. returnthis.mgr;
  37.     }
  38. publicvoid setMgr(Short mgr) {
  39. this.mgr = mgr;
  40.     }
  41. public java.util.Date getFromHiredate() {
  42. returnthis.fromHiredate;
  43.     }
  44. publicvoid setFromHiredate(java.util.Date fromHiredate) {
  45. this.fromHiredate = fromHiredate;
  46.     }
  47. public java.util.Date getToHiredate() {
  48. returnthis.toHiredate;
  49.     }
  50. publicvoid setToHiredate(java.util.Date toHiredate) {
  51. this.toHiredate = toHiredate;
  52.     }
  53. public BigDecimal getFromSal() {
  54. returnthis.fromSal;
  55.     }
  56. publicvoid setFromSal(BigDecimal fromSal) {
  57. this.fromSal = fromSal;
  58.     }
  59. public BigDecimal getToSal() {
  60. returnthis.toSal;
  61.     }
  62. publicvoid setToSal(BigDecimal toSal) {
  63. this.toSal = toSal;
  64.     }
  65. public Integer getDeptno() {
  66. returnthis.deptno;
  67.     }
  68. publicvoid setDeptno(Integer deptno) {
  69. this.deptno = deptno;
  70.     }
  71. public String toString() {
  72.         StringBuffer buf = new StringBuffer("[");
  73.         buf.append(empno).append(", ");
  74.         buf.append(ename).append(", ");
  75.         buf.append(job).append(", ");
  76.         buf.append(mgr).append(", ");
  77.         buf.append(fromHiredate).append(", ");
  78.         buf.append(toHiredate).append(", ");
  79.         buf.append(fromSal).append(", ");
  80.         buf.append(toSal).append(", ");
  81.         buf.append(deptno).append("]");
  82. return buf.toString();
  83.     }
  84. }

EmployeeSimpleDto.java

  1. package examples.dto;
  2. import examples.entity.Employee;
  3. publicclass EmployeeSimpleDto extends Employee {
  4. privatestaticfinallong serialVersionUID = 1L;
  5. private String orderBy;
  6. public String getOrderBy() {
  7. return orderBy;
  8.     }
  9. publicvoid setOrderBy(String orderBy) {
  10. this.orderBy = orderBy;
  11.     }
  12. }

Department.java

  1. package examples.entity;
  2. import java.io.Serializable;
  3. import java.util.Set;
  4. publicclass Department implements Serializable {
  5. privatestaticfinallong serialVersionUID = 1L;
  6. privateint deptno;
  7. private String dname;
  8. private String loc;
  9. private Set<Employee> employee ;
  10. public Department() {
  11.     }
  12. publicint getDeptno() {
  13. returnthis.deptno;
  14.     }
  15. publicvoid setDeptno(int deptno) {
  16. this.deptno = deptno;
  17.     }
  18. public java.lang.String getDname() {
  19. returnthis.dname;
  20.     }
  21. publicvoid setDname(java.lang.String dname) {
  22. this.dname = dname;
  23.     }
  24. public java.lang.String getLoc() {
  25. returnthis.loc;
  26.     }
  27. publicvoid setLoc(java.lang.String loc) {
  28. this.loc = loc;
  29.     }
  30. public Set<Employee> getEmployee() {
  31. return employee;
  32.     }
  33. publicvoid setEmployee(Set<Employee> employee) {
  34. this.employee = employee;
  35.     }
  36. publicboolean equals(Object other) {
  37. if ( !(other instanceof Department) ) returnfalse;
  38.         Department castOther = (Department) other;
  39. returnthis.getDeptno() == castOther.getDeptno();
  40.     }
  41. public String toString() {
  42.         StringBuffer buf = new StringBuffer();
  43.         buf.append("/n").append(deptno).append(", ");
  44.         buf.append(dname).append(", ");
  45.         buf.append(loc).append(",/n");
  46.         buf.append(employee);
  47. return buf.toString();
  48.     }
  49. publicint hashCode() {
  50. return (intthis.getDeptno();
  51.     }
  52. }

Employee.java

  1. package examples.entity;
  2. import java.io.Serializable;
  3. import java.math.BigDecimal;
  4. publicclass Employee implements Serializable {
  5. privatestaticfinallong serialVersionUID = 1L;
  6. private Integer empno;
  7. private String ename;
  8. private String job;
  9. private Short mgr;
  10. private java.util.Date hiredate;
  11. private BigDecimal sal;
  12. private Float comm;
  13. private Integer deptno;
  14. public Employee(Integer empno, java.lang.String ename, java.lang.String job, Short mgr, java.util.Date hiredate, BigDecimal sal, Float comm, Integer deptno) {
  15. this.empno = empno;
  16. this.ename = ename;
  17. this.job = job;
  18. this.mgr = mgr;
  19. this.hiredate = hiredate;
  20. this.sal = sal;
  21. this.comm = comm;
  22. this.deptno = deptno;
  23.     }
  24. public Employee() {
  25.     }
  26. public Employee(Integer empno) {
  27. this.empno = empno;
  28.     }
  29. public Integer getEmpno() {
  30. returnthis.empno;
  31.     }
  32. publicvoid setEmpno(Integer empno) {
  33. this.empno = empno;
  34.     }
  35. public java.lang.String getEname() {
  36. returnthis.ename;
  37.     }
  38. publicvoid setEname(java.lang.String ename) {
  39. this.ename = ename;
  40.     }
  41. public java.lang.String getJob() {
  42. returnthis.job;
  43.     }
  44. publicvoid setJob(java.lang.String job) {
  45. this.job = job;
  46.     }
  47. public Short getMgr() {
  48. returnthis.mgr;
  49.     }
  50. publicvoid setMgr(Short mgr) {
  51. this.mgr = mgr;
  52.     }
  53. public java.util.Date getHiredate() {
  54. returnthis.hiredate;
  55.     }
  56. publicvoid setHiredate(java.util.Date hiredate) {
  57. this.hiredate = hiredate;
  58.     }
  59. public BigDecimal getSal() {
  60. returnthis.sal;
  61.     }
  62. publicvoid setSal(BigDecimal sal) {
  63. this.sal = sal;
  64.     }
  65. public Float getComm() {
  66. returnthis.comm;
  67.     }
  68. publicvoid setComm(Float comm) {
  69. this.comm = comm;
  70.     }
  71. public Integer getDeptno() {
  72. returnthis.deptno;
  73.     }
  74. publicvoid setDeptno(Integer deptno) {
  75. this.deptno = deptno;
  76.     }
  77. publicboolean equals(Object other) {
  78. if ( !(other instanceof Employee) ) returnfalse;
  79.         Employee castOther = (Employee) other;
  80. returnthis.getEmpno() == castOther.getEmpno();
  81.     }
  82. publicint hashCode() {
  83. returnthis.getEmpno().intValue();
  84.     }
  85. public String toString() {
  86.         StringBuffer buf = new StringBuffer();
  87.         buf.append("[");
  88.         buf.append(deptno).append(", ");
  89.         buf.append(empno).append(", ");
  90.         buf.append(ename).append(", ");
  91.         buf.append(job).append(", ");
  92.