Mybatisを使用した問題の概要


Controllerが要求をマップできない
今日はコードを書く過程でコントロールを書きました.結果404.リクエストに影が届かない.理由は次のとおりです.
@Controller
@RequestMapping("/mod/info") //      value
public class UcModInfoController {
    @Autowired
    UcModInfoService ucModInfoService;
    @ResponseBody
    @RequestMapping(value = "/getModInfoAll.do")
    //  value       。
    //             

そこで私はRequestMappingで最もよく使われる2つの属性を科学的に普及しました.
value:要求された実際のアドレスを指定し、指定されたアドレスはURI Templateモードであってもよい
method:要求のmethodタイプを指定し、GET、POST、PUT、DELETEなど;サンプルコード:
@RequestMapping(value="/{day}", method = RequestMethod.GET)
    public Map<String, Appointment> getForDay(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date day, Model model) {
        return appointmentBook.getAppointmentsForDay(day);
    }

    @RequestMapping(value="/new", method = RequestMethod.POST)
    public AppointmentForm getNewForm() {
        return new AppointmentForm();
    }


MybatisではMapper影がパラメータに届かない
コードは次のとおりです.
  • mapper.JAvaでは、パラメータは必ず@param
  • と書きます
  • mapper.xmlでは、注入パラメータにjdbcTypeのパラメータ
  • と書く
    jdbcType共通パラメータ
    BIT、FLOAT、CHAR 、TIMESTAMP 、 OTHER 、UNDEFINEDTINYINT 、REAL 、VARCHAR 、BINARY 、BLOB NVARCHAR、SMALLINT 、DOUBLE 、LONGVARCHAR 、VARBINARY 、CLOB、NCHAR、INTEGER、 NUMERIC、DATE 、LONGVARBINARY 、BOOLEAN 、NCLOB、BIGINT 、DECIMAL 、TIME 、NULL、CURSOR
    
  • パラメータが空であるかどうかを判断した場合.書き方は:は省略できません!=""

  • 仕様コードは次のとおりです.
    mapper.java
            List<Map<String, Object>> selectAll(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("DJBMBM") String DJBMBM, @Param("endPageString") String endPageString, @Param("startPageString") String startPageString);
    
    

    mapper.xml
        <select id="selectAll" resultType="java.util.Map">
            select JGMC,TYSHXYDM,JGDM,moddate from ( select t.*, rownum RN from UC_MOD_INFO t )
            where
            RN &gt; #{startPageString,jdbcType=VARCHAR} and RN &lt;= #{endPageString,jdbcType=VARCHAR}
            <if test="DJBMBM!=null and DJBMBM!=''">
                and
                SUBSTR(TYSHXYDM, 0, 1) = #{DJBMBM,jdbcType=VARCHAR}
            </if>
            <if test="startDate!=null and startDate!=''">
                and moddate BETWEEN #{startDate,jdbcType=VARCHAR} and #{endDate,jdbcType=VARCHAR}
            </if>
        </select>