【MyBatis】常见用法

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 selectuser(@Param(value = "page")int pn ,@Param(value = "st")student student);

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

(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'


     
        AND t.post_time < to_date(#{prevTime, jdbcType=VARCHAR}, 'yyyy-MM-dd HH24:mi:ss')
     
     
        AND t.post_time < SYSDATE
     

你可能感兴趣的:(【MyBatis】常见用法)