+
 新版
2014-05-21 14:01
看了下,没发现问题.
2014-05-21 10:20

引用来自“德胜”的评论

看了下赞一个!

不过MappedStatement一般只会初始化一次,后面的调用都是一个对象

那么,你需要考虑这种情况:
A线程 getPage() 这个时候MappedStatement的sql为count
这时
B线程 getPage() 已经求完count,将sql改成分页 ~~~~~~~

我没测试,只是凭习惯去从并发方面考虑,然后去看了下mybatis源码,发现的
具体有没有并发问题需要真实的测试.

另外我也弄过,不过考虑到并发,事务等问题.Mybatis也不熟悉,最终放弃.

加油弄,哈哈

引用来自“abel533”的评论

谢谢提醒,我没考虑这种情况,我要测试看看。

引用来自“德胜”的评论

速度测试,我太懒了,有结果了告诉我下,我很好奇

引用来自“abel533”的评论

已经更新到2.1版本了,解决并发异常,你可以看看。

引用来自“德胜”的评论

上班,还没看,不过我想一个解决办法就是加锁,一把锁肯定会非常影响性能,可以对每个MappedStatement使用一把锁,思路就是降低锁的颗粒度,最简单的解决办法,等下中午看看,以前写的插件没写完,然后就不知道扔哪里去了.
加锁有影响,我的解决方法是对MappedStatement进行浅克隆,对其中两个需要修改的对象重写。目前还没有测试clone的效率,如果效率高,就不对克隆的MappedStatement做缓存了。否则想法加缓存。
2014-05-21 10:03

引用来自“德胜”的评论

看了下赞一个!

不过MappedStatement一般只会初始化一次,后面的调用都是一个对象

那么,你需要考虑这种情况:
A线程 getPage() 这个时候MappedStatement的sql为count
这时
B线程 getPage() 已经求完count,将sql改成分页 ~~~~~~~

我没测试,只是凭习惯去从并发方面考虑,然后去看了下mybatis源码,发现的
具体有没有并发问题需要真实的测试.

另外我也弄过,不过考虑到并发,事务等问题.Mybatis也不熟悉,最终放弃.

加油弄,哈哈

引用来自“abel533”的评论

谢谢提醒,我没考虑这种情况,我要测试看看。

引用来自“德胜”的评论

速度测试,我太懒了,有结果了告诉我下,我很好奇

引用来自“abel533”的评论

已经更新到2.1版本了,解决并发异常,你可以看看。
上班,还没看,不过我想一个解决办法就是加锁,一把锁肯定会非常影响性能,可以对每个MappedStatement使用一把锁,思路就是降低锁的颗粒度,最简单的解决办法,等下中午看看,以前写的插件没写完,然后就不知道扔哪里去了.
2014-05-21 07:04
今天会发布2.1版本,解决并发问题。git上已经更新到最新
2014-05-21 07:04

引用来自“唐伟”的评论

我也写过 MyBatis 分页,用 Javassist 修改 XML 解析器中的 DOM 模型,在 MyBatis XML DOM 模型中增加分页语句的配置,一条 count 一条分页。约定一个固定的 sqlId 后缀,既可以自动生成也可以手工配置。分页调用可以在 DAO 层完成。另作一个拦截器,使带 RowBounds 参数的方法支持基于方言的分页。方言支持抄袭自 Hibernate。
使用rowbounds就不能用mapper接口调用了吧?
2014-05-21 00:33
我也写过 MyBatis 分页,用 Javassist 修改 XML 解析器中的 DOM 模型,在 MyBatis XML DOM 模型中增加分页语句的配置,一条 count 一条分页。约定一个固定的 sqlId 后缀,既可以自动生成也可以手工配置。分页调用可以在 DAO 层完成。另作一个拦截器,使带 RowBounds 参数的方法支持基于方言的分页。方言支持抄袭自 Hibernate。
2014-05-20 23:57

引用来自“德胜”的评论

看了下赞一个!

不过MappedStatement一般只会初始化一次,后面的调用都是一个对象

那么,你需要考虑这种情况:
A线程 getPage() 这个时候MappedStatement的sql为count
这时
B线程 getPage() 已经求完count,将sql改成分页 ~~~~~~~

我没测试,只是凭习惯去从并发方面考虑,然后去看了下mybatis源码,发现的
具体有没有并发问题需要真实的测试.

另外我也弄过,不过考虑到并发,事务等问题.Mybatis也不熟悉,最终放弃.

加油弄,哈哈

引用来自“abel533”的评论

谢谢提醒,我没考虑这种情况,我要测试看看。

引用来自“德胜”的评论

速度测试,我太懒了,有结果了告诉我下,我很好奇
已经更新到2.1版本了,解决并发异常,你可以看看。
2014-05-20 22:30

