這篇文章將為大家詳細(xì)講解有關(guān)使用Mybatis怎么實(shí)現(xiàn)批量更新,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),同心企業(yè)網(wǎng)站建設(shè),同心品牌網(wǎng)站建設(shè),網(wǎng)站定制,同心網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,同心網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
方式一:
update tableName name=${item.name}, name2=${item.name2} where id = ${item.id}
但Mybatis映射文件中的sql語句默認(rèn)是不支持以" ; " 結(jié)尾的,也就是不支持多條sql語句的執(zhí)行。所以需要在連接MySQL的url上加 &allowMultiQueries=true 這個(gè)才可以執(zhí)行。
方式二:
update tableName when id=#{cus.id} then #{cus.name} when id=#{cus.id} then #{cus.age} id = #{cus.id}
這種方式貌似效率不高,但是可以實(shí)現(xiàn),而且不用改動(dòng)mysql連接
效率參考文章:https://www.jb51.net/article/155835.htm
方式三:
臨時(shí)改表sqlSessionFactory的屬性,實(shí)現(xiàn)批量提交的java,但無法返回受影響數(shù)量。
public int updateBatch(List
其中 SpringContextUtil 是自己定義的工具類 用來獲取spring加載的bean對象,其中g(shù)etBean() 獲得的是想要得到的sqlSessionFactory。Mapper 是自己的更具業(yè)務(wù)需求的Mapper接口類,Object是對象。
總結(jié)
方式一 需要修改mysql的連接url,讓全局支持多sql執(zhí)行,不太安全
方式二 當(dāng)數(shù)據(jù)量大的時(shí)候 ,效率明顯降低
方式三 需要自己控制,自己處理,一些隱藏的問題無法發(fā)現(xiàn)。
附件:SpringContextUtil.java
@Component public class SpringContextUtil implements ApplicationContextAware{ private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextUtil.applicationContext = applicationContext; } public static ApplicationContext getApplicationContext(){ return applicationContext; } public static Object getBean(Class T){ try { return applicationContext.getBean(T); }catch (BeansException e){ return null; } } public static Object getBean(String name){ try { return applicationContext.getBean(name); }catch (BeansException e){ return null; } } }
關(guān)于使用Mybatis怎么實(shí)現(xiàn)批量更新就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。