Monday, 8 October 2012

Ibatis 2: ORA-00911: invalid character error


org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested
exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/icms/biz/dao/ibatis/maps/StaffExpertise.xml.
--- The error occurred while applying a parameter map.
--- Check the STEXP.getActSEBSId-InlineParameterMap.
--- Check the statement (query failed).
--- Cause: java.sql.SQLException: ORA-00911: invalid character 

        at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLEx
ceptionTranslator.java:97)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Abstrac
tFallbackSQLExceptionTranslator.java:72)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Abstrac
tFallbackSQLExceptionTranslator.java:80)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Abstrac
tFallbackSQLExceptionTranslator.java:80)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212
)

Friday, 5 October 2012

IBATIS 2 SQL Map: LIKE + '%'

Jumpa 1 isu dengan SQL Mapping apabila cuba gunakan LIKE dengan '%' dalam SQL Map framework IBATIS 2 

Thursday, 4 October 2012

<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
  {
  return 1;
  }
else
  {
  return 0;
  }
}
]]>


Notes on CDATA sections:
  • A CDATA section cannot contain the string "]]>". 
  • Nested CDATA sections are not allowed.
  • The "]]>" that marks the end of the CDATA section cannot contain spaces or line breaks.

Tuesday, 2 October 2012

Ingat semula + RnD: cv-Online

Study cv-online untuk integrasi fungsi carian kepakaran pekerja.

Cuba kekalkan fungsi sedia ada, tapi dropdown dynamic gunakan DWR should be better.

[ Spesifikasi ]

  • SPRING 2.5.6
  • DWR 2.0.6

[ Kaji ]

  • controller
    • gunakan konfigurasi xml.
  • layout
    • DWR nampak promising, boleh alter table row dynamically
      • test DWR di http://machine:port/appsName/dwr/index.html , tapi mesti set param debug=true dulu.
      • DWR dalam projek ini rujuk kepada spring-dispatcher-servlet (org.springframework.web.servlet.DispatcherServlet), maka config dalam web.xml tidak diperlukan.
      • Konfig DWR ada dalam appsName-servlet.xml.
  • return value
    • ada bugs dengan special character, apar-online gunakan satu field khas untuk js.
      • cari kaedah untuk hantar value tanpa melalui parameter since ada pendapat mengatakan value pada dom object akan automatically converted.

Monday, 24 September 2012

IBATIS 2 SQL Map : Contoh hantar lebih 1 parameter gunakan java.util.Map


Contoh kita ada function dalam DAO IMPL:
public List<StaffSupervise> getExtSuperviseList(String staffId, String superviseCategory, String communityServiceType)
{
Map<String,String> paramMap = new HashMap<String, String>();
paramMap.put("p_staff_id", staffId);
paramMap.put("p_supervise_category", superviseCategory);
paramMap.put("p_comm_srvc_type", communityServiceType);

try{
@SuppressWarnings("unchecked")
List<StaffSupervise> list = this.getSqlMapClientTemplate().queryForList("STAFF_SUPERVISE.getStaffExtSuperv", paramMap);
return list;
} catch (Exception e){
e.printStackTrace();
return new ArrayList<StaffSupervise>();
}
}

Utk SQL Mapping pula 
(since structure CV-Online dgn APR berbeza sikit, abaikan perbezaan naming mapping.)

  <select id="STAFF_SUPERVISE.getStaffExternalSuperviseByCategoryAndSrvcType" resultMap="StaffSuperviseResultMap_3" parameterClass="java.util.Map" >
select ss.*,
om_name institution_desc, ql_desc level_desc, null duration_month
from staff_supervise ss, organization_main, qualification_level
where ss_institution = om_seq(+)
and ss_supervise_level = ql_code(+)
and ss_supervise_category = #p_supervise_category#
and ss_supervise_type = #p_comm_srvc_type#
and ss_staff_id = #p_staff_id#
  </select>

Dev info:
Code = APR, CV-Online
Framework = SPRING 2.5.6, IBATIS 2

Thursday, 20 September 2012

Displaytag: Nota format Date


<display:table name="${trainingYear.trainingList}" class="dataTable" uid="row" export="false" excludedParams="*" varTotals="totals">
<display:column style="text-align:center;width:100px;"  titleKey="page.label.date.from"  escapeXml="false">
<fmt:formatDate type="date" value="${row.stStartDate}" pattern="dd-MMM-yyyy" />
</display:column>

</display:table>

Ok, sekarang aku xnak hard-code dd-MMM-yyyy, tapi aku nak camni:
  1. masukkan dlm message bundle, code = patent.display.date= dd-MMM-yyyy
  2. pada page untuk display:
    • gunakan <spring:message /> untuk set 1 variable, katakan namanya datePattern
    • gunakan datePattern tu pada property pattern dalam <fmt:formateDate />
Untuk info lanjut pasal displaytag ni leh gi ke page http://www.displaytag.org/1.2/

Tuesday, 18 September 2012

STS: something wrong with MAVEN's project nature

Something wrong with a new project imported from SVN since no Maven's project nature embedded.

Right click project folder >> Maven >> Enable Dependency Management