Интеграция весны и mybatis
Идеи интеграции
Весна должна управлять SQLSessionFactory через Синглтон.
Spring и Mybatis интегрируются для создания прокси -объектов и используют SQLSessionFactory для создания SQLSession. (Интеграция Spring и Mybatis автоматически завершена)
Участниками упорного слоя необходимо управлять весной.
Интегрировать окружающую среду
Создайте новый проект Java (близко к фактической разработанной инженерной структуре)
Пакет JAR:
Mybatis3.2.7 Jar Package
Spring3.2.0 Jar Package
Mybatis и Spring Integration Package: Ранняя ибатис и весенняя интеграция были предоставлены к весне, и теперь Mybatis и весенняя интеграция обеспечивается Mybatis.
Все пакеты JAR (включая SpringMVC)
Инженерная структура
Шаг 1: интегрировать и настраивать SQLSessionFactory
Настройте SQLSessionFactory и источник данных в ApplicationContext.xml
SQLSessionFactory находится под пакетом интеграции Mybatis и Spring.
<!-Загрузка файла конфигурации-> <context: property-placeholder location = "classpath: db.properties" /> <!-источник данных, используйте dbcp-> <bean id = "dataSource" Drest Method = "Close"> <name = "driverclassname" value = "$ {jdbc.driver}" /> <и имя свойства = "url" value = "$ {jdbc.url}" /> <name = "username" value = "$ {jdbc.username}" /> <name = "password" value = "$ {jdbc.password}" /> <property name = "maxactive" value = "10" /> name = "maxidle" value = "5" /> < /> < /beans> < /> <! -> <Bean id = "sqlSessionFactory"> <!-Загрузите файл конфигурации mybatis-> <name = "configlocation" value = "mybatis /sqlmapconfig.xml" /> <!-Источник данных-> name = "dataSource" ref = dataSource " /> < /bean>Оригинальная разработка (после интеграции с пружиной)
sqlmap/user.xml
Загружать user.xml в sqlmapconfig.xml
DAO (реализовать наследование класса SQLSessionDaoSupport)
Ранее класс реализации интерфейса DAO, необходимый для введения SQLSessOinfactory и внедрения его до весны.
Здесь мы используем Spring, чтобы объявить метод конфигурации и настроить бобы DAO:
Let userDaoImpl реализовать класс наследство SqlSessionDaoSupport
Настройка DAO
Настройте интерфейс DAO в ApplicationContext.xml
<!-Оригинальный интерфейс DAO-> <Bean id = "userDao"> <name = "sqlSessionFactory" ref = "sqlSessionFactory"/> </bean>
Процедуры тестирования
source_folder/userdaoimpltest.javapublic class userdaoimpltest {private ApplicationContext ApplicationContext; // Получить контейнер пружины в методе настройки @beforePublic void setup () throws Exception {ApplicationContext = new ClassPathxMlApplicationContext ("classPath: Spring/Application.xml"); Throws Exception {userDao userDao = (userDao) ApplicationContext.getBean ("userDao"); // позвонить пользователю пользователь пользователь = userDao.finduserbyid (1); System.out.println (user);}}Разработка агента Mapper
Usermapper.xml и usermapper.java
Просто скопируйте предыдущий проект и удалите путь пакета.
Создать прокси -объекты через MapperFactoryBean
Поскольку UserMapper не является типом интерфейса, вам необходимо использовать MapperFactoryBean для генерации типа интерфейса
Проблема с этим методом:
Он должен быть настроен для каждого Mapper, неприятный.
Сканирование Mapper через MappersCannerConfigurer (рекомендуется)
* После настройки пути сканирования Mapper через свойство BasePackage нет необходимости настраивать путь сканирования в sqlmapperconfig.xml.
Свойство SQLSessionFactoryBeanName используется здесь, потому что, если настройка свойства SQLSessionFactory, файл конфигурации базы данных и конфигурация источника данных не будет загружена сначала (DB.Properties)
Тестовый код
Обратная инженерия
MyBaits требует, чтобы программисты сами писали заявления SQL. Mybatis Official предоставляет обратную инженерию для автоматического генерации требуемого кода для выполнения Mybatis (mapper.java, mapper.xml, po ..)
В реальной разработке предприятия обычно используемый метод обратной инженерии: генерировать код Java из -за таблицы базы данных.
Скачать обратную инженерию
Как использовать (может использовать) запустить реверс -инженерию
Рекомендуется использовать метод программы Java и не полагаться на инструменты разработки.
Сгенерировать файлы конфигурации кода (4 места, которые необходимо изменить)
Место, где генерируется класс PO: cn.itcast.ssm.po
Место, где генерируется файл сопоставления Mapper: cn.itcast.ssm.mapper
Расположение сгенерированного интерфейса Mapper: cn.itcast.ssm.mapper
Укажите таблицу баз данных:
<Таблица TABLENAME = "ETEPS"> </table> <Table TableName = "Orders"> </table> <table TableName = "OrderDetail"> </table> <Table TableName = "пользователь"> </table> <? xml version = "1.0" Encoding = "utf-8"? Конфигурация генератора 1.0 // en "" http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd "> <generatorConfiguration> <context id =" testtables " name = "PuppressallComments" value = "true"/> </commentgenerator> <!-Информация о подключении к базе данных: класс драйвера, адрес подключения, имя пользователя, пароль-> <jdbcconnection driverclass = "com.mysql.jdbc.driver" connecturl = "jdbc: mysql: // localhost: 3306/mybatis" jdbc: /// localhost: 3306/mybatis "mybatis" mybatis "mybatis" mybatis "jdbc: /// localhost: 3306/mybatis" mybatis "jdbc: /// localhost: 3306/mybatis". userId="root"password="mysql"></jdbcConnection><!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg"password="yycg"></jdbcConnection> --><!-- По умолчанию False, JDBC десятичные и числовые типы разрешаются до целочисленного. Когда это правда, десятичные и численные типы JDBC решаются до java.math.bigdecimal-> <javatyperesolver> <property name = "forcebigdecimals" value = "false" /> < /javatyperesolver> <!- TargetPackage = "cn.itcast.ssm.po" targetProject = "./ src"> <!-inablyBpackages: использовать ли схему в качестве суффикса пакета-> <name = "enablesBpackages" = "false" /> <!-Пробелы до и после значения, возвращаемого из DataBase,-> «СВЕДЕНИЕ». /> </javamodelgenerator> <!-TargetProject: где генерируется файл карты Mapper-> <sqlMapGenerator TargetPackage = "cn.itcast.ssm.mapper" /> </sqlmapgenerator> <!-TargetPackage: Расположение генерации интерфейса Mapper-> <javaclientgenerator type = "xmlmapper" targetPackage = "cn.itcast.ssm.mapper" TargetProject = "./ src"> <!-enablesubpackages: будь то использование Schema as Sufficks of Packex-> enables inables inables inables inables inables inables inables inables value = "false"/> </javaclientgenerator> <!-Укажите таблицу базы данных-> <Таблица TableName = "eptions"> </table> <table tableName = "orders"> </table> <table TableName = "OrderDetail"> </table> <Table TableMame = "Пользователь"> </table> </context> </generatorConfigure
Выполнить генератор
Сгенерированный код
Используйте сгенерированный код
Вам необходимо скопировать сгенерированный код в сгенерированном проекте в ваш собственный проект.
Методы тестирования в элементах
// Пользовательский запрос условия @testpublic void testselectbyexample () {itemSexample itemSexample = new itemSexample (); // Конструировать условия запроса через критерии itemSexample.criteria criteria = itemSexample.createCriteria (); Criteria.AndNameequalto ("Notebook 3"); // может вернуть записи <); itempper.selectbyexample (itemSexample); System.out.println (list);} // Query @testpublic void на основе первичного ключа testselectbyprimarykey () {items = itempper.selectbyprimprimarykey (1); System.out.println (itemper);}//insertpublepub Items = new ements (); item.setname ("mobile"); items.setprice (999f); itempper.insert (items);} // Обновление данных @testpublic void testupdatebyprimarykey () {// Обновление всех полей, вам нужно запрашивать его сначала, а затем обновить элементы items = itempper.selectbrimarypemare (1); CUP "); itempper.UpdateByprimaryKey (items); // Если входящее поле не является пустым, используйте этот метод в обновлениях партии. Сначала нет необходимости запросить, а затем обновить //itemsmapper.updatebyprimarykeyselective(record);}Вышеуказанное представляет собой краткий анализ интеграции и обратной инженерии Spring и Mybatis, который, я надеюсь, будет вам полезен. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!