Почему вывод SQL на консоли?
Конечно, это для удобства развития и отладки.
Если есть проблема с операцией, связанной с базой данных, мы можем быстро решать проблему на основе оператора SQL.
Выводная информация:
[org.mybatis.spring.sqlsessionUtils]-Создание нового sqlsession
[org.mybatis.spring.sqlsessionUtils] -sqlsession [org.apache.ibatis.session.defaults.defaultsqlsession@33290f98] не был зарегистрирован для синхронизации, потому что синхронизация не является активной
[org.springframework.jdbc.datasource.datasourceutils] -creteching jdbc connect
[org.mybatis.spring.transaction.springmanagedTransaction] -JDBC Connection [jdbc: mysql: //rds.aliyuncs.com: 3306/yyyy? useunicode = true & charcyencoding = utf-8 & zerodateTimebehavior = converttonul [email protected], соединитель MySQL Java] не будет управляться весной
[DateNumber.pageselect]-==> Подготовка: Select x.id, date_format (x.`date`, '%y%m%d') `datestr`, x.befor_num, x.after_num, x.physician_id, y.department_id, y.clinic_id, y. DateNumber x Право присоединяйтесь к физическому y на x.physician_id = y.id и (x.`date`> =? и x.`date` <=?) Где 1 = 1 и y.clinic_id =? Порядок x.date ASC
[DateNumber.pageselect]-==> Параметры: 2017-3-28 (String), 2017-4-4 (String), 1 (Long)
[DateNumber.pageselect]-<== Итого: 19
Выходное содержание довольно ужасно. Символы подключения к базе данных и имя пользователя и пароль выводятся, поэтому будьте осторожны.
Тем не менее, одно можно сказать, что операторы SQL и параметры выводятся отдельно. Если вы хотите скопировать их в инструмент запроса для отладки, вы должны заполнить параметры самостоятельно, что является более неприятным.
Моя проектная среда
Пружина 4.0.2 + пружина MVC 4.0.2 + Mybatis 3.2.6
Метод 1: Используйте стандартный вывод журнала
Этот метод относительно прост. Вам нужно только настроить файл конфигурации Mybatis с соответствующими свойствами, и вам не нужно размещать файл log4j.properties.
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <ficination> <treats> <treats> <treate name = "namempl" = "настройка =" настройка = "настройка =" настройка = "настройка =" настройка = "настройка =" настройка = "настройка =" настройка = " value = "stdout_logging"/> </settings> </configuration>
Ключевые заявления:
<настройка name = "logimpl" value = "stdout_logging"/>
Определяет, какую реализацию журнала Mybatis должна использовать. Если этого настройки не существует, реализации журнала автоматически обнаруживаются.
Метод 2: Используйте выходной сигнал log4j
1. Файл Spring-Mybatis.xml не нуждается в изменении;
2. В mybatis.xml укажите использование log4j в качестве реализации журнала, которую мне не нужно тестировать.
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <ficination> <treats> <trate name = "vally"/"/"/"/"/""/"/"/"/" "/"/"/"/""/"/" "/"/"/"/""/"/"/"/"/"/" "/"/"/"/"/"/"/"/"/"/"/"/"" </settings> </configuration> <!-Фактически, вы можете проверить, доступен ли этот файл->
Значения значения здесь могут быть SLF4J, Apache Commons Logging, log4J2, log4j, JDK Logging (кроме log4j2, log4j, другие незавершенные) и будут искать в порядке.
3. Настройка также требуется в web.xml
<Learser> <lloader-class> org.springframework.web.util.log4jconfiglistener </sluster-class> </sluster>
Или используйте следующее (не проверено)
<Learser> <lloader-class> org.apache.logging.log4j.web.log4jservletContextLister1 </sluster-class> </sluster>
4. Наконец -то настройте log4j.properties
### log4j Конфигурация #### ### В комбинации с пружиной вам необходимо указать местоположение этого файла в web.xml и добавить слушатель #### #define выходной уровень и пункт назначения вывода log4j (пункт назначения может быть настроен, и соответствует последующему)#[level], Appendaname1, AppenDame2. #--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- log4j.appender.console.Threshold = Debug ##### Вы можете гибко указать формат вывода журнала. Следующая строка указывает конкретный формат. ############# Категория, к которой принадлежит информация о выходном журнале, обычно является полным именем класса#%m: сообщение, указанное в коде, сгенерированная информация о журнале#%n: вывода перевозка возвращаемой строки, платформа Windows. log4j.appender.console.layout.ConversionPattern=[%c]-%m%n #-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- When the file size достигает указанного размера, сгенерирован новый файл log4j.appender.file = org.apache.log4j.rollingfileappender #Log Файл Управление log4j.appender.file.threshold = ошибка log4j.appender.file.layout = org.apache.log4j.patternlayout log4j.appender.file.layout.conversionpattern = [%p] [%d {yy-mm-dd}] [%c]%m%n #--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Отображение оператора SQL part log4j.logger.org.mybatis = debug #log4j.logger.cn.tibet.cas.dao = debug #log4j.logger.org.mybatis.common.jdbc.simpledatasource = debug #log4j.logger. #log4j.logger.org.mybatis.sqlmap.engine.impl.sqlmapclientdelegate = debug #log4j.logger.java.sql.connection = debug log4j.logger.java.sql = отладки log4j.logger.java.sql.resultset = debug log4j.logger.java.sql.preparedStatement = Debug Сравнение двух способов
1. Конфигурация с использованием стандартного вывода журнала проста, в то время как конфигурация с использованием вывода журнала log4j является относительно сложной;
2. Log4J имеет мощные функции и относительно тонкую гранулярность;
При указании как «stdout_logging» в файле конфигурации, какая реализация журнала фактически используется? Apache Commons журналирование или ведение JDK?
Ни один из них, это на самом деле System.out.pringln.
Обновлено на 2017-09-14
Некоторые друзья сообщили, что они не будут выводить операторы SQL после настройки второго метода. Обратите внимание, что в файле log4j.properties:
log4j.appender.console.Threshold = Debug
Это соответствует этому примеру?
Пожалуйста, обратите внимание на детали. Друзья, которые только начинают изучать, могут сначала использовать конфигурацию, предоставленную в этом примере, а затем настраивать ее лично.
Кроме того, в соответствии с вышеупомянутой конфигурацией, я выведу большое количество информации за пределами операторов SQL. Друг попытался вывести только операторы, параметры и результаты SQL.
Спасибо здесь и поделитесь с вами:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.