先看demo的结构,可以先讲数据库建立起来,下面有代码里面有数据库sql语句数据库建模好之后,只要运行junit下面的test目录下面的相应方法,注意去掉ignore
数据库的模型图
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* MyBatis Connection Factory, which reads the configuration data from a XML file.
* static只读取一次xml配置文件
* @author Loiane Groner
* http://loianegroner.com (English)
* http://loiane.com (Portuguese)
*/
public class MyBatisConnectionFactory {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
if (sqlSessionFactory == null) {
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}
}
catch (FileNotFoundException fileNotFoundException) {
fileNotFoundException.printStackTrace();
}
catch (IOException iOException) {
iOException.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
}
<!-- 命名别名 -->
<typeAliases>
<typeAlias alias="Article" type="com.loiane.model.Article"/>
</typeAliases>
<!-- 数据库方面的连接配置 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/blog_ibatis"/>
<property name="username" value="root"/>
<property name="password" value="wangxuehui"/>
</dataSource>
</environment>
</environments>
<!-- 相应的对应配置文件 -->
<mappers>
<mapper resource="com/loiane/data/Article.xml"/>
</mappers>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Article">
<!-- 根据title是否存在,可以查看控制台的sql语句,一看就明白了 -->
<select id="selectArticleByTitle" parameterType="Article"
resultType="Article">
SELECT id, title, author
FROM article
WHERE id_status = 1
<if test="title != null">
AND title LIKE #{title}
</if>
</select>
<!-- 根据title,author是否存在,可以查看控制台的sql语句,一看就明白了 -->
<select id="selectArticleByTitleAndAuthor" parameterType="Article"
resultType="Article">
SELECT id, title, author
FROM article
WHERE id_status = 1
<if test="title != null">
AND title LIKE #{title}
</if>
<if test="author != null">
AND author LIKE #{author}
</if>
</select>
<!-- 我感觉这个相当于java if elseif else语句,可以查看控制台的sql语句,一看就明白了 -->
<select id="selectArticleByTitleOrAuthorOrCategory" parameterType="Article"
resultType="Article">
SELECT id, title, author
FROM article
WHERE id_status = 1
<choose>
<when test="title != null">
AND title LIKE #{title}
</when>
<when test="author != null">
AND author LIKE #{author}
</when>
<otherwise>
AND id_category = 3
</otherwise>
</choose>
</select>
<!-- 我感觉这个要自己尝试输入title,author的不同的值,再查看控制台的sql语句,一看就明白了 -->
<select id="selectArticleByTitleAndAuthorDynamic" parameterType="Article"
resultType="Article">
SELECT id, title, author
FROM article
<where>
<if test="title != null">
title LIKE #{title}
</if>
<if test="author != null">
OR author LIKE #{author}
</if>
</where>
</select>
<!-- 我感觉这个selectArticleByTitleAndAuthorDynamic配置功能差不多,可以查看控制台的sql语句,一看就明白了 -->
<select id="selectArticleByTitleAndAuthorDynamic2" parameterType="Article"
resultType="Article">
SELECT id, title, author
FROM article
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="title != null">
title LIKE #{title}
</if>
<if test="author != null">
AND author LIKE #{author}
</if>
</trim>
</select>
<!-- sql语句在in方面的应用,可以查看控制台的sql语句,一看就明白了 -->
<select id="selectArticleByListCategories" resultType="Article">
SELECT id, title, author
FROM article
WHERE id_category IN
<foreach item="category" index="index" collection="list"
open="(" separator="," close=")">
#{category}
</foreach>
</select>
</mapper>
- 大小: 14.4 KB
- 大小: 39.9 KB
分享到:
相关推荐
idea MyBatis 配置 Log4j 打印 SQL 语句示例 MyBatis 是一个流行的持久层框架,用于将 Java 应用程序中的 SQL 语句与数据库进行交互。Log4j 是一个流行的日志记录工具,用于记录 Java 应用程序中的日志信息。在实际...
首先,Mybatis的日志实现依赖于日志库,如Log4j、Logback或Java内置的java.util.logging。为了开启SQL日志输出,我们需要在项目的配置中设置相应的日志级别,并确保选择的日志库已添加到项目依赖中。例如,如果你...
配置Log4j,你需要创建一个`log4j.properties`或`log4j.xml`文件,定义日志级别(如DEBUG、INFO、WARN等)、输出目的地和布局格式。这样,你就可以在开发和调试过程中方便地追踪错误和调试信息。 在实际项目中,这...
4. **运行并查看日志**:完成以上步骤后,当MyBatis执行SQL时,相应的SQL语句以及执行信息将会按照Log4j的配置输出到控制台或其他指定位置。 除了基础配置,我们还可以根据需求调整日志级别,例如在生产环境中可能...
在项目中,我们可以通过配置log4j.properties或log4j.xml文件来设定日志级别、输出目的地(如控制台、文件、邮件等)、格式等。通过@Log4j注解或LoggerFactory获取Logger实例,即可在代码中方便地记录日志,帮助我们...
总结以上,通过MyBatis3与log4j的集成,开发者可以方便地在控制台输出SQL语句,这对于调试和问题定位是极其有帮助的。通过合理配置log4j和MyBatis3,我们既可以充分利用日志信息来提高开发效率,又能确保安全地处理...
7. **运行时日志输出**:在运行项目时,Mybatis会根据Log4j的配置打印相应的日志信息,包括SQL语句、参数绑定、执行时间等,这对于调试和性能优化非常有帮助。 总的来说,Mybatis和Log4j的结合使得我们能够方便地...
通过以上步骤,你可以成功地将Log4j与MyBatis整合,从而在运行时获取到关于SQL执行的详细日志,这对于优化查询性能、调试SQL错误以及监控系统运行状态非常有帮助。务必根据实际情况调整配置文件中的参数,以满足项目...
Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里你可以设置不同级别的日志输出,例如DEBUG、INFO、WARN、ERROR等。 对于Ibatis,这是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了...
这意味着我们将看到如何在Mybatis配置中集成Log4j,以便在执行SQL操作时,能够通过Log4j将这些操作的细节(如SQL语句)输出到控制台。 **标签:“log4j”** “log4j”是Apache的一个开源日志组件,广泛用于Java...
例如,你可以配置Log4j的日志输出级别为DEBUG,那么在运行时,MyBatis会打印出每个SQL语句及其参数,便于查看和调试。 在实际项目中,MyBatis的配置文件通常会包含以下部分: 1. 数据源配置:定义数据库连接的信息...
把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -> MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...
Mybatis支持多种日志实现,如Log4j、Logback和Java内置的日志API等。通常,我们会在`mybatis-config.xml`配置文件中设置日志工厂,例如: ```xml ... <!-- 设置日志级别 --> <setting name="logImpl" value="...
总结来说,要在MyBatis+Spring框架中配置日志以显示SQL语句,主要步骤包括:选择并添加日志实现库(如SLF4J和Logback),配置日志级别和输出,设置MyBatis的`logImpl`属性为SLF4J,并确保在Spring配置中正确引用...
现在,当运行你的应用时,所有MyBatis执行的SQL语句都将被输出到控制台或指定的日志文件中,这将帮助你调试和优化数据库查询性能。 总结一下,要使MyBatis打印SQL,你需要: 1. 引入Log4j库(如`log4j-1.2.16.jar`...
Log4j 可以用来显示 Mybatis 的 SQL 语句。下面是一个基本的 Mybatis 显示 SQL 语句配置: ``` log4j.logger.org.mybatis=DEBUG log4j.logger.cn.tibet.cas.dao=DEBUG log4j.logger.org.mybatis.common.jdbc....
通过配置Log4j,我们可以让MyBatis打印出执行的每个SQL语句及其参数,这对于理解和优化数据库查询性能非常有帮助。例如,如果你发现某个查询运行缓慢,你可以查看Log4j生成的日志,找出对应的SQL语句,然后进行优化...
Log4j是Java日志记录的利器,它允许我们定制日志级别(DEBUG, INFO, WARN, ERROR等)和输出目的地,如控制台、文件、甚至是网络。在Spring Boot中,我们可以通过添加`spring-boot-starter-log4j2`依赖来启用Log4j2。...
在Java应用程序中,log4j允许开发者定义多个日志级别(如DEBUG、INFO、WARN、ERROR等),并决定在何时何地将这些日志信息写入不同的输出目的地,如控制台、文件、电子邮件或者syslog服务器。这个压缩包中的log4j jar...