mybatis sql执行时间明显大于Navicat中执行时间(mysql) 30C

select time,
servertime,
status
from base_t1000000000228
where servertime>='2017-10-16 00:00:00'
and servertime<='2017-10-16 23:59:59'
and time<'2017-10-16 00:00:00'
order by time asc
在Navicat中只要1秒不到,但是mybatis却需要将近10秒
base_t1000000000228表数据量有791875条,time是主键;没有创建索引。

4个回答

Navicat 这个是有缓存的 所以会快点

程序运行本身需要时间啊,还有mybatis对jdbc进行了封装,你看看jdbc连接多长时间,jdbc是数据库的最源生的连接,jdbc连接数据库最快了

mybatis和Navicat这两个东西都不一样,一个是框架,一个是数据库操作工具,有可比性么?如果非要比的话,你mybatis连接数据库,从连接池里获取连接是不是也需要时间啊?而你的navicat你操作的时候已经直接连上了。

两者查询时间有差别是正常的 ,但是不至于差一个数量级吧??? 怀疑你的mybatis是不是有什么额外的耗时操作或者Navicat统计时间不正确。
关系型数据库791875条数据10秒也算正常,Navicat的时间是怎么得到不足1秒的???

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个查询语句在navicat中可以执行,但是在mybatis中报错了

#### 报错提示的语句和我写的mybatis中的语句不一样,不知道怎么个回事儿0.0。 **mybatis中sql语句:** ``` SELECT t.m_id as 'id', t.name, t.numbers, t.s_id as 'spId', t.learned, t.learning, t.plan_finish_date as 'planFinishDate', t.plan, t.next_plan as 'nextPlan' FROM( SELECT m.id as 'm_id', m.name, m.createdate, s.numbers, s.id as 's_id', s.learned, s.learning, s.plan_finish_date , s.plan, s.next_plan FROM member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id ORDER BY s.numbers DESC LIMIT 10000 ) t GROUP BY t.name ORDER BY t.createdate ``` **我多粘贴了一些报错信息** ``` Error querying database. Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :' ) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT t.m_id as 'id', t.name as 'name', t.numbers as 'numbers', t.sp_id as 'spId', t.learned as 'learned', t.learning as 'learning', t.plan_finish_date as 'planFinishDate', t.plan as 'plan', t.createdate as 'createdate', t.next_plan as 'nextPlan' FROM ( SELECT m.id as 'm_id', m.`name`, m.createdate, s.numbers, s.id as 'sp_id', s.learned, s.learning, s.plan_finish_date , s.plan, s.next_plan FROM member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id ) tmp_count ### Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :' ) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT t.m_id as 'id', t.name as 'name', t.numbers as 'numbers', t.sp_id as 'spId', t.learned as 'learned', t.learning as 'learning', t.plan_finish_date as 'planFinishDate', t.plan as 'plan', t.createdate as 'createdate', t.next_plan as 'nextPlan' FROM ( SELECT m.id as 'm_id', m.`name`, m.createdate, s.numbers, s.id as 'sp_id', s.learned, s.learning, s.plan_finish_date , s.plan, s.next_plan FROM member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id ) tmp_count ; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; sql injection violation, syntax error: syntax error, error in :' ) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT t.m_id as 'id', t.name as 'name', t.numbers as 'numbers', t.sp_id as 'spId', t.learned as 'learned', t.learning as 'learning', t.plan_finish_date as 'planFinishDate', t.plan as 'plan', t.createdate as 'createdate', t.next_plan as 'nextPlan' FROM ( SELECT m.id as 'm_id', m.`name`, m.createdate, s.numbers, s.id as 'sp_id', s.learned, s.learning, s.plan_finish_date , s.plan, s.next_plan FROM member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id ) tmp_count; nested exception is java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :' ) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT t.m_id as 'id', t.name as 'name', t.numbers as 'numbers', t.sp_id as 'spId', t.learned as 'learned', t.learning as 'learning', t.plan_finish_date as 'planFinishDate', t.plan as 'plan', t.createdate as 'createdate', t.next_plan as 'nextPlan' FROM ( SELECT m.id as 'm_id', m.`name`, m.createdate, s.numbers, s.id as 'sp_id', s.learned, s.learning, s.plan_finish_date , s.plan, s.next_plan FROM member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id ) tmp_count ``` xml截个图 ![图片说明](https://img-ask.csdn.net/upload/201911/20/1574229873_476553.png)

