Der größte Teil unseres Programmierprozesses verwenden hervorragende ORM-Frameworks wie MyBatis, Hibernate, Springjdbc, diese sind jedoch von der Unterstützung datengesteuerter JDBC untrennbar miteinander verbunden. Obwohl es sehr bequem zu bedienen ist, ist es wirklich schwierig, auf Probleme zu stoßen, wie das Problem, das mir beunruhigte, dass ich die ganze Nacht nicht gut geschlafen habe. JDBC generiert Ausführungsdaten. Schauen wir uns die Details an.
Normalerweise verwenden wir das MyBatis -Framework, um relationale Datenbanken zu betreiben, und das grundlegende Crud -Operationen. Derzeit verwendet das Unternehmen die SQLServer -Datenbank, aber ich habe ein Problem, wenn ich die Aktualisierungsoperation durchführe. Die spezifische Situation ist wie folgt:
Mapper.xml Inhalt:
<Update ID = "AktualisiertesRiverInfObyuCode" parameterType = "com.synro.earth.model.driverInfo"> Aktualisieren Sie D_DRIVERINFO <Set> <if test = "driverName! = null"> trivername = #{TRAVERNAME, JDBCTTYPE = NVARCHAR}, </if> </set> <where> ucode = #{uCode, javatype = string, jdbctype = varchar, typeHandler = com.pro.Pro.earth.typeHer.exampletypeHandler} </wob Der Testcode lautet wie folgt:
@TestPublic void test8 () {TriverInfo driverInfo = new DriverInfo (); TRAVERInfo.SetDriverName ("Wang Xiaoer"); DriverInfo.SetuCode ("Ty8888888"); TribleInfymapper Ich aktualisiere nur den Namen des Fahrers entsprechend der Arbeitsnummer, aber die mit SQL Server zur Überwachung erkannten SQL -Anweisungen sind ungefähr wie folgt:
(@P0 nvarchar (4000),@p1 nvarchar (4000)) Aktualisieren Sie D_DRIVERINFOSET TRAVERNAME =@P0, wobei ucode =@p1
Natürlich möchte ich meine Datenbankverbindungszeichenfolge hier veröffentlichen:
JDBC/: SQLSERVER/: //127.0.0.1; DatenbankaName/= new;
Sie können den Ausführungsplan zu diesem Zeitpunkt überprüfen:
//www.vevb.com/article/90264.htm
Es ist zu sehen, dass es sehr langsam ist, aber durch Änderung der Verbindungszeichenfolge ein wenig:
JDBC/: SQLSERVER/: //127.0.0.1; DatenbankaName/= new; sendStringParametersasunicode = false
Führen Sie dann den Testcode aus und Sie können sehen
(@P0 varchar (8000),@p1 varchar (8000)) Aktualisieren Sie D_DRIVERINFOSET TRAVERNAME =@P0, wobei ucode =@p1
Die Ausführungsgeschwindigkeit von Batch -Updates wurde erheblich verbessert. Wenn sich die Änderungen und die Vor- und Nachteile von Änderungen anbieten, lesen Sie bitte das offizielle Website -Dokument unten.
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
Das obige Problem ist das von MyBatis über JDBC -Datenfahrer generierte Ausführungsanweisungsproblem, das Ihnen vom Editor vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!