Hibernate打印SQL及附加参数】的更多相关文章

今天在项目运行过程中,一直报一个org.hibernate.exception.GenericJDBCException: could not insert 异常,Root Cause是IBM  DB2 ErrorCode=-180,sqlstate=22007,经过Google,发现这个错误的原因是因为Timestamp的格式不规范导致,但是具体是哪一项,却不太清楚,如果能够打印出导致问题的SQL语句,那么对于这类问题的定位就会非常容易了. 在Hibernate的配置文件hibernate.c…
#log4j.properties log4j.rootLogger=info, CA# ConsoleAppenderlog4j.appender.CA=org.apache.log4j.ConsoleAppenderlog4j.appender.CA.layout=org.apache.log4j.PatternLayoutlog4j.appender.CA.layout.ConversionPattern=%d{hh\:mm\:ss,SSS} [%t] %-5p %c %x - %m%n…
1.配置spring-hiberbate.xml:<prop key="hibernate.show_sql">true</prop>--强制打印sql 不受log4j影响<prop key="hibernate.format_sql">true</prop>--格式化sql<prop key="hibernate.use_sql_comments">true</prop>-…
环境说明:IntelliJ IDEA 2017.3.4 版本:SpringBoot 2.0.0.RELEASE:hibernate用的是JPA自带. 打印SQL 到控制台: 首先,我使用的是application.properties配置文件,使用yml也可以达到同样的效果. 在网上查这个问题查了好久,基本上都是xml配置,在此不多说: 正确的properties配置项应该如下图所示: 在jpa下一级不直接是hibernate,而是properties. spring.jpa.propertie…
Spring Data Jpa打印Sql详情(带sql参数) 这里使用的是 log4jdbc,yml配置文件里的数据源配置也要做相应的修改 pom文件引入 <dependency> <groupId>com.googlecode.log4jdbc</groupId> <artifactId>log4jdbc</artifactId> <version>1.2</version> </dependency> 修改…
来源于:https://my.oschina.net/u/1754093/blog/707083 1.按参数名称绑定 在HQL语句中定义命名参数要用":"开头,形式如下: Query query=session.createQuery("from User user where user.name=:customername and user:customerage=:age ");  query.setString("customername"…
因为JBoss使用的是log4j,JBoss的系统日志级别默认是INFO.而Hibernate或IBatis要打印SQL,级别为DEBUG,所以,程序设置了log4j级别为DEBUG会被JBoss系统设置的INFO给覆盖了. 要解决这个问题,需要手动的配置JBoss的Log4j日志级别: 1.打开文件:jboss-as-7.1.1.Final\standalone\configuration\standalone.xml 2.找到这个节点: <subsystem xmlns="urn:jb…
首先参考:http://blog.csdn.net/zljjava/article/details/7534349  [灵活控制 Hibernate 的日志或 SQL 输出,以便于诊断] 我的具体配置,我的是log4j.xml中的配置: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <…
最近在做一个较为复杂的查询,hibernate基本的查询不能满足,只好使用其提供的原生sql查询.参考网上的一些资料,做一些总结. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该接口是Query接口的子接口.   执行SQL查询步骤如下:          1.获取Hibernate Session对象          2.编写SQL语句          3.通过Session的createSQLQuery…
  Hibernate除了支持HQL查询外,还支持原生SQL查询. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该接口是Query接口的子接口. 执行SQL查询步骤如下: 1.获取Hibernate Session对象 2.编写SQL语句 3.通过Session的createSQLQuery方法创建查询对象 4.调用SQLQuery对象的addScalar()或addEntity()方法将选出的结果与标量值或实…
Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core.logback- classic和logback-access.logback-core是其它两个模块的基础模块.logback-classic是log4j的一个 改良版本.此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging.logback-access访问模块与Servlet容器集成提供通过Ht…
拦截器 package com.cares.asis.mybatis.interceptor; import java.text.DateFormat; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Properties; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapp…
开发时调试使用 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <property name="dataS…
Hibernate 可以实现分页查询 如下 Query q = session.createQuery("from Cat as c"); q.setFirstResult(10000); q.setMaxResults(20); List l = q.list(); 生成的sql 语句为 select top 10000 .... from Cat as c 分析:Hibernate 获取到 10000条记录过后再筛选出符合条件的20条记录. 再来看看Hibernate 的 dial…
网上说mybatis的早前版本配置打印sql还比较简单,在3.0.6之后配置方式修改了. 现在的spring-mybatis.xml配置如下: <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <…
额.其实laravel很不方便的地方就是sql写错之后不是很好调试. 上方法. //DB::connection()->enableQueryLog(); // 开启QueryLog//$repot = Report::where(['card_id'=>1])->first();//dump(DB::getQueryLog());die; 注意需要引用db类. use Illuminate\Support\Facades\DB;不然会报错. 不过他这个会把你的参数打印出来.包括参数类型…
Plugins 摘一段来自MyBatis官方文档的文字. MyBatis允许你在某一点拦截已映射语句执行的调用.默认情况下,MyBatis允许使用插件来拦截方法调用: Executor(update.query.flushStatements.commint.rollback.getTransaction.close.isClosed) ParameterHandler(getParameterObject.setParameters) ResultSetHandler(handleResult…
logbac.xml 文件的基础配置参考的园友的 http://www.cnblogs.com/yuanermen/archive/2012/02/13/2349609.html 然后hibernate 和 jpa 相关的sql能够打印.后来整合mybatis发现不能打印sql.后参考 http://clojure.iteye.com/blog/2031318 的评论发现了网友提示 照你说的配置后,仍不能显示sql.倒是看了这个后,成功了.http://stackoverflow.com/que…
一.hibernate分页 hibernate对MsSql的伪分页 分页是web项目中比不可少的一个功能,数据量大的时候不能全部展示必然要用到分页技术.相信大家对hibernate中的分页都不陌生: public Query setMaxResults(int maxResults); public Query setFirstResult(int firstResult); 只要调用了这两个方法并设置好参数,hibernate自动分页完全屏蔽了底层数据库分页技术,这也是众多开发者喜欢hiber…
配置mybatis日志级别,打印SQL 1.方案一:配置日志级别 logging.level.org.springboot.demo.mapper=debug 其中org.springboot.demo.mapper目录是项目的mybatis接口包所在路径 这里配置的是springboot的配置文件,如果不是用spring boot构建项目,需要在具体的日志组件下配置 2.方案二:修改mybatis配置文件 在mybatis的全局配置文件中添加如下配置 <setting name="log…
spring boot打印sql语句-mybatis 概述 当自己编写的程序出现了BUG等等,找了很久 调试运行了几遍到mapper层也进去调试进了源码,非常麻烦 我就想打印出sql语句,好进行解决BUG 方法: 可以在你的application.properties文件里添加代码 logging.level.com.shop=debug # logging.level.接着就是你需要打印sql语句的包=debug # 比如我的包是com.shop 打印出的sql语句是这样的 : ==> Pre…
一 Springboot项目 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.0</version> </dependency> /** * @author WGR * @create 2019/9/7 -- 12:59 */ /** * 对数据源进行封装,打印运行sql */ @Configur…
Django---Django的ORM的一对多操作(外键操作),ORM的多对多操作(关系管理对象),ORM的分组聚合,ORM的F字段查询和Q字段条件查询,Django的事务操作,额外(Django的终端打印SQL语句,脚本调试) 一丶Django的ORM外键操作 通过对象查找 ### 正向查找 # 获得图书对象 book_obj=models.Book.objects.get(pk=1) ret=book_obj.pub #pub是Book表的外键字段,存在Book表中. 通过pub可以拿到所关…
======================springboot mybatis 打印sql========================================== 方式 一: ###########################################################配置打印sql########################################################logging: level: com.threefivework…
有时候我们程序的接口比较耗时,需要优化,这时我们可能需要了解该接口执行了哪些sql语句以及耗时 1.引入jar包 <!--监控sql日志--> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>1.16</version> </…
前面写到了通过实现mybatis提供的org.apache.ibatis.plugin.Interceptor接口实现了打印SQL执行时间,并格式化SQL及其参数,如果我们使用的是ssm还得再配置文件中添加一小段配置,如果使用的是Springboot,也得把bean注入到spring的IOC容器中.哎,谁让我们是一个懒人呢?既然是一个懒人,就把懒人做到极致,嘻嘻嘻,今天我们就通过自定义Springboot starter的方式使用该插件,我们使用的时候只需要把对应的依赖添加到我们项目的pom.x…
啰嗦的话就不多说了,直入主题吧! 方案一: 碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定. 方案二: 使用sa登录SQL Server2008附加数据库,附加之后数据库为只读的,然后点数据库-->“属性”-->“选项”-->“状态”,发现“数据库为只读”这一项为True,改为false,如果能够修改的话,那么恭喜你,你的人品不错哦!我在修改的时候又报了这样一个错误: 这种情况下,找到你的数据文件和日志文件,右击“属性”-->“安全”,…
SQL Server附加数据库时报1813错误的解决方案   无法打开新数据库 'ASR'.CREATE DATABASE 中止. 文件激活失败.物理文件名称'E:\SqlServer\MSSQL\Data\ASR_log.LDF'可能不正确.  无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的.如果事务日志文件被手动删除或者由于硬件或环境问题而丢失,则可能出现此错误. (Microsoft SQL Server,错误: 1813)    www.…
SQL Server附加数据库时,遇到如下问题:“如果升级全文目录,请单加“添加目录”,然后找到它并选择它.基于全文升级选项,全文索引将为“已导入”.” 解决方法: 选择数据库文件所在目录,右键->属性->安全: 然后将当前账号权限设置为“完全控制”: 重新附加数据库成功.…
想打印Sql的话,可以用把你要执行的命令例如queryAll(),queryOne(),execute()换成getRawSql(); 例如 : 要看$result = Yii::$app->db->createCommand()->update('table', ['name' => $name], "id = {$id}")->execute();的sql , 则使用echo $sql = Yii::$app->db->createComm…