SSM项目打印执行的sql语句

  在ssm项目中,只需要在mybatis-config.xml配置中添加一个setting即可。

<!-- 打印查询语句 -->
<setting name="logImpl" value="STDOUT_LOGGING" />

在这里插入图片描述

下面贴一下我的整个mybatis-config.xml配置文件,供参考。

<?xml version="1.0" encoding="UTF-8" ?>   
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

	<!-- 配置mybatis的缓存,延迟加载等等一系列属性 -->
	<settings>

		<!-- 全局映射器启用缓存 -->
		<setting name="cacheEnabled" value="true"/>

		<!-- 查询时,关闭关联对象即时加载以提高性能 -->
		<setting name="lazyLoadingEnabled" value="true"/>

		<!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
		<setting name="multipleResultSetsEnabled" value="true"/>

		<!-- 允许使用列标签代替列名 -->
		<setting name="useColumnLabel" value="true"/>

		<!-- 不允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
		<setting name="useGeneratedKeys" value="false"/>

		<!-- 给予被嵌套的resultMap以字段-属性的映射支持 FULL,PARTIAL -->
		<setting name="autoMappingBehavior" value="PARTIAL"/>

		<!-- Allows using RowBounds on nested statements -->
		<setting name="safeRowBoundsEnabled" value="false"/>

		<!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn. -->
		<setting name="mapUnderscoreToCamelCase" value="true"/>

		<!-- MyBatis uses local cache to prevent circular references and speed up repeated nested queries. By default (SESSION) all queries executed during a session are cached. If localCacheScope=STATEMENT
            local session will be used just for statement execution, no data will be shared between two different calls to the same SqlSession. -->
		<setting name="localCacheScope" value="SESSION"/>

		<!-- Specifies the JDBC type for null values when no specific JDBC type was provided for the parameter. Some drivers require specifying the column JDBC type but others work with generic values
            like NULL, VARCHAR or OTHER. -->
		<setting name="jdbcTypeForNull" value="OTHER"/>

		<!-- Specifies which Object's methods trigger a lazy load -->
		<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>

		<!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 -->
		<setting name="aggressiveLazyLoading" value="false"/>
		<setting name="logImpl" value="STDOUT_LOGGING"/>
		
		<setting name="logImpl" value="LOG4J"/>
		
		<!-- 打印查询语句 -->
        <setting name="logImpl" value="STDOUT_LOGGING" />
        
        
	</settings>


	<typeAliases>
		<!-- 注:model表对象配置,请按照  model 包   中的顺序进行录入,并做好注释. -->

	</typeAliases>

	<plugins>
		<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
			<!--主键自增回写方法,默认值MYSQL,详细说明请看文档 -->
			<property name="IDENTITY" value="MYSQL" />
			<!--通用Mapper接口,多个通用接口用逗号隔开 -->
			<property name="mappers" value="com.github.abel533.mapper.Mapper" />
		</plugin>
	</plugins>
</configuration>


2019.8.29更新
如果是使用Idea操作Mybatis,
这里推荐一款插件:MyBatis Log Plugin
可以点进我的另一篇博客具体查看一下。



使用了这款插件之后。就可以打开一个单独的窗口显示完整的sql(不是带占位符的那种)。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架中,可以使用动态SQL来处理SQL语句。其中,if标签是一种常用的动态SQL标签,类似于Java中的if语句,用于选择性地拼接指定的SQL片段。if标签的用法如下: ```xml <select id="getUser" resultType="user"> select * from user where 1=1 <if test="id!=null"> and id=#{id} </if> <if test="name!=null"> and name=#{name} </if> <if test="sex!=null"> and sex=#{sex} </if> <if test="age!=null"> and age=#{age} </if> <if test="address!=null"> and address=#{address} </if> </select> ``` 上述示例中,if标签根据条件的真假来决定是否拼接相应的SQL片段。如果条件为true,则将对应的SQL片段拼接到该标签所在位置。 在SSM框架中,可以通过调用相应的Mapper接口方法来执行SQL语句。例如,可以添加一个测试方法来调用getUser方法: ```java public void getuser(){ SqlSession session = MyBatisUtils.getSqlSession(); Integer id=null; String name=null; List<User> list = session.getMapper(UserMapper.class).getUser(id,name); logger.info("当前查出的记录数"+list.size()); logger.info("查询结果"+list); session.commit(); MyBatisUtils.close(session); } ``` 上述示例中,通过调用getUser方法来执行SQL语句,并将查询结果打印出来。 除了if标签外,还有其他动态SQL标签可以用于处理更新功能。这些标签可以根据不同的条件来动态生成更新语句。具体的用法可以根据实际需求进行调整和使用。 #### 引用[.reference_title] - *1* *2* *3* [Java开发之SSM框架-动态SQL语句](https://blog.csdn.net/yananye/article/details/117521211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值