iBATISのsqlmapについてのいくつかの説明


1.データベース設計DATEタイプについて、「yyyy-MM-dd HH:mm:ss」を返すように要求する場合
<result column="TBSJ" property="tbsj" jdbcType="DATETIME" />

の「jdbcType」は「DATETIME」でなければなりません.そうしないと、「yyyy-MM-dd」形式に戻ります.
2.入力パラメータについて
<result column="TBR" property="tbr" jdbcType="VARCHAR" nullValue="" />

「nullValue」を指定できます.データベースに値がない場合に使用できるデフォルト値ですが、デフォルト値を指定したくない場合があります.では、どうすればいいのでしょうか.jdbcType=「DATE」についてはエラーは報告されませんが、nullを返します.参照するクライアントが処理していない場合、nullpointのエラーを報告する可能性があります.
3.入力した「parameterClass」に対しても、空の値の場合は、同様にいくつかのエラーがポップアップされます.解決策は、動的なパラメータ設定を採用することです.
 <dynamic>
        <isNotEmpty property="tznr" close=",">
                 TZNR = #tznr:VARCHAR#
        </isNotEmpty>
 </dynamic>

この問題を避けることができます
4.sqlMapの「resultMap」タイプがコード内の変換タイプと一致しない場合、彼はエラーを報告しますが、nullを返すエラーが1つしかなく、このような問題を検索するのが難しい場合があります.だから、不思議に思ったら、必ずタイプが一致しているかどうかを振り返ってみてください.
5.データベースにデータを挿入するときは、このデータを挿入するプライマリ・キーを返す必要があります.しかし、データベース・ベンダー間でプライマリ・キーを生成する方法は異なります.
OracleやPostgreSQLなど、事前に生成されたプライマリ・キーもあります.MySQLやSQLサーバなど、後で生成されるプライマリ・キーもあります.しかし、いずれにしてもiBATISのノードを使用して、文によって生成されたプライマリ・キーを取得できます.
例は次のとおりです.
  
   <!-- Oracle SEQUENCE Example using .NET 1.1 System.Data.OracleClient -->  
    <insert id="insertProduct-ORACLE" parameterClass="product">  
        <selectKey resultClass="int" type="pre" keyProperty="id" >  
            SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL  
        </selectKey>  
        insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values(#id#,#description#)  
    </insert>  
      
    <!-- Microsoft SQL Server IDENTITY Column Example -->  
    <insert id="insertProduct-MS-SQL" parameterClass="product">  
        insert into PRODUCT (PRD_DESCRIPTION)  
        values (#description#)  
        <selectKey resultClass="int" type="post" keyProperty="id" >  
            select @@IDENTITY as value  
        </selectKey>  
    </insert>  
     
    <!-- MySQL Example -->  
    <insert id="insertProduct-MYSQL" parameterClass="product">  
        insert into PRODUCT (PRD_DESCRIPTION)  
        values (#description#)  
        <selectKey resultClass="int" type="post" keyProperty="id" >  
            select LAST_INSERT_ID() as value  
        </selectKey>  
    </insert>