FrontPage > SAStrutsの覚書 > サンプルアプリ 外部SQLファイルによる検索 †先に作成した検索処理を外部SQLファイルを使用するように
変更する。ついでに従業員番号も前方一致で検索するようにする。 1. 外部SQLファイル †src/main/resources以下の com.ziqoo.sassample.serviceパッケージへ select e.ID, e.EMP_NO, e.EMP_NAME ,e.MGR_ID, e.HIREDATE, e.SAL, e.DEPT_ID, e.VERSION_NO ,d.DEPT_NO, d.DEPT_NAME, d.LOC from EMP e join DEPT d on e.DEPT_ID = d.ID /*BEGIN*/ where /*IF empNoCondition != null && empNoCondition.length() > 0*/ e.EMP_NO like /*empNoCondition*/'7%' /*END*/ /*IF empNameCondition != null && empNameCondition.length() > 0*/ and e.EMP_NAME like /*empNameCondition*/'A%' /*END*/ /*IF hiredateMin != null*/ and e.HIREDATE >= /*hiredateMin*/'1980-01-01' /*END*/ /*IF hiredateMax != null*/ and e.HIREDATE <= /*hiredateMax*/'2000-01-01' /*END*/ /*IF deptIdCondition != null*/ and e.DEPT_ID = /*deptIdCondition*/3 /*END*/ /*END*/ 2. SQLファイルパスの定数クラス作成 †
3. 検索条件クラス修正 †従業員番号を前方一致検索できるようにするため、SearchEmpConditionクラスの empNoプロパティの型をIntegerからStringに変更する。 /** 従業員番号 */ public String empNoCondition; 4. 検索結果格納用クラス作成 †com.ziqoo.sassample.dto.SearchEmpDto.javaを作成する。 5. Actionフォームクラスの修正 †SearchEmpForm.javaのempListの型をList<SearchEmpDto>に変更する。 /** 従業員検索結果 */ public List<SearchEmpDto> empList; 6. Serviceクラス修正 †EmpService.javaのfind()メソッドを以下のように修正する。 public List<SearchEmpDto> find(SearchEmpCondition condition) { if (StringUtil.isNotEmpty(condition.empNoCondition)) { condition.empNoCondition += "%"; } if (StringUtil.isNotEmpty(condition.empNameCondition)) { condition.empNameCondition += "%"; } return jdbcManager. selectBySqlFile(SearchEmpDto.class ,SqlFiles.SERVICE_EMP_SERVICE_FIND ,condition).getResultList(); } 上記jdbcManager.selectBySqlFileの代わりに継承しているselectBySqlFile()メソッドを使用する場合は
7. JSP修正 †searchEmp.jsp検索結果一覧の以下の部分を <td class="data">${emp.dept.deptName}</td> 以下のように修正する。 <td class="data">${emp.deptName}</td> |
|