描述: 在平常的开发过程中,会发现日期的类型有许多种,有java.lang.Date,java.sql.Date,oracle.jbo.domain.Date,还有时间戳oracle.jbo.domain.Timestamp等等。经常也会遇到这些类型之间的相互转化。本次讲述日期字符串转化为oracle.jbo.domain.Date与oracle.jbo.domain.Timestamp的类型。
需求: 在xe数据库中的employees表中找出雇佣日期(hire_date)在某个时间(自己定义)之前,并且职位编号(job_id)只属于('AD_PRES', 'AD_VP', 'IT_PROG')三种类型的员工。
实现:
单纯用sql语句去查询很简单,例如。
这里为了更好地讲述问题,采用建立子查询的方式去查询符合条件的员工。
1. 基于表Employees,建立EmployeesEO,EmployeesVO。在EmployeesVO中建立一个子查询,用来查询符合条件的员工。首先在vo上面建立一个绑定变量。
2. 然后再vo中建立子查询EmployeesVC,并且HireDate属性绑定到上面建立的绑定变量bvHireDate上。
3. 创建jspx页面,SearchEmployees.jspx,布局大概如下
4. 产生对应backingBean,SearchEmployees类,把search的action绑定到SearchAction方法上,处理查询逻辑。首先把界面上的inputDate组件绑定到backingBean中,一边在后台取出界面上输入的值,然后把得到的字符串日期,转化为oracle.jbo.domain.Date或者oracle.jbo.domain.Timestamp类型。
首先在backingBean的SearchEmployees类中编写
在AM的实现类中实现search方法
5. 运行结果