Mybatis-это полуавтоматический ORM. Используя эту структуру, наиболее рабочей нагрузкой является написание картирования файлов отображения. Поскольку ручное написание легко совершать ошибки, мы можем использовать Mybatis-Generator, чтобы помочь нам автоматически генерировать файлы.
Обратная инженерия
1. Что такое обратная инженерия
MyBaits требует, чтобы программисты сами писали заявления SQL. Mybatis Official предоставляет обратную инженерию для автоматического генерации требуемого кода для выполнения Mybatis (mapper.java, mapper.xml, po ..)
Общие методы обратной инженерии, используемые в реальной разработке предприятия:
Код Java генерируется из -за таблицы базы данных.
2. Скачать обратную инженерию
Mybatis-Generator-core-1.3.2-bundle.zip
3. Как использовать (может использовать его)
3.1 Запустить реверс -инженерию
Несколько способов запуска обратной инженерии предоставлены в официальной документации
Запуск генератора Mybatis
Mybatis Generator (MBG) может быть запущен следующим образом:
(1) из командной строки с конфигурацией XML
(2) В качестве задачи муравья с конфигурацией XML
(3) как плагин Maven
(4) из другой программы Java с конфигурацией XML
(5) из другой программы Java с конфигурацией на основе Java на основе Java
(6) Вы также можете генерировать код через плагин Eclipse
Рекомендуется использовать метод программы Java (из другой программы Java с конфигурацией XML) и не полагается на инструменты разработки.
Ниже приведен проект, который генерирует обратные файлы, а затем копирует автоматически сгенерированные файлы в исходный проект (это сделано, чтобы прекратить напрямую генерировать в исходном файле и перезаписать файл с тем же именем). Скриншот импортированного пакета JAR и структуры проекта выглядит следующим образом:
Как показано
3.2 Сгенерировать файлы конфигурации кода
GeneratorConfig.xml:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype GeneratorConfigurationPublic "-// mybatis.org//dtd mybatis Generation Configuration 1.0 // en "" http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd "> <generatorConfiguration> <Контекст ID =" testtables " value = "true"/> </commentgenerator> <!-Информация о подключении к базе данных: класс драйвера, адрес подключения, имя пользователя, пароль-> <jdbcconnection driverclass = "com.mysql.jdbc.driver" connectionUrl = "jdbc: mysql: // localhost: 3306/mybatis" userId = "root" password = "1234"> </jdbcconnection> <!-<jdbcconnection driverclass = "oracle.jdbc.oracledriver" connectionUrl = "jdbc: oracle: thin:@127.0.0.1: 1521: yycg" userId = "yycg" = "yIcg"> </jdbc>-jdbc>-jdbc> </jdbc> </jdbc? По умолчанию FALSE, разрабатывайте ДЗИМАЛЬНЫЕ И ЧИСТИЧЕСКИЕ ТИПЫ ДЛЯ ИСПОЛЬЗОВАНИЯ, И когда это правда, разрабатывайте десятичные и числовые типы JDBC для java.math.bigdecimal-> <javatyperesolver> <свойство = "forcebigdecimals" value = "false" < /> < /javatyperesolver> <! -> <javamodelgenerator targetPackage = "cn.edu.hpu.ssm.po" targetProject = "./ src"> <!-insulsubpackages: позволить схеме быть суффиксом упаковки-> <свойство = "ulsubpackages" = "false" /> <!-Значение, возвращаемое от DataBase, чистота,-> <> «trimStrings». value = "true"/> </javamodelgenerator> <!-TargetProject: место, где генерируется файл карты Mapper-> <sqlmapgenerator targetPackage = "cn.edu.hpu.ssm.mapper" name = "enablesBpackages" value = "false"/> </sqlmapgenerator> <!-TargetPackage: местоположение генерации границы интерфейса Mapper-> <javaclientgenerator type = "xmlmapper" Суффикс пакета-> <property name = "enablesBpackages" value = "false"/> </javaclientgenerator> <!-указать таблицу базы данных-> <Таблица TableName = "ETEMS"> </table> <Таблица TableName = "Заказы"> </table> <table tableDame = "orderDetail"> </table> <Таблица TableDame = "> <//table" <//table "> <//table"> <//table "<//table"> <//table "<//table"> <//table "<//table"> <//table "> <//table"> <//table "> <//table"> TableName = "sys_user"> </table> <table schema = "" tableName = "sys_role"> </table> <таблица schema = "" tableName = "sys_permission"> </table> <table schema = "" TableName = "sys_user_role"> </table> <table schema = "" tablemale = "sys_user_role" -> <!-Некоторые поля таблицы требуют java type <table schema = "" tablename = ""> <coluneoverride column = "" javatype = ""/> </table>-> </context> </generatorConfiguration>
3.3 Выполните программу генератора
GeneratorsQlmap.java:
Импорт java.io.file; импорт java.util.arraylist; import java.util.list; import org.mybatis.generator.api.mybatisgenerator; import org.mybatis.generator.config.configuration; импорт org.mybatis.generator.config.configuration; org.mybatis.generator.internal.defaultshellcallback; public class generatorsqlmap {public void Generator () Throws Exception {list <string> Warnings = new ArrayList <string> (); Boolean Overwrite = true; // файл файла конфигурации конфигурации. ConfigurationParser cp = new ConfigurationParser (Warnings); Configuration config = cp.parseconfiguration (configfile); defaultshellcallback обращение = new Defaultshellcallback (Overwrite); mybatisgenerator mybatisgenerator = new MybatisGenator (configtack, warnings); static void main (string [] args) throws exection {try {generatorsQlmap GeneratorsQlmap = new GeneratorsQlmap (); GeneratorsQlmap.generator ();} Catch (Exception e) {e.printstackTrace ();}}}}}}}}}}}}Сгенерированный код:
3.4 Использование сгенерированного кода
Вам необходимо скопировать сгенерированный код в сгенерированном проекте в ваш собственный проект. Давайте скопируем классы itempper.java и itempper.xml, элементы и классы itemsexample в наш оригинальный проект.
Методы тестирования в элементах
Пакет cn.edu.hpu.ssm.test; импорт статический org.junit.assert.fail; import java.util.date; import java.util.list; import org.junit.boerfor org.springframework.context.support.classpathxmlapplicationcontext; импорт cn.edu.hpu.ssm.mapper.itemsmapper; import cn.edu.hpu.ssm.po.items; импорт cn.edu.hpu.ssm. Itemppermapper itemsmapper; // аннотация перед вызовом этого метода перед выполнением всех методов испытаний этого класса @beforepublic void setup () Throws Exception {ApplicationContext = new ClassPathxMlapplicationContext ("classPath: Spring/ApplicationContext.xml"); itsemapper = (itempper) ApplicationContext.getBean ("itemsMapper"); void testdeleteByprimarykey () {fail ("еще не реализован");} // вставка @testpublic void testinsert () {items = new Items (); items.setName ("iPhone-5s"); item.SetPrice (3999f); item.setDetail ("Authentic"); items.setpic ("sdasd.jpg"); items.setCreateTime (new Date (); itempper.insert (items);} // Настройка условий @teplex voidexexexexexexexeex upexexex {ItemSexample itemSexample = new itemSexample (); // Создание условий запроса через критерии itemSexample.criteria criteriaia = itemSexample.createCriteria (); criteria.andNameequalto ("TV"); // может вернуть несколько записей списка <Items> lecteMapper.shipbyexakexample (itemSexample); //; для (int i = 0; i <list.size (); i ++) {item It = list.get (i); System.out.println (it.getId ()+":"+it.getName ());}} // Запрос на основе первичного ключа @testpublic void testselectbyprimarykey () {itemes = itemsmapper.selectbyprimarykey (1); System.out.println (items.getname (); testupDateByPrimaryKey () {// Обновление всех полей, вам нужно сначала запросить, а затем обновить элементы = itempper.selectbyprimarykey (1); items.setName ("iPhone"); itemsmapper.updatebyprimarykey (элементы); // Если входящее поле не является пустым, используйте этот метод в обновлениях партии. Сначала нет необходимости запросить, а затем обновить //itemsmapper.updatebyprimarykeyselective(record);}}Выше приведено автоматический автоматический код Mybatis Read Engineering, сгенерированный Mybatis Framework, представленным вам редактором. Я надеюсь, что это будет полезно для всех!
Рекомендуемые чтения от wulin.com:
Mybatis введение Учебное пособие по обучению (I) - Mybatis Quick Start
Углубленный анализ поля типа Blob Mybatis Oracle
Mybatis Practice Dao и Mapper
Динамический SQL и связанный запрос в практике Mybatis