秒懂MyBatis之读写分别繁难成功 (秒懂百科)
本文目录导航:
秒懂MyBatis之读写分别繁难成功
手动成功MyBatis读写分别方法如下:1. 了解读写分别原理:在读操作和写操作时访问不同的数据库主机,成功灵活切换数据源。
2. 性能少数据源:在Spring Boot中引入mybatis-starter,应用类创立少数据源。
3. 经常使用ThreadLocal保留以后数据源形态,经过determineCurrentLookupKey方法灵活指定数据源类型。
4. 经过性能文件指定主、从数据库衔接消息。
5. 经常使用DefaultRoutingDataSource作为SqlSessionFactory的数据源,成功智能切换。
6. 经过AOP简化数据库操作,经常使用@Write和@Read标志方法。
7. 测试:确保读操作走从库,写操作走主库,并审核数据同步。
总结:经过上述步骤,成功MyBatis读写分别性能,适用于切换少数据源场景。
效率杠杠的!读取少量MySQL数据,就用Mybatis 流式
最近公司提了个需求,说公司的旧系统的报表导出的时刻,数据量超越一万就导不进去了。
经过分析,是旧系统做了限度。
在降级的时刻,检查了导出时虚构机GC状况,发现原先程序口头时,内存激增,经过Google选择驳回流式读取对sql启动提升。
jdk1.8 、intellij IDEA 2018 mybatis 3 、 springMVC 、Spring 4 成功流式读取的模式不止一种,然而我只能说我处置的这种,对不起,我不是大神级的。
这里驳回的 controller、service、dao分层开发 为什么dao前往值为void还要在mapper写resultMap?由于回调要用你的resultMap处置,然而不应该前往给service,由于回调处置好了 controller层: service层:(重点) dao层:(重点) mapper:(重点) 团体要素:删除非主要局部代码。
你必需看的懂得。
Google了良久的一个要素,就是由于dao接口不应该前往值的。
还费事了老大上来看了一眼。
还有就是google进去的那些,要改框架性能的,我确实跟着改了,改了mysql衔接参数,还有mybatis setting的性能。
嗯,没用。
MyBatis源码解读 - 经常使用SqlRunner操作数据库
SqlRunner,一个十分适用的、用于操作数据库的工具类。
该类对JDBC启动了很好的封装,联合SQL工具类,能够很繁难地经过Java代码口头SQL语句并检索SQL口头结果。
SqlRunner提供了如下同个用于操作数据库的方法:
SqlRunner经常使用示例:
selectAll()方法源码:
setParameters()方法源码:
setParameters()方法处置逻辑:依据参数类型失掉对应的类型处置器,假设没有对应的类型处置器会抛意外,失掉到类型处置器后会调用类型处置器的setParameter()方法设置参数值。
getResults()方法源码: