Большая часть нашего процесса программирования использует отличные рамки ORM, такие как Mybatis, Hibernate, SpringJDBC, но они неотделимы от поддержки JDBC, управляемого данными. Хотя это очень удобно в использовании, действительно трудно столкнуться с некоторыми проблемами, такими как проблема, которая беспокоила меня плохо спать всю ночь. JDBC генерирует данные выполнения. Давайте посмотрим на детали.
Обычно мы используем структуру Mybatis для эксплуатации реляционных баз данных, а основной являются операции CRUD. В настоящее время компания использует базу данных SQLServer, но у меня есть проблема, когда я выполняю операцию обновления. Конкретная ситуация заключается в следующем:
Content Mapper.xml:
<Обновление идентификатор = "updatedRiverInfobyucode" parameterType = "com.sypro.earth.model.driverinfo"> обновление d_driverinfo <set> <if test = "DriverName! = null"> DriverName = #{DriverName, jdbctype = nvarchar}, </if> </set> <где> ucode = #{ucode, javatype = string, jdbctype = varchar, typehandler = com.sypro.earth.typehandler.exampletypehandler} </where> </update> Тестовый код заключается в следующем:
@Testpublic void test8 () {DriverInfo DriverInfo = new DriverInfo (); DriverInfo.SetDriverName ("wang xiaoer"); DriverInfo.SetUcode ("ty888888"); DriverInfomyMapper.UpdatedRiverinFobyucode (DriverInfo); Я просто обновляю имя драйвера в соответствии с рабочим номером, но операторы 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; sendstringparametersasasunicode = 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!