引用来自“德胜”的评论

看了下赞一个!

不过MappedStatement一般只会初始化一次,后面的调用都是一个对象

那么,你需要考虑这种情况:
A线程 getPage() 这个时候MappedStatement的sql为count
这时
B线程 getPage() 已经求完count,将sql改成分页 ~~~~~~~

我没测试,只是凭习惯去从并发方面考虑,然后去看了下mybatis源码,发现的
具体有没有并发问题需要真实的测试.

另外我也弄过,不过考虑到并发,事务等问题.Mybatis也不熟悉,最终放弃.

加油弄,哈哈

引用来自“abel533”的评论

谢谢提醒,我没考虑这种情况,我要测试看看。

引用来自“德胜”的评论

速度测试,我太懒了,有结果了告诉我下,我很好奇
并发访问确实会乱,找到一种解决方法,正在尝试。
2014-05-20 21:28

引用来自“F_L_F”的评论

几个月前自己写了个,也支持count缓存
能看看你写的分页插件吗?我这个目前发现一个重大的BUG,高并发容易乱。
2014-05-20 20:15

引用来自“德胜”的评论

看了下赞一个!

不过MappedStatement一般只会初始化一次,后面的调用都是一个对象

那么,你需要考虑这种情况:
A线程 getPage() 这个时候MappedStatement的sql为count
这时
B线程 getPage() 已经求完count,将sql改成分页 ~~~~~~~

我没测试,只是凭习惯去从并发方面考虑,然后去看了下mybatis源码,发现的
具体有没有并发问题需要真实的测试.

另外我也弄过,不过考虑到并发,事务等问题.Mybatis也不熟悉,最终放弃.

加油弄,哈哈

引用来自“abel533”的评论

谢谢提醒,我没考虑这种情况,我要测试看看。
速度测试,我太懒了,有结果了告诉我下,我很好奇
2014-05-20 20:13

引用来自“德胜”的评论

看了下赞一个!

不过MappedStatement一般只会初始化一次,后面的调用都是一个对象

那么,你需要考虑这种情况:
A线程 getPage() 这个时候MappedStatement的sql为count
这时
B线程 getPage() 已经求完count,将sql改成分页 ~~~~~~~

我没测试,只是凭习惯去从并发方面考虑,然后去看了下mybatis源码,发现的
具体有没有并发问题需要真实的测试.

另外我也弄过,不过考虑到并发,事务等问题.Mybatis也不熟悉,最终放弃.

加油弄,哈哈
谢谢提醒,我没考虑这种情况,我要测试看看。
2014-05-20 20:11
看了下赞一个!

不过MappedStatement一般只会初始化一次,后面的调用都是一个对象

那么,你需要考虑这种情况:
A线程 getPage() 这个时候MappedStatement的sql为count
这时
B线程 getPage() 已经求完count,将sql改成分页 ~~~~~~~

我没测试,只是凭习惯去从并发方面考虑,然后去看了下mybatis源码,发现的
具体有没有并发问题需要真实的测试.

另外我也弄过,不过考虑到并发,事务等问题.Mybatis也不熟悉,最终放弃.

加油弄,哈哈
2014-05-20 16:30
终于看到一次更新了。不过不用这玩意了。spring的JDBCTemplate也玩得很high啊!
2014-05-20 16:26

引用来自“歇蹩虎子”的评论

还有个问题, 在mysql中查询count, select count(0) from (select * from table) as t, 这样的查询存在严重的性能问题, 不知道oracle中是否存在这样的问题. 如果也有这样的问题, 建议还是截取sql求count的好.
oracle不存在这样的问题
2014-05-20 16:24

引用来自“F_L_F”的评论

几个月前自己写了个,也支持count缓存
欢迎分享改进~~~~~
2014-05-20 16:22
几个月前自己写了个,也支持count缓存
2014-05-20 16:07
还有个问题, 在mysql中查询count, select count(0) from (select * from table) as t, 这样的查询存在严重的性能问题, 不知道oracle中是否存在这样的问题. 如果也有这样的问题, 建议还是截取sql求count的好.
2014-05-20 15:39

引用来自“阿木木VS小丁丁”的评论

原来是你 isea533

引用来自“abel533”的评论

你从哪儿看到的isea533?csdn?
对啊 你N早以前不是就在发了 还在群里讨论了一下午呢
2014-05-20 15:35

引用来自“阿木木VS小丁丁”的评论

原来是你 isea533
你从哪儿看到的isea533?csdn?
2014-05-20 15:25
原来是你 isea533
2014-05-20 14:45
不错,收藏了,有空时研究一下你这个。
2014-05-20 13:43
这个可以有
回复 @
{{emojiItem.symbol}}
返回顶部
顶部