美文网首页
【MyBatis】常见用法

【MyBatis】常见用法

作者: 嘻洋洋 | 来源:发表于2019-07-19 17:28 被阅读0次

    1. 设置SQL日志输出

    在控制台输出,log4j.properties 配置

    log4j.rootLogger=debug,info,stdout, R, L
     
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
    log4j.appender.stdout.Threshold=DEBUG   
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout    
    log4j.appender.stdout.layout.ConversionPattern= %d{yyyy-MM-dd HH\:mm\:ss} [%5p] -%F(%L) -%m%n
    
    log4j.logger.com.ibatis=DEBUG
    log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
    log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
    log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
    log4j.logger.Java.sql.Connection=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG
    

    2. @Paramd的用法

    (1)如果是非基本数据类型,建议不使用@Paramd

    public List<student> selectuser(@Param(value = "page")int pn ,@Param(value = "st")student student);
    <select id="selectuser"  resultType="com.user.entity.student">
        SELECT * FROM student
        where sname like concat(concat("%",#{st.sname}),"%")
        LIMIT #{page} ,5
    </select>
    

    如果对对象是用了注解,要获取对象的属性值,应当使用 【注解名.属性名】 的方式。而当不使用注解时,可以直接通过【属性名】获取到对象的值。

    (2)如果是基本数据类型,建议都使用@Paramd
    @Param 含义:如果你的映射器的方法需要多个参数, 这个注解可以被应用于映射器的方法 参数来给每个参数一个名字。
    如果不是使用@Param,会存在以下问题:

    • 当你不使用@Param注解来声明参数时,必须使用使用 #{}方式。如果使用 ${} 的方式,会报错。
      Mybatis异常There is no getter for property named 'XXX' in 'class java.lang.String'
    • 当入参为 string类型时 (包括java.lang.String)
      使用#{xxx}引入参数.会抛异常There is no getter for property named 'XXX' in 'class java.lang.String'
    <select id="getBookingCount" resultType="int" parameterType="string">
    select count(*) from TB_EMPC_BOOKING_ORDER T
    where (t.state = '1' or t.state = '2')
    and t.appointmenttime = #{state}
    </select>
    
    <choose>
         <when test="prevTime != null and prevTime !=''">
            AND t.post_time &lt; to_date(#{prevTime, jdbcType=VARCHAR}, 'yyyy-MM-dd HH24:mi:ss')
         </when>
         <otherwise>
            AND t.post_time &lt; SYSDATE
         </otherwise>
    </choose>
    

    相关文章

      网友评论

          本文标题:【MyBatis】常见用法

          本文链接:https://www.haomeiwen.com/subject/lnycxctx.html