日系框架之seasar2(S2Hibernate3)
来源:互联网 发布:java文件上传配置虚拟 编辑:程序博客网 时间:2024/04/24 23:22
官方主页:http://s2hibernate.seasar.org/ja/
所需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:
- CREATE TABLE EMP
- (EMPNO NUMERIC(4) NOT NULL PRIMARY KEY,
- ENAME VARCHAR(10),
- JOB VARCHAR(9),
- MGR NUMERIC(4),
- HIREDATE DATE,
- SAL NUMERIC(7, 2),
- COMM NUMERIC(7, 2),
- DEPTNO NUMERIC(2));
- INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902,
- '1980-12-17', 800, NULL, 20);
- INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698,
- '1981-02-20', 1600, 300, 30);
- INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698,
- '1981-02-22', 1250, 500, 30);
- INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839,
- '1981-04-02', 2975, NULL, 20);
- INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698,
- '1981-09-28', 1250, 1400, 30);
- INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839,
- '1981-05-01', 2850, NULL, 30);
- INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839,
- '1981-06-09', 2450, NULL, 10);
- INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566,
- '1982-12-09', 3000, NULL, 20);
- INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL,
- '1981-11-17', 5000, NULL, 10);
- INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698,
- '1981-09-08', 1500, 0, 30);
- INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788,
- '1983-01-12', 1100, NULL, 20);
- INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698,
- '1981-12-03', 950, NULL, 30);
- INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566,
- '1981-12-03', 3000, NULL, 20);
- INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782,
- '1982-01-23', 1300, NULL, 10);
- CREATE TABLE DEPT
- (DEPTNO NUMERIC(2) NOT NULL PRIMARY KEY,
- DNAME VARCHAR(14),
- LOC VARCHAR(13),
- VERSIONNO NUMERIC(8));
- INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK', 0);
- INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS', 0);
- INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO', 0);
- INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON', 0);
- COMMIT;
app.dicon
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
- "http://www.seasar.org/dtd/components24.dtd">
- <components>
- <include path="examples/dicon/Employee.dicon"/>
- <include path="examples/dicon/EmployeeAutoDao.dicon"/>
- <include path="examples/dicon/DepartmentAutoDao.dicon"/>
- </components>
hibernate.cfg.xml
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factory>
- <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
- <property name="show_sql">true</property>
- <mapping resource="examples/entity/Employee.hbm.xml" />
- <mapping resource="examples/entity/Department.hbm.xml" />
- </session-factory>
- </hibernate-configuration>
jdbc.dicon
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
- "http://www.seasar.org/dtd/components21.dtd">
- <components namespace="jdbc">
- <include path="jta.dicon"/>
- <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
- <property name="driverClassName">
- "org.hsqldb.jdbcDriver"
- </property>
- <property name="URL">
- "jdbc:hsqldb:hsql://localhost:9001"
- </property>
- <property name="user">"sa"</property>
- <property name="password">""</property>
- </component>
- <component name="connectionPool" class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
- <property name="timeout">600</property>
- <property name="maxPoolSize">10</property>
- <property name="allowLocalTx">true</property>
- <destroyMethod name="close"/>
- </component>
- <component name="DataSource" class="org.seasar.extension.dbcp.impl.DataSourceImpl" />
- </components>
s2hibernate.dicon
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
- "http://www.seasar.org/dtd/components.dtd">
- <components namespace="s2hibernate">
- <include path="j2ee.dicon"/>
- <component class="org.seasar.hibernate3.impl.S2SessionFactoryImpl" >
- <initMethod name="setConfigPath">
- <arg>"hibernate.cfg.xml"</arg>
- </initMethod>
- </component>
- <component class="org.seasar.hibernate3.dao.impl.HibernateDaoMetaDataFactoryImpl"/>
- <component name="readOnly" class="org.seasar.hibernate3.interceptor.ReadOnlySessionInterceptor"/>
- <component name="interceptor" class="org.seasar.hibernate3.dao.interceptors.S2HibernateDaoInterceptor"/>
- </components>
log4j.properties
- log4j.category.org.seasar=DEBUG, C
- log4j.additivity.org.seasar=false
- log4j.appender.C=org.apache.log4j.ConsoleAppender
- log4j.appender.C.Target=System.out
- log4j.appender.C.ImmediateFlush=true
- log4j.appender.C.layout=org.apache.log4j.PatternLayout
- log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n
- log4j.category.net.sf.hibernate=DEBUG, C
- log4j.additivity.net.sf.hibernate=false
DepartmentAutoDao.dicon
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
- "http://www.seasar.org/dtd/components.dtd">
- <components>
- <include path="s2hibernate.dicon"/>
- <component class="examples.dao.DepartmentAutoDao">
- <aspect>j2ee.requiredTx</aspect>
- <aspect>s2hibernate.interceptor</aspect>
- </component>
- </components>
Employee.dicon
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
- "http://www.seasar.org/dtd/components.dtd">
- <components>
- <include path="j2ee.dicon"/>
- <component class="org.seasar.hibernate3.impl.S2SessionFactoryImpl"/>
- <component class="examples.dao.EmployeeDaoImpl">
- <aspect>j2ee.requiredTx</aspect>
- </component>
- </components>
EmployeeAutoDao.dicon
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
- "http://www.seasar.org/dtd/components.dtd">
- <components>
- <include path="s2hibernate.dicon"/>
- <component class="examples.dao.EmployeeAutoDao">
- <aspect>j2ee.requiredTx</aspect>
- <aspect>s2hibernate.interceptor</aspect>
- </component>
- </components>
DepartmentAutoDao.java
- package examples.dao;
- import java.util.List;
- import examples.entity.Department;
- public interface DepartmentAutoDao {
- public Class<Department> BEAN = Department.class;
- //load
- public Department load(short empno);
- //引数にListをしていする場合
- public String getDepartmentByDeptno_ARGS = "deptno";
- public String getDepartmentByDeptno_EAGER = "employee";
- public Department getDepartmentByDeptno( int deptno );
- public String findAll_EAGER = "employee";
- public List<?> findAll( );
- //public String getDept_HQL = "from Department as d where d.deptno = :deptno";
- // public String getDept_HQL = "select d from Department as d where d.deptno = :deptno";
- public String getDept_HQL = "from Department as d where d.deptno = :deptno";
- public String getDept_ARGS = "deptno";
- public Department getDept(int deptno);
- public String getDeptName_HQL = "select d.dname from Department as d where d.deptno = :deptno";
- public String getDeptName_ARGS = "deptno";
- public String getDeptName(int deptno);
- }
EmployeeAutoDao.java
- package examples.dao;
- import java.math.BigDecimal;
- import java.util.List;
- import examples.dto.EmployeeSalDto;
- import examples.dto.EmployeeSearchDto;
- import examples.dto.EmployeeSimpleDto;
- import examples.entity.Employee;
- public interface EmployeeAutoDao {
- public Class<Employee> BEAN = Employee.class;
- //追加、削除、更新、保存or更新をする場合
- public void save(Employee employee);
- public void delete(Employee employee);
- public void update(Employee employee);
- public void saveOrUpdate(Employee employee);
- //オブジェクトの取得
- public Employee load(Integer empno);
- //オブジェクトをロックをかけて取得
- public String loadLock_LOCK = "UPGRADE" ;
- public Employee loadLock(Integer empno);
- //HQLを指定しないで実行する場合
- public String getEmployeeByEmpNo_ARGS = "empno";
- public Employee getEmployeeByEmpNo(Integer empNo);
- public String getEmployeeByJobDeptno_ARGS = "job,deptno";
- public List<?> getEmployeeByJobDeptno(String job, int deptno);
- //HQLを指定して実行する場合
- public String getHQLAllEmployee_HQL = "from Employee emp order by emp.empno";
- public List<?> getHQLAllEmployee();
- //何も指定していない場合
- public List<?> getAllEmployee();
- //firstResult,maxResultsを指定する場合
- public String getEmployeeList_ARGS = "firstResult,maxResults";
- public String getEmployeeList_HQL = "from Employee emp order by emp.empno";
- public List<?> getEmployeeList(int firstResult ,int MaxResults );
- //戻り値がintの場合
- public String getEmployeeCount_HQL = "select count(emp) from Employee emp";
- public int getEmployeeCount();
- //戻り値がStringの場合
- public String getEmployeeNameById_HQL
- = "select emp.ename from Employee emp where empno = :employeeId ";
- public String getEmployeeNameById_ARGS = "employeeId";
- public String getEmployeeNameById(Integer employeeId);
- //NamedQuery呼び出しを使う場合
- //(Employee.hbm.xmlの"examples.hibernate.dao.EmployeeAutoDao_getEmployeeByJob"に対応)
- public String getEmployeeByJob_ARGS = "job";
- public List<?> getEmployeeByJob(String job);
- //NamedQueryで戻り値がStringになるようなSQL文を使う場合
- //(Employee.hbm.xmlの"examples.hibernate.dao.EmployeeAutoDao_getSQLEmployeeNameById"に対応)
- public String getSQLEmployeeNameById_ARGS = "employeeId";
- public String getSQLEmployeeNameById(Integer employeeId);
- //NamedQueryで戻り値がLongになるようなSQL文を使う場合
- //(Employee.hbm.xmlの"getSQLEmployeeIdByName"NamedQueryを実行)
- public String getSQLEmployeeIdByName_ARGS = "employeeName";
- public Integer getSQLEmployeeIdByName(String employeeName);
- //引数にListをしていする場合
- public String getEmployeeByIdList_HQL = "from Employee emp where emp.empno in (:empnoList)";
- public String getEmployeeByIdList_ARGS = "empnoList";
- public List<?> getEmployeeByIdList( List<?> empnoList );
- //OrderByのフィールドを指定する場合
- public String getEmployeeOrderByField_ARGS = "orderBy";
- public List<?> getEmployeeOrderByField( String orderBy );
- //ARGSアノテーションに比較オペレーター(>)を指定した場合
- public String getEmployeeByGtSal_ARGS = "sal >";
- public List<?> getEmployeeByGtSal( BigDecimal sal );
- //ARGSアノテーションに比較オペレーター(<)を指定した場合
- public String getEmployeeByLtSal_ARGS = "sal <";
- public List<?> getEmployeeByLtSal( BigDecimal sal );
- //ARGSアノテーションに比較オペレーター(>,<)を指定した場合
- //指定したフィールドが指定した範囲の値のオブジェクトを取得したいとき
- public String getEmployeeByGtLtSal_ARGS = "sal >,sal <";
- public List<?> getEmployeeByGtLtSal( BigDecimal BigDecimal ,BigDecimal toSal );
- //ARGSアノテーションに比較オペレーター(=)を指定した場合
- public String getEmployeeByJobDeptnoEq_ARGS = "job =,deptno =";
- public List<?> getEmployeeByJobDeptnoEq(String job, int deptno);
- //ARGSアノテーションに比較オペレーター(like)を指定した場合
- public String getEmployeeByLikeEmane_ARGS = "ename like";
- public List<?> getEmployeeByLikeEmane( String ename );
- //ARGSアノテーションに比較オペレーター(in)を指定した場合
- public String getEmployeeByInIdList_ARGS = "empno in";
- public List<?> getEmployeeByInIdList( List<?> empnoList );
- //ARGSアノテーションに比較オペレーター(>=,<=)を指定した場合(EmployeeSearchDto)
- //指定したフィールドが指定した範囲の値のオブジェクトを取得したいとき
- public String getEmployeeByDto_PROPERTY = "empno,ename,job,mgr,deptno," +
- "hiredate >= fromHiredate,hiredate <= toHiredate,sal >= fromSal,sal <= toSal";
- public List<?> getEmployeeByDto( EmployeeSearchDto dto );
- //dtoとしてEmployeeを指定して処理する場合
- public List<?> getEmployeeByEmployeeDtoAuto( Employee dto );
- //dtoとしてEmployeeSimpleDtoを指定して処理する場合
- public List<?> getEmployeeByEmployeeSimpleDtoAuto( EmployeeSimpleDto dto );
- //Dtoの値をHQLに渡して実行する場合
- public String getEmployeeBySalDto_PROPERTY = "fromSal,toSal";
- public List<?> getEmployeeBySalDto( EmployeeSalDto dto );
- }
EmployeeDao.java
- package examples.dao;
- import examples.entity.Employee;
- public interface EmployeeDao {
- public Employee getEmployee(int empno);
- public void save(Employee employee);
- }
EmployeeDaoImpl.java
- package examples.dao;
- import java.util.List;
- import org.hibernate.Query;
- import org.seasar.hibernate3.S2SessionFactory;
- import examples.entity.Employee;
- public class EmployeeDaoImpl implements EmployeeDao {
- private static final String HQL = "from Employee where empno = ?";
- private S2SessionFactory sessionFactory_;
- public EmployeeDaoImpl(S2SessionFactory sessionFactory) {
- sessionFactory_ = sessionFactory;
- }
- public Employee getEmployee(int empno) {
- // List result = sessionFactory_.getSession().find(
- // HQL, new Integer(empno), Hibernate.INTEGER);
- Query query = sessionFactory_.getSession().createQuery(HQL);
- query.setInteger(0, new Integer(empno));
- List<?> result = query.list();
- if (result.size() > 0) {
- return (Employee) result.get(0);
- } else {
- return null;
- }
- }
- public void save(Employee employee) {
- sessionFactory_.getSession().save(employee);
- }
- }
EmployeeSalDto.java
- package examples.dto;
- import java.math.BigDecimal;
- public class EmployeeSalDto {
- private BigDecimal fromSal;
- private BigDecimal toSal;
- public EmployeeSalDto() {
- }
- public BigDecimal getFromSal() {
- return fromSal;
- }
- public void setFromSal(BigDecimal fromSal) {
- this.fromSal = fromSal;
- }
- public BigDecimal getToSal() {
- return toSal;
- }
- public void setToSal(BigDecimal toSal) {
- this.toSal = toSal;
- }
- }
EmployeeSearchDto.java
- package examples.dto;
- import java.io.Serializable;
- import java.math.BigDecimal;
- public class EmployeeSearchDto implements Serializable {
- private static final long serialVersionUID = 1L;
- private Integer empno;
- private String ename;
- private String job;
- private Short mgr;
- private java.util.Date fromHiredate;
- private java.util.Date toHiredate;
- private BigDecimal fromSal;
- private BigDecimal toSal;
- private Integer deptno;
- public EmployeeSearchDto() {
- }
- public Integer getEmpno() {
- return this.empno;
- }
- public void setEmpno(Integer empno) {
- this.empno = empno;
- }
- public java.lang.String getEname() {
- return this.ename;
- }
- public void setEname(java.lang.String ename) {
- this.ename = ename;
- }
- public java.lang.String getJob() {
- return this.job;
- }
- public void setJob(java.lang.String job) {
- this.job = job;
- }
- public Short getMgr() {
- return this.mgr;
- }
- public void setMgr(Short mgr) {
- this.mgr = mgr;
- }
- public java.util.Date getFromHiredate() {
- return this.fromHiredate;
- }
- public void setFromHiredate(java.util.Date fromHiredate) {
- this.fromHiredate = fromHiredate;
- }
- public java.util.Date getToHiredate() {
- return this.toHiredate;
- }
- public void setToHiredate(java.util.Date toHiredate) {
- this.toHiredate = toHiredate;
- }
- public BigDecimal getFromSal() {
- return this.fromSal;
- }
- public void setFromSal(BigDecimal fromSal) {
- this.fromSal = fromSal;
- }
- public BigDecimal getToSal() {
- return this.toSal;
- }
- public void setToSal(BigDecimal toSal) {
- this.toSal = toSal;
- }
- public Integer getDeptno() {
- return this.deptno;
- }
- public void setDeptno(Integer deptno) {
- this.deptno = deptno;
- }
- public String toString() {
- StringBuffer buf = new StringBuffer("[");
- buf.append(empno).append(", ");
- buf.append(ename).append(", ");
- buf.append(job).append(", ");
- buf.append(mgr).append(", ");
- buf.append(fromHiredate).append(", ");
- buf.append(toHiredate).append(", ");
- buf.append(fromSal).append(", ");
- buf.append(toSal).append(", ");
- buf.append(deptno).append("]");
- return buf.toString();
- }
- }
EmployeeSimpleDto.java
- package examples.dto;
- import examples.entity.Employee;
- public class EmployeeSimpleDto extends Employee {
- private static final long serialVersionUID = 1L;
- private String orderBy;
- public String getOrderBy() {
- return orderBy;
- }
- public void setOrderBy(String orderBy) {
- this.orderBy = orderBy;
- }
- }
Department.java
- package examples.entity;
- import java.io.Serializable;
- import java.util.Set;
- public class Department implements Serializable {
- private static final long serialVersionUID = 1L;
- private int deptno;
- private String dname;
- private String loc;
- private Set<Employee> employee ;
- public Department() {
- }
- public int getDeptno() {
- return this.deptno;
- }
- public void setDeptno(int deptno) {
- this.deptno = deptno;
- }
- public java.lang.String getDname() {
- return this.dname;
- }
- public void setDname(java.lang.String dname) {
- this.dname = dname;
- }
- public java.lang.String getLoc() {
- return this.loc;
- }
- public void setLoc(java.lang.String loc) {
- this.loc = loc;
- }
- public Set<Employee> getEmployee() {
- return employee;
- }
- public void setEmployee(Set<Employee> employee) {
- this.employee = employee;
- }
- public boolean equals(Object other) {
- if ( !(other instanceof Department) ) return false;
- Department castOther = (Department) other;
- return this.getDeptno() == castOther.getDeptno();
- }
- public String toString() {
- StringBuffer buf = new StringBuffer();
- buf.append("/n").append(deptno).append(", ");
- buf.append(dname).append(", ");
- buf.append(loc).append(",/n");
- buf.append(employee);
- return buf.toString();
- }
- public int hashCode() {
- return (int) this.getDeptno();
- }
- }
Employee.java
- package examples.entity;
- import java.io.Serializable;
- import java.math.BigDecimal;
- public class Employee implements Serializable {
- private static final long serialVersionUID = 1L;
- private Integer empno;
- private String ename;
- private String job;
- private Short mgr;
- private java.util.Date hiredate;
- private BigDecimal sal;
- private Float comm;
- private Integer deptno;
- public Employee(Integer empno, java.lang.String ename, java.lang.String job, Short mgr, java.util.Date hiredate, BigDecimal sal, Float comm, Integer deptno) {
- this.empno = empno;
- this.ename = ename;
- this.job = job;
- this.mgr = mgr;
- this.hiredate = hiredate;
- this.sal = sal;
- this.comm = comm;
- this.deptno = deptno;
- }
- public Employee() {
- }
- public Employee(Integer empno) {
- this.empno = empno;
- }
- public Integer getEmpno() {
- return this.empno;
- }
- public void setEmpno(Integer empno) {
- this.empno = empno;
- }
- public java.lang.String getEname() {
- return this.ename;
- }
- public void setEname(java.lang.String ename) {
- this.ename = ename;
- }
- public java.lang.String getJob() {
- return this.job;
- }
- public void setJob(java.lang.String job) {
- this.job = job;
- }
- public Short getMgr() {
- return this.mgr;
- }
- public void setMgr(Short mgr) {
- this.mgr = mgr;
- }
- public java.util.Date getHiredate() {
- return this.hiredate;
- }
- public void setHiredate(java.util.Date hiredate) {
- this.hiredate = hiredate;
- }
- public BigDecimal getSal() {
- return this.sal;
- }
- public void setSal(BigDecimal sal) {
- this.sal = sal;
- }
- public Float getComm() {
- return this.comm;
- }
- public void setComm(Float comm) {
- this.comm = comm;
- }
- public Integer getDeptno() {
- return this.deptno;
- }
- public void setDeptno(Integer deptno) {
- this.deptno = deptno;
- }
- public boolean equals(Object other) {
- if ( !(other instanceof Employee) ) return false;
- Employee castOther = (Employee) other;
- return this.getEmpno() == castOther.getEmpno();
- }
- public int hashCode() {
- return this.getEmpno().intValue();
- }
- public String toString() {
- StringBuffer buf = new StringBuffer();
- buf.append("[");
- buf.append(deptno).append(", ");
- buf.append(empno).append(", ");
- buf.append(ename).append(", ");
- buf.append(job).append(", ");
- buf.append(mgr).append(", ");
- buf.append(hiredate).append(", ");
- buf.append(sal).append(", ");
- buf.append(comm).append(", ");
- buf.append(deptno).append("]/n");
- return buf.toString();
- }
- }
Department.hbm.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping >
- <class name="examples.entity.Department" table="DEPT" >
- <id name="deptno" type="int" >
- <generator class="assigned"/>
- </id>
- <property name="dname" type="string" />
- <property name="loc" type="string" />
- <set name="employee" lazy="false" >
- <key column="DEPTNO" />
- <one-to-many class="examples.entity.Employee" />
- </set>
- </class>
- </hibernate-mapping>
Employee.hbm.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="examples.entity.Employee" table="EMP">
- <id name="empno" column="EMPNO" type="integer">
- <generator class="assigned"/>
- </id>
- <property name="ename" column="ENAME" type="string" length="10"/>
- <property name="job" column="JOB" type="string" length="9"/>
- <property name="mgr" column="MGR" type="short" length="4"/>
- <property name="hiredate" column="HIREDATE" type="timestamp"/>
- <property name="sal" column="SAL" type="big_decimal" length="7"/>
- <property name="comm" column="COMM" type="float" length="7"/>
- <property name="deptno" column="DEPTNO" type="int" length="2"/>
- </class>
- <query name="examples.dao.EmployeeAutoDao_getEmployeeByJob"><![CDATA[
- from Employee emp
- where emp.job = :job
- order by emp.empno desc
- ]]></query>
- <query name="examples.dao.EmployeeAutoDao_getSQLEmployeeNameById"><![CDATA[
- select emp.ename from Employee emp where emp.empno = :employeeId
- ]]></query>
- <query name="getSQLEmployeeIdByName"><![CDATA[
- select emp.empno from Employee emp where emp.ename = :employeeName
- ]]></query>
- <query name="getEmployeeBySalDto"><![CDATA[
- from Employee emp where emp.sal > :fromSal and emp.sal < :toSal
- ]]></query>
- </hibernate-mapping>
测试代码:
DepartmentAutoDaoClient.java
- package examples.work;
- import org.seasar.framework.container.S2Container;
- import org.seasar.framework.container.factory.S2ContainerFactory;
- import examples.dao.DepartmentAutoDao;
- import examples.entity.Department;
- public class DepartmentAutoDaoClient {
- private static final String PATH = "app.dicon";
- public static void main(String[] args) {
- S2Container container = S2ContainerFactory.create(PATH);
- container.init();
- try {
- DepartmentAutoDao dao = (DepartmentAutoDao) container.getComponent(DepartmentAutoDao.class);
- Department dept = dao.getDepartmentByDeptno((short)30);
- System.out.println(dept);
- // List list = dao.findAll();
- // System.out.println(list);
- } catch(Exception e){
- e.printStackTrace();
- } finally {
- container.destroy();
- }
- }
- }
EmployeeAutoDaoClient.java
- package examples.work;
- import org.seasar.framework.container.S2Container;
- import org.seasar.framework.container.factory.S2ContainerFactory;
- import examples.dao.EmployeeAutoDao;
- import examples.entity.Employee;
- public class EmployeeAutoDaoClient {
- private static final String PATH = "app.dicon";
- public static void main(String[] args) {
- S2Container container = S2ContainerFactory.create(PATH);
- container.init();
- try {
- EmployeeAutoDao dao = (EmployeeAutoDao) container.getComponent(EmployeeAutoDao.class);
- Employee emp = new Employee();
- emp.setEmpno(new Integer(9999));
- emp.setEname("SCOTT");
- emp.setDeptno(new Integer(10));
- dao.save(emp);
- emp.setEname("SYSTEM");
- dao.update(emp);
- emp = dao.getEmployeeByEmpNo(new Integer(9999));
- System.out.println(emp.getEname());
- dao.delete(emp);
- } catch(Exception e) {
- e.printStackTrace();
- } finally {
- container.destroy();
- }
- }
- }
EmployeeAutoDaoSimpleDtoClient.java
- package examples.work;
- import java.util.List;
- import org.seasar.framework.container.S2Container;
- import org.seasar.framework.container.factory.S2ContainerFactory;
- import examples.dao.EmployeeAutoDao;
- import examples.entity.Employee;
- public class EmployeeAutoDaoSimpleDtoClient {
- private static final String PATH = "app.dicon";
- public static void main(String[] args) {
- S2Container container = S2ContainerFactory.create(PATH);
- container.init();
- try {
- EmployeeAutoDao dao = (EmployeeAutoDao) container.getComponent(EmployeeAutoDao.class);
- Employee emp = new Employee();
- emp.setJob( "MANAGER" );
- emp.setDeptno( new Integer(20) );
- List<?> ret = dao.getEmployeeByEmployeeDtoAuto(emp);
- System.out.println("RET:" + ((Employee)ret.get(0)).getEname());
- } finally {
- container.destroy();
- }
- }
- }
EmployeeClient.java
- package examples.work;
- import org.seasar.framework.container.S2Container;
- import org.seasar.framework.container.factory.S2ContainerFactory;
- import examples.dao.EmployeeDao;
- public class EmployeeClient {
- private static final String PATH = "app.dicon";
- public static void main(String[] args) {
- S2Container container = S2ContainerFactory.create(PATH);
- container.init();
- try {
- EmployeeDao dao = (EmployeeDao) container.getComponent(EmployeeDao.class);
- System.out.println(dao.getEmployee(7900).getEname());
- // Employee employee = new Employee();
- // employee.setEmpno(new Integer(7788));
- // employee.setEname("SCOTT");
- // dao.save(employee);
- } catch(Exception e) {
- e.printStackTrace();
- } finally {
- container.destroy();
- }
- }
- }
- 日系框架之seasar2(S2Hibernate3)
- 日系框架之seasar2(S2JDBC)
- 日系框架之seasar2(S2DAO)
- 日系框架之seasar2(S2JPA之Hibernate3)
- 日系框架之seasar2(S2JPA之TopLink)
- 日系框架之seasar2(S2JPA之OpenJPA)
- 日系框架之seasar2(S2JDBC) -----使用HSQLDB
- 日系框架之seasar2(S2JSF)
- 日系框架之seasar2(SAStruts)
- 日系框架之seasar2(S2Struts)
- 日系框架之Seasar2之SQL注释大坑-yellowcong
- 日系框架之seasar2(Teeda:S2JSF的孪生兄弟)
- 日系框架之seasar2(Teeda支援HTML模板)
- 日系框架之seasar2(SAStruts)升级篇
- SeaSar2之struts2+ seasar2 + s2dao框架整合-yellowcong
- 开源框架 Seasar2
- 开源框架 Seasar2
- Seasar2 框架学习笔记
- asp SQL SERVER 和EXCEL的数据导入导出
- FFMPEG 添加第三方库 MINGW+MSYS
- 从工信部公布TD资费套餐讲起
- JAVA中常用需要设置的三个环境变量
- Action里面输出json串来呈现数据
- 日系框架之seasar2(S2Hibernate3)
- oracle一张层级关系表和另一张表汇总
- FLEX开源视频聊天室openvchat
- 跨浏览器编程之JavaScript
- 17传加密器
- test
- ASP.NET三层结构及应用
- 如何实现asp.net三层架构
- 常用正则表达式