กระบวนการเขียนโปรแกรมของเราส่วนใหญ่ใช้เฟรมเวิร์ก ORM ที่ยอดเยี่ยมเช่น MyBatis, Hibernate, SpringJDBC แต่สิ่งเหล่านี้แยกออกไม่ได้จากการสนับสนุนของ JDBC ที่ขับเคลื่อนด้วยข้อมูล แม้ว่ามันจะสะดวกมากในการใช้งาน แต่ก็ยากที่จะพบปัญหาบางอย่างเช่นปัญหาที่ทำให้ฉันไม่ได้นอนหลับสบายตลอดทั้งคืน JDBC สร้างข้อมูลการดำเนินการ มาดูรายละเอียดกันเถอะ
โดยปกติแล้วเราจะใช้ MyBatis Framework เพื่อใช้งานฐานข้อมูลเชิงสัมพันธ์และพื้นฐานพื้นฐานคือการดำเนินการ CRUD ปัจจุบัน บริษัท กำลังใช้ฐานข้อมูล SQLServer แต่ฉันมีปัญหาเมื่อฉันดำเนินการอัปเดต สถานการณ์เฉพาะมีดังนี้:
mapper.xml เนื้อหา:
<update id = "UpdatedRiverInFobyucode" ParameterType = "com.sypro.earth.model.driverinfo"> อัปเดต d_driverinfo <et> <ถ้า test = "drivername! = null"> drivername = #{driverName, jdbcType = nvarchar}, </if> </set> <where where> uCode = #{uCode, javatype = string, jdbcType = varchar, typeHandler = com.sypro.yearth.typehandler.exampletypehandler} </ รหัสทดสอบมีดังนี้:
@TestPublic เป็นโมฆะ test8 () {driverinfo driverinfo = ใหม่ driverinfo (); driverinfo.setDriverName ("wang xiaoer"); driverinfo.setucode ("ty888888"); ฉันแค่อัปเดตชื่อคนขับตามหมายเลขงาน แต่คำสั่ง SQL ที่ตรวจพบโดยใช้ SQL Server เพื่อตรวจสอบมีดังนี้:
(@p0 nvarchar (4000),@p1 nvarchar (4000)) อัปเดต d_driverinfoset drivername =@p0 โดยที่ ucode =@p1
แน่นอนฉันต้องการโพสต์สตริงการเชื่อมต่อฐานข้อมูลของฉันที่นี่:
jdbc/: sqlserver/: //127.0.0.1; databasename/= new;
คุณสามารถตรวจสอบแผนการดำเนินการในเวลานี้:
//www.vevb.com/article/90264.htm
จะเห็นได้ว่ามันช้ามาก แต่โดยการปรับเปลี่ยนสตริงการเชื่อมต่อเล็กน้อย:
jdbc/: sqlserver/: //127.0.0.1; databasename/= new; sendstringparametersasunicode = false
จากนั้นเรียกใช้รหัสทดสอบและคุณจะเห็น
(@p0 varchar (8000),@p1 varchar (8000)) อัปเดต d_driverinfoset drivername =@p0 โดยที่ uCode =@p1
ความเร็วในการดำเนินการของการอัปเดตแบทช์ได้รับการปรับปรุงอย่างมีนัยสำคัญ สำหรับสาเหตุที่การเปลี่ยนแปลงและข้อดีและข้อเสียของการเปลี่ยนแปลงโปรดดูเอกสารเว็บไซต์อย่างเป็นทางการด้านล่าง
https://technet.microsoft.com/zh-cn/library/ms378857%28sql.90%29.aspx
https://technet.microsoft.com/zh-cn/library/ms378988%28v=sql.90%29.aspx
http://d.hatena.ne.jp/gnarl/20110706/1309945379
ข้างต้นเป็นปัญหาคำสั่งการดำเนินการที่สร้างโดย MyBatis ผ่านไดรเวอร์ข้อมูล JDBC ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!