MyBatisはダイナミックテーブルまたは列コードを使って解析します。


動態表や列を使った業務処理は避けられない場合があります。いくつかのダイナミックシート/列の使い方を学びます。
【1】プリコンパイルを使う
すなわち、標準値です。

<select id="hisNumber" parameterType="hashmap" resultType="hashmap" >
   select number from ${oldTableName} 
<!--    "$"!!!-->
where name=#{name} and date = #{date}
<!--    "#"-->
<select>
プリコンパイルは、まずselect number fromを生成しますか?where name=and date=このように使うのですか?」プレースホルダの文としてパラメータ解析を行います。
【2】非プリコンパイルを使用する

<select id="hisNumber" parameterType="hashmap" resultType="hashmap" statementType="STATEMENT" >
   select number from ${oldTableName} 
<!--    "$"!!!-->
where name='${name,jdbcType=VARCHAR}' and date = '${date,jdbcType=TIMESTAMP}'
<select>
後ろのnameとdateの取得値に注意して、'$name''フォーマットを使ってパラメータをデータタイプに変換し、mysqlクエリ時のパフォーマンス向上に役立ちます。
【3】依然として非プリコンパイルを使用しています。

<select id="hisNumber" parameterType="hashmap" resultType="hashmap" statementType="STATEMENT" >
   select number from ${oldTableName} 
<!--    "$"!!!-->
where name=${name} and date = ${date}
<select>
後のnameとdateの取得値に注意して、{name}フォーマットを使って、直接数値を取って、データタイプの変換を行いません。パラメータが数値タイプであり、フォーマットが「00124」のような場合、データ読み間違いが発生します(0124、124などを全部読みます)。
第一の方法を提案します。
締め括りをつける
以上が本論文のMyBatisに関する動的表または列コード解析のすべての内容です。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。