最常用的 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能够查询出来,但返回什么呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)