文章目录
mybatis详解
mybatis日志
log4j
日志配置
注意:必须放在src下 log4j.properties
log4j.rootLogger=debug,stdout,logfile
#console output
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.appender.stdout.PatternLayout.ConversionPattern=%d{
yyyy-MM-dd HH:mm:ss}<-->%F<-->%p<-->%m%n
#file output
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=D:/logs/log.log
log4j.appender.logfile.layout=org.apache.log4j.SimpleLayout
log4j.appender.logfile.PatternLayout.ConversionPattern=%d{
yyyy-MM-dd HH:mm:ss}<-->%F<-->%p<-->%m%n
#mybatis log
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
参数问题
mapper.xml
delete(int id)
book_id =#{id}
delete(Book book)
xml: book_id = #{id} -----> book.getId();
单参数(非对象) : 和参数名称一致
对象类型(Book) : 对象调用get方法
多个参数:采用注解的方式@Param
void updateAuthorOrPrice(int id, double sprice, double sauthor);
@Param
void updateAuthorOrPrice(@Param("sid")int sid,
@Param("sprice")double price,
@Param("sauthor")String author);
<update id="updateAuthorOrPrice">
UPDATE book_tab SET book_price= #{
sprice},book_author=#{
sauthor} WHERE book_id=#{
sid}
</update>
mybatis 查询
单表
表中字段和类的属性不对应问题
解决方案一: 别名法
别名 book_id (AS) id, book_title (AS) title
解决方案二: 表中字段和属性一致
表中的字段和属性对应, boo_id —>id
解决方案三: 定义一个映射关系(表中字段和类中的属性), resultMap
<resultMap type="com.dyit.entity.Book" id="BookMap">
<id property&