`

mybatis查询入门(log4j控制台sql语句日记输出的)

阅读更多
先看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
分享到:
评论
2 楼 wangxuehui 2012-12-28  
什么意思??
1 楼 青春的、脚步 2012-12-28  
<logger name="java.sql">
<level value="DEBUG" />
</logger>

相关推荐

    idea mybatis配置log4j打印sql语句的示例

    idea MyBatis 配置 Log4j 打印 SQL 语句示例 MyBatis 是一个流行的持久层框架,用于将 Java 应用程序中的 SQL 语句与数据库进行交互。Log4j 是一个流行的日志记录工具,用于记录 Java 应用程序中的日志信息。在实际...

    Mybatis Log(自动填充sql参数打印到控制台)

    首先,Mybatis的日志实现依赖于日志库,如Log4j、Logback或Java内置的java.util.logging。为了开启SQL日志输出,我们需要在项目的配置中设置相应的日志级别,并确保选择的日志库已添加到项目依赖中。例如,如果你...

    maven+springmvc+mybatis+log4j框架搭建

    配置Log4j,你需要创建一个`log4j.properties`或`log4j.xml`文件,定义日志级别(如DEBUG、INFO、WARN等)、输出目的地和布局格式。这样,你就可以在开发和调试过程中方便地追踪错误和调试信息。 在实际项目中,这...

    mybatis打印SQL的log4j

    4. **运行并查看日志**:完成以上步骤后,当MyBatis执行SQL时,相应的SQL语句以及执行信息将会按照Log4j的配置输出到控制台或其他指定位置。 除了基础配置,我们还可以根据需求调整日志级别,例如在生产环境中可能...

    springmvc4.0+mybatis3.0+log4j整合.rar

    在项目中,我们可以通过配置log4j.properties或log4j.xml文件来设定日志级别、输出目的地(如控制台、文件、邮件等)、格式等。通过@Log4j注解或LoggerFactory获取Logger实例,即可在代码中方便地记录日志,帮助我们...

    MyBatis3用log4j在控制台输出SQL的方法示例

    总结以上,通过MyBatis3与log4j的集成,开发者可以方便地在控制台输出SQL语句,这对于调试和问题定位是极其有帮助的。通过合理配置log4j和MyBatis3,我们既可以充分利用日志信息来提高开发效率,又能确保安全地处理...

    Mybatis+Log4j

    7. **运行时日志输出**:在运行项目时,Mybatis会根据Log4j的配置打印相应的日志信息,包括SQL语句、参数绑定、执行时间等,这对于调试和性能优化非常有帮助。 总的来说,Mybatis和Log4j的结合使得我们能够方便地...

    mybatis整合log4j

    通过以上步骤,你可以成功地将Log4j与MyBatis整合,从而在运行时获取到关于SQL执行的详细日志,这对于优化查询性能、调试SQL错误以及监控系统运行状态非常有帮助。务必根据实际情况调整配置文件中的参数,以满足项目...

    打log4j日志-ibatis的sql输出

    Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里你可以设置不同级别的日志输出,例如DEBUG、INFO、WARN、ERROR等。 对于Ibatis,这是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了...

    log4j-在控制台打印sql的源码

    这意味着我们将看到如何在Mybatis配置中集成Log4j,以便在执行SQL操作时,能够通过Log4j将这些操作的细节(如SQL语句)输出到控制台。 **标签:“log4j”** “log4j”是Apache的一个开源日志组件,广泛用于Java...

    mybatis配置文件以及日志文件Log4j

    例如,你可以配置Log4j的日志输出级别为DEBUG,那么在运行时,MyBatis会打印出每个SQL语句及其参数,便于查看和调试。 在实际项目中,MyBatis的配置文件通常会包含以下部分: 1. 数据源配置:定义数据库连接的信息...

    ideal mybatis打印sql插件

    把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -&gt; MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...

    Mybatis Log SQL输出

    Mybatis支持多种日志实现,如Log4j、Logback和Java内置的日志API等。通常,我们会在`mybatis-config.xml`配置文件中设置日志工厂,例如: ```xml ... &lt;!-- 设置日志级别 --&gt; &lt;setting name="logImpl" value="...

    mybatis+spring 框架中配置日志中显示sql语句

    总结来说,要在MyBatis+Spring框架中配置日志以显示SQL语句,主要步骤包括:选择并添加日志实现库(如SLF4J和Logback),配置日志级别和输出,设置MyBatis的`logImpl`属性为SLF4J,并确保在Spring配置中正确引用...

    mybatis打印出sql

    现在,当运行你的应用时,所有MyBatis执行的SQL语句都将被输出到控制台或指定的日志文件中,这将帮助你调试和优化数据库查询性能。 总结一下,要使MyBatis打印SQL,你需要: 1. 引入Log4j库(如`log4j-1.2.16.jar`...

    SSM整合中的Log4j日志的配置详情

    Log4j 可以用来显示 Mybatis 的 SQL 语句。下面是一个基本的 Mybatis 显示 SQL 语句配置: ``` log4j.logger.org.mybatis=DEBUG log4j.logger.cn.tibet.cas.dao=DEBUG log4j.logger.org.mybatis.common.jdbc....

    mybatis和log4j,jar包

    通过配置Log4j,我们可以让MyBatis打印出执行的每个SQL语句及其参数,这对于理解和优化数据库查询性能非常有帮助。例如,如果你发现某个查询运行缓慢,你可以查看Log4j生成的日志,找出对应的SQL语句,然后进行优化...

    Spring boot+Mybatis+log4j项目实例

    Log4j是Java日志记录的利器,它允许我们定制日志级别(DEBUG, INFO, WARN, ERROR等)和输出目的地,如控制台、文件、甚至是网络。在Spring Boot中,我们可以通过添加`spring-boot-starter-log4j2`依赖来启用Log4j2。...

    myBaits所有jar包,包括log4j所需jar包,mysql所需jar包,导入后可以直接使用

    在Java应用程序中,log4j允许开发者定义多个日志级别(如DEBUG、INFO、WARN、ERROR等),并决定在何时何地将这些日志信息写入不同的输出目的地,如控制台、文件、电子邮件或者syslog服务器。这个压缩包中的log4j jar...

Global site tag (gtag.js) - Google Analytics