mybatis怎么获取生成的sql语句

mybatis怎么获取生成的sql语句,第1张

最常用的 log4jproperties 来实现。

log4jproperties 内容如下:

log4jrootCategory=info, stdout , R

log4jappenderstdout=orgapachelog4jConsoleAppender

log4jappenderstdoutlayout=orgapachelog4jPatternLayout

log4jappenderstdoutlayoutConversionPattern=[QC] %p [%t] %C%M(%L) | %m%n

log4jappenderR=orgapachelog4jDailyRollingFileAppender

log4jappenderRFile=D:/my_loglog

log4jappenderRlayout=orgapachelog4jPatternLayout

log4jappenderRlayoutConversionPattern=%d-[TS] %p %t %c - %m%n

log4jloggercomibatis=debug

log4jloggercomibatiscommonjdbcSimpleDataSource=debug

log4jloggercomibatiscommonjdbcScriptRunner=debug

log4jloggercomibatissqlmapengineimplSqlMapClientDelegate=debug

log4jloggerjavasqlConnection=debug

log4jloggerjavasqlStatement=debug

log4jloggerjavasqlPreparedStatement=debug,stdout

有人在网上说不能用 slf4jjar ,这个说法应该是错误的, slf4j 只是提供了很多接口,可以供很多日志系统用,并不是具体的解决方案,我的jar 包用到

slf4j-api-158jar

slf4j-log4j12-158jar

log4j-1215jar

貌似版本比较老,但可以使用,可以参考一下。

通过这种方式mybatis 就可以在控制台打印出sql语句,并且也可以写到日志文件中去。但是还没有format sql, 我也在研究,不过目前没进展,应该mybatis 不支持吧。

建立一个log4jproperties文件,放到工程源文件夹下,如果是eclipse那么放到src下,eclipse会自动将这个文件加载到class目录下。

将log4jjar和commons-loggingjar 放到项目的类路径中,如果是web项目就是lib下。

配置的log4jproperties文件的例子。证明可用!

。回答这个问题的前提是:假设有A,B中的相同结构的两个表;另外,你说“在表B和表A的优先级输出数据在同一块数据的数据”,假设确定的数据的条件相同。 COL_1 = bcol_1

满足上述条件,请尝试以下语句:

选择从B其中bcol_1中(从B选择COL_1)

联盟的所有

选择从A那里acol_1没有(从B选择COL_1)

希望对您有所帮助:)

在ibatis 中,SQL语句经常会出现一些特殊符号,比如:> < 等符号,在xml中会被转义,解析时会出错

这样可以使用 <![CDATA[ SQL内容 ]]> 进行常量标识,这样里面的SQL内容会以文本的形式存在 ,不会被解析

如:

<![CDATA[

select CASE

WHEN bmo_number + bmt_number = 0 THEN

'---'

ELSE

to_char(round((amo_number + amt_number - bmo_number -

bmt_number) / (bmo_number + bmt_number),

4) 100) || '%'

END flow_rate_of_change

from dual;

]]>

另外,还有ibatis 中:> 可以表示大于号,< 表示小于号

如: where score > 90 表示:where score > 90

希望可以帮到你

ibatis其实就是执行你配置的sql语句,就是拼接,然后传递参数,只要limit一下就可以了比如:

<!-- mysql -->

<select id="select_1">

select from [tableName] limit 10

</select>

<!-- sqlserver -->

<select id="select_2">

select top 10 from [tableName]

</select>

oracle没用过,这里不再举例了,但是基本上和ibatis配置没关系,只是和你的sql语句有关系。

没有的吧,我记得mybatis中是可以执行2条sql的,应该ibatis也可以才是。第一条sql中的返回值是可以作为第二条sql的条件执行的。

<updateid="insertProduct-ORACLE" parameterClass="comdomainProduct">

<selectKey resultClass="int" keyProperty="seqno" >

select seqno from table where for update

</selectKey>

update table set seqno = seqno+1

</update>

用#{}取值。

比如:select cid,cname from channel_table where cid=#{id} and cname=#{name};

id和name就是map的属性!

ibatis中,参数部分是用##表示的,这种格式的是字符串,会自动在内容两端加上单引号,$$表示的是原样输出,你这里有两个参数,且要求的是数值,所以要用$$,那么在ibatis的xml配置文件中,写法就是:

select

from table

limit $count1$, $count2$

而在java中,通过调用ibatis框架中的方法,将count1和count2变量的值传递进去就可以了。

以上就是关于mybatis怎么获取生成的sql语句全部的内容,包括:mybatis怎么获取生成的sql语句、怎么为ibatis配置日志,查看执行的sql语句、用ibatis查询两张表中的数据,sql能够查询出来,但返回什么呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9647654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存