描述: 在平常的開發過程中,會發現日期的類型有許多種,有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. 運行結果