1. 首页
  2. 课程学习
  3. Java
  4. Mybatis知识文档

Mybatis知识文档

上传者: 2024-12-28 15:16:06上传 DOCX文件 1.56MB 热度 20次

MyBatis 是一个轻量级的 Java 持久层框架,提供 SQL 映射功能,使开发者能够直接编写 SQL 语句,并避免手动操作结果集。配置 Log4j 以显示 SQL 日志,可以在程序运行过程中通过控制台输出 SQL 执行日志,便于调试和性能优化。

在 MyBatis 中,可以在项目的 src 目录下创建 log4j.properties 文件,并添加以下配置:

# 设置日志级别,DEBUG < INFO < WARN < ERROR < FATAL
log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
# 屏蔽其他框架的日志输出,只显示 MyBatis 的 SQL 语句
log4j.logger.org.apache=ERROR
log4j.logger.org.hibernate=ERROR
log4j.logger.org.springframework=ERROR
log4j.logger.org.mybatis=DEBUG
log4j.logger.org.apache.http=ERROR
log4j.logger.com.netflix=ERROR

pom.xml 中,引入 Log4j 依赖库:

<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>1.2.17version>
dependency>

LIKE 关键字用于 SQL 查询中的模糊匹配,例如:

SELECT * FROM t_user WHERE username LIKE '%ao%' OR password LIKE '%123%'

在 MyBatis 中,使用预编译的 PreparedStatement 来防止 SQL 注入。直接使用带有 % 的字符串参数会导致问题,因为 MyBatis 会自动处理单引号。可以使用 SQL 的 CONCAT 函数来拼接 % 与参数值:

<select id="selectUsersByLikeMap" resultType="User">
select * from t_user where username like concat('%', #{username}, '%') or password like concat('%', #{password}, '%')
select>

在这个例子中,#{username}#{password} 是 MyBatis 的参数占位符,它们会被实际的参数值替换,CONCAT 函数确保 % 符号正确地与参数结合,从而实现模糊查询。

下载地址
用户评论