关于mybatis不执行sql的问题

<select id="queryTomId" parameterType="java.lang.String" resultType="java.lang.String"> select TOM_ID from TEST where 1=1 <if test="ipAddr!= null and ipAddr!= ''"> AND HOST_IP = #{ipAddr} </if> </select> 日志输出: 11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession 11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7ecc30a4] was not registered for synchronization because synchronization is not active 11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7ecc30a4] 这个查询没有返回,也没有报错,执行到这里程序就不走了, 其他查询是可以成功的,也可以打印出sql语句,但是这个查询就是不行。。

同一条SQL语句,myBatis查出来的数据和Navicat查出来的数据不同

通过日志打印的mybatis执行的SQL语句,原原本本复制到数据库,可以查出来很多条数据,但是mybatis要么查不到,要么少数据。 1.已尝试过写死传入参数,证明不是参数问题 2.尝试过select *,无效 3.尝试过查询的数据不小于resultMap里面的数据,也无效 4.写一个POJO类(是叫DTO吧?)来接收数据,也无效 5.SQL语句很简单,而且是通过复制到数据库,以及属性名都是通过复制,不存在写错。 走投无路了。。 以下是代码段以及日志: 日志: ``` 2018-07-02 14:05:00,244 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,244 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,244 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,244 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 9(Integer) 2018-07-02 14:05:00,316 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 17 2018-07-02 14:05:00,316 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,316 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,316 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,316 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 3(Integer) 2018-07-02 14:05:00,393 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 1143 2018-07-02 14:05:00,394 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,394 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,394 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,394 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 2(Integer) 2018-07-02 14:05:00,472 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 36 2018-07-02 14:05:00,472 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,472 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,472 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,472 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 1(Integer) 2018-07-02 14:05:00,546 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 575 ``` 以最后一条查询语句为例 : select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 参数:1 返回条数:575条 数据库数据: 594条 这是差的少的情况,差的多了,直接差了几百,一千条数据都是.. 数据库数据: ![图片说明](https://img-ask.csdn.net/upload/201807/02/1530513646_410092.png) mapper里面代码段: ![图片说明](https://img-ask.csdn.net/upload/201807/02/1530513593_738695.png)

Mybatis 执行SQL每次耗时很久

数据库是DB2 ``` public class Test { public static void main(String[] args) { SqlSession session = MybatisUtil.openSqlSession(); String statement = "xl.bean.personMapper.getAllPerson"; System.out.println(System.currentTimeMillis()); List<Person> listPerson = session.selectList(statement); System.out.println(listPerson); System.out.println(System.currentTimeMillis()); session.close(); } } ``` 配置XML ![图片说明](https://img-ask.csdn.net/upload/201901/08/1546916376_639948.png) 执行要结果: ![图片说明](https://img-ask.csdn.net/upload/201901/08/1546916113_765834.png) 代码执行增删查改 语句都要这么久,不晓得为什么, 直接用DbVisualizer 工具执行SQL很快。 ![图片说明](https://img-ask.csdn.net/upload/201901/08/1546916263_864346.png)

springBoot + mybatis 执行SQL

在Controller中拼接一段自定义的SQL,这段SQL没有对应的mapper文件,如何让这段SQL执行并返回结果。

mybatis 不执行sql,什么指教请

``` <select id="queryTomId" parameterType="java.lang.String" resultType="java.lang.String"> select TOM_ID from TOM_SERVER_CFG where 1=1 <if test="ipAddr!= null and ipAddr!= ''"> AND HOST_IP = #{ipAddr} </if> </select> ``` 输出日志: 11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession 11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7ecc30a4] was not registered for synchronization because synchronization is not active 11:04:02.942 [http-bio-8080-exec-5] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7ecc30a4] 程序就卡在这,也没有返回

如何记录spring-mybatis执行的SQL记录

不是打印日志,也不是在控制台输出,想保存执行的SQL语句内容: 例子:SELECT goods_id,goods_name,goods_price FROM goods where goods_id=100; 而不是:SELECT goods_id,goods_name,goods_price FROM goods where goods_id=?,Parameters:goods_id=100;这种 或者说:就是可以自己编辑执行过的SQL语句,并保存到自己想要保存的文件中去

sql在navicat运行没问题,在mybatisPlus里报注入冲突

以下为sql代码,在数据库中能够没问题的运行,但是在mybatisPlus里却报注入冲突。 ![图片说明](https://img-ask.csdn.net/upload/201908/21/1566390059_877897.png) 其中 updateBy,schoolId,classId,studentDutyId为自己传入的参数,并且已经debug看过了,传入的map中以及包含了上诉的4个参数。 报错信息:java.sql.SQLException: sql injection violation, syntax error: TODO pos 924, line 18, column 21, token IDENTIFIER groupIndex 数据库是:postgresql 就报错在sql的倒数第二行 大佬救救孩子把

如何获取mybatis 执行 的 sql

举个例子: <select id="get" parameter=“map”> select * from A where id=#id# </select> 假设这条sql最终执行的语句为:select * from A where id=10000 请问在应用程序中如何获取到这样一条执行的完整 sql

mysql+mybatis sql语句返回乱码

请教一个问题:mysql+mybatis sql 语句中用了CONCAT 方法来拼接两个时间类型的字段: ![图片说明](https://img-ask.csdn.net/upload/201611/22/1479804094_180032.jpg) ![图片说明](https://img-ask.csdn.net/upload/201611/22/1479804563_586839.jpg) 运行sql语句后效果显示正常: ![图片说明](https://img-ask.csdn.net/upload/201611/22/1479804172_816193.jpg) 但是在程序中返回的数据格式是错误的: ![图片说明](https://img-ask.csdn.net/upload/201611/22/1479804453_871112.jpg) 按说返回String类型的字段后应该没有问题的,不知为何错误

sql语句问题为什么在数据库中文可以执行但在mybatis中就不行求大佬指点 万分感谢

![图片说明](https://img-ask.csdn.net/upload/201811/11/1541929806_283296.jpg) 这可以执行![图片说明](https://img-ask.csdn.net/upload/201811/11/1541929873_596766.png) 但在mybatis中PREPARE texts FROM @a就出现异常错误了 异常是 SQL: SET @a=CONCAT('SELECT a.accout_,a.name,a.birthday_,b.name_j FROM users a,role b,users_role c WHERE a.`id`=c.`user_id` AND b.`id_j`=c.`role` LIMIT ',(1-1)*3,",",3,'') PREPARE texts FROM @a EXECUTE texts ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PREPARE texts FROM @a EXECUTE texts' at line 2 ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PREPARE texts FROM @a EXECUTE texts' at line 2

mybatis 执行带多行sql 查询语句

``` begin <foreach collection="items" item="stu"> select name,address,city,province from teachers <trim prefix="where" prefixOverrides="and|or"> <if test="stu.name!=null"> and name =#{stu.name} </if> <if test="stu.age!=null"> and age =#{stu.age} </if> <if test="stu.name!=null"> and sex =#{stu.sex} </if> </trim> </foreach> 这样写的查询sql报无效的关系运算符,之后我想到的存储过程 Dao 接口 List<Teacher> queryTeacher(@Param("map")Map<String,Lis<Teacher> map) 查询sql { call(#{map.import_params,jdbcType=CURSOR,mode=IN}, #{map.out_params,mode=OUT,javaType=ResultSet,resultMap="baseMap"}) } 调用 Map<String,Teacher> m = new HashMap<String,List<Teacher>); m.put("import_params,list); m.put("outparam,null); teacherDao.queryTeacher(m); 这样查询报错说我的 there is no type handler for com.test.QueryTeacher.importParam,改成 #{import_param} 报错 there is no param import_param available is map 网上有的人就是这样写的,但是报错,请教各位大神这个如何写, 我将不胜感激。 ```

SQL在navicat里执行成功,但是程序中报错

由于是在Oracle上执行的,所以是没有Values关键字的 ``` <insert id="insert"> insert into CARGO_CONTENTS (CARGO_ID,MATE_ID,CASE_NUM,REMARK,SPEC,EQUIPMENT_TYPE_ID,CLABS) select * from <foreach open="(" close=")" collection="contents" item="item" index="index" separator="UNION ALL"> select #{item.cargoID} as cargoId, #{item.mateID} as mateId, #{item.caseNum} as caseNum, #{item.remark} as remark, #{item.spec} as spec, #{item.equipmentTypeID} as equipmentTypeID, #{item.clabs} as clabs from DUAL </foreach> </insert> ``` ![图片说明](https://img-ask.csdn.net/upload/202004/03/1585878284_524962.png)![图片说明](https://img-ask.csdn.net/upload/202004/03/1585878292_476595.png) ![图片说明](https://img-ask.csdn.net/upload/202004/03/1585891081_876686.png)

mybatis怎么提取最终sql

做log 要把最终执行的sql保存到数据库中 因为使用了一些通用mapper,怎么获取最终的sql语句

自己写mybatis拦截器记录执行SQL到日志需要用异步来处理吗?

打算用拦截器来记录SQL执行日志,多线程会导致intercept出问题吗?比如阻塞。这样是不是会造成线程池被占用?需不需要用异步来做日志记录?

mybatis执行SQL语句前动态使用JAVA代码加入条件,并且不能使用${}符号

在mybatis执行sql编译之前,使用java代码拦截该sql并拼接入条件进去,比如xml里一条sql SELECT * FROM TABLE,在执行这条sql语句之前动态使用java代码加入 WHERE ID > 1这一个条件,并且不能不适用${}传入,也就是XML里的语句不能有任何条件,有没有大佬给个例子代码的?

mybatis sql返回数据没有可接收的对象

mybatis sql关联查询出来的字段较多,没有一个可接收的对象,怎么办,不用再为这些数据 建实体类,有没有其他办法

mybatis执行sql异常,实在找不出问题出在哪了!

配置文件 <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="luo"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="SQLMaper.xml"/> </mappers> </configuration> 映射文件 <mapper namespace="org.great.maper.UserInfoMaper"> <select id="selectuser" parameterType="org.great.bean.UserInfoBean" resultType="org.great.bean.UserInfoBean"> select * from USERINFO where USERNAME=#{username} and PWD=#{pwd} </select> </mapper> 映射接口 public interface UserInfoMaper { public UserInfoBean selectuser(UserInfoBean userInfoBean); } 实体类 public class UserInfoBean { private String name; private String username; private String pwd; public UserInfoBean(String name, String username, String pwd) { this.name = name; this.username = username; this.pwd = pwd; } public UserInfoBean() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } } 测试类 public class MainTest { private static UserInfoBean userentity; public static void main(String[] args) { SqlSession sqlSession = MybatisUtil.getSqlSession(); System.out.println(sqlSession); UserInfoBean userInfoBean = new UserInfoBean(); userInfoBean.setUsername("admin"); userInfoBean.setPwd("123456"); UserInfoMaper userInfoMaper = sqlSession.getMapper(UserInfoMaper.class); userentity =userInfoMaper.selectuser(userInfoBean); } } 当执行到userInfoMaper.selectuser(userInfoBean)异常 Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: oracle.jdbc.OracleDriver ### The error may exist in SQLMaper.xml ### The error may involve org.great.maper.UserInfoMaper.selectuser ### The error occurred while executing a query ### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: oracle.jdbc.OracleDriver at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:107) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:62) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43) at com.sun.proxy.$Proxy0.selectuser(Unknown Source) at org.great.main.MainTest.main(MainTest.java:17) Caused by: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: oracle.jdbc.OracleDriver at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.initializeDriver(UnpooledDataSource.java:211) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:190) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:186) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:88) at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:373) at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:82) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:131) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:58) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:271) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:69) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:56) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:259) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:132) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104) ... 6 more

MybatisPlus SQL执行时间太长

今天遇到这样一个报错 ``` ### SQL: SELECT id,zcbi,bgqmc,bgqmccn,lybh,lybhcn,yjxtfl,yjxtflcn,ejxtfl,ejxtflcn,sjxtfl,sjxtflcn,sblb,sblbcn,sbmc,sbmccn,xh,pp,ppcn,snh,ipdz,lc,lccn,mph,wlzjgi,zbksrq,zbjsrq,zbfgsmc,zbflxr,zbflxdh,sbgnms,pdfs,pdfscn,sfglrj,sfglrjcn,rjms,bz,sjzt,ssgs,ssgscn,sjjd,sjjdcn,jb,zccode,cclrry,cclrrycn,cw,delflag,oper,opercn,operip,operdept,operdeptcn,opertime,sydw,sydwcn,syr,sbje,sybm,syrdh,fwqpz FROM t_yjzc_lr_table WHERE sjjd <> ? ### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: The SQL execution time is too large, please optimize ! at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) ~[mybatis-3.5.1.jar:3.5.1] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149) ~[mybatis-3.5.1.jar:3.5.1] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) ~[mybatis-3.5.1.jar:3.5.1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_131] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433) ~[mybatis-spring-2.0.1.jar:2.0.1] ... 85 common frames omitted Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: The SQL execution time is too large, please optimize ! at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.1.1.jar:3.1.1] at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.1.1.jar:3.1.1] at com.baomidou.mybatisplus.core.toolkit.Assert.isFalse(Assert.java:50) ~[mybatis-plus-core-3.1.1.jar:3.1.1] at com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor.intercept(PerformanceInterceptor.java:192) ~[mybatis-plus-extension-3.1.1.jar:3.1.1] at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) ~[mybatis-3.5.1.jar:3.5.1] at com.sun.proxy.$Proxy105.query(Unknown Source) ~[na:na] at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131] at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63) ~[mybatis-3.5.1.jar:3.5.1] at com.sun.proxy.$Proxy105.query(Unknown Source) ~[na:na] at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:67) ~[mybatis-plus-core-3.1.1.jar:3.1.1] at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) ~[mybatis-3.5.1.jar:3.5.1] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) ~[mybatis-3.5.1.jar:3.5.1] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) ~[mybatis-3.5.1.jar:3.5.1] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) ~[mybatis-3.5.1.jar:3.5.1] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ~[mybatis-3.5.1.jar:3.5.1] ... 91 common frames omitted ``` 我把sql沾出来,看执行时间也不长啊为什么报这个错 ![图片说明](https://img-ask.csdn.net/upload/201911/18/1574062947_34011.png) 也没有加sql性能分析插件,把mybatis的超时时间改成default-statement-timeout: 600也就是10分钟也不行。求大神帮帮看看

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

差点跪了...

最近微信又搞出了一个大利器,甚至都上了热搜,当然消息最敏捷的自媒体人,纷纷都开通了自己的视频号。01 视频号是什么呢?视频号是微信体系内的短视频,它不同...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

Vue回炉重造之router路由(更新中)

你好,我是Vam的金豆之路,可以叫我豆哥。2019年年度博客之星、技术领域博客专家。主要领域:前端开发。我的微信是 maomin9761,有什么疑问可以加我哦,自己创建了一个微信技术交流群,可以加我邀请你一起交流学习。最后自己也创建了一个微信公众号,里面的文章是我自己精挑细选的文章,主要介绍各种IT新技术。欢迎关注哦,微信搜索:臻美IT,等你来。 欢迎阅读本博文,本博文主要讲述【】,文字通...

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大胆预测下未来5年的Web开发

在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。如果你有机会从头...

立即提问
相关内容推荐