Java API
Теперь, когда вы знаете, как настроить mybatis и создать файлы отображения, вы готовы улучшить свои навыки. Java API Mybatis - это то, где вы пожинаете предпринятые вами усилия. Как вы увидите, по сравнению с JDBC, Mybatis значительно упрощает ваш код и делает его простым, легким для понимания и обслуживания. Mybatis 3 ввел много важных улучшений, чтобы улучшить картирование SQL.
Mybatis 3 построен на всеобъемлющем и мощном API конфигурации Java. Этот API конфигурации является основой конфигурации MyBatis на основе XML, а также является основой новой конфигурации на основе аннотаций.
Аннотации обеспечивают простой способ реализации простых картирования операторов, не вводя много накладных расходов.
Соответствующие цели и метки общих аннотаций Mybatis показаны в таблице:
| аннотация | Цель | Соответствующие теги XML |
| @Cachenamespace | добрый | <cache> |
| @Cachenamespaceref | добрый | <Cacheref> |
| @Results | метод | <Результат -карт> |
| @Результат | метод | <Результат> <id> |
| @Один | метод | <ассоциация> |
| @Много | метод | <Коллекция> |
@Вставлять @Обновлять @Удалить | метод | <вставка> <Обновление> <leadete> |
@Insertprovider @UpdateProvider @Deleteprovider @SelectProvider | метод | <вставка> <Обновление> <leadete> <select> Позволяет создать динамический SQL |
| @Param | параметр | N/a |
| @Параметры | метод | Свойства картирования заявлений |
| @выбирать | метод | <select> |
Значение общих аннотаций мибати:
@Cachenamespace (размер = 512): определяет использование встроенных кэшей в этом пространстве имен
@Options (usecache = true, flushcache = false, timeout = 10000): переключатель опции для некоторых запросов
@Param ("id"): глобально квалифицированный псевдоним, позиция параметров запроса в операторе SQL больше не в форме 0, 1, 2, 3 ..., последовательные подписки, а соответствующее имя, которое здесь определена.
@Results - это массив с @Result в качестве элемента. @Result представляет собой отношения отображения одного поля атрибута. id = true означает, что поле ID является основным ключом. Mybatis даст необходимую оптимизацию во время запроса. Все @Results в массиве образуют сопоставление одной записи, в то время как @Results - это коллекция одной записи. Кроме того, существует очень важная аннотация @ResultMap, которая похожа на @Results
@Select ("Query Opport"), @Insert ("Add Apport"), @Update ("upport") и @Delete ("Удалить оператор") Представляют операции для запроса, добавления, обновления и удаления данных.
Далее, давайте посмотрим на использование аннотаций.
(1) Использование регулярных аннотаций (не требуется пользовательская карта):
Пример 1
// Добавить автор @Insert ("insertInto Автор (имя пользователя, пароль, электронная почта, адрес, телефон)" +"значения (#{username},#{пароль},#{email},#{адрес},#{phone})") @Options (USEGENERTEKEYS = true, keyproperty = "Authord", floundCache = false, false = 1000000); // DELETE AUTUR @Delete ("DELETEFROM AUTUR, где id = #{id}")@options (flushCache = false, timeout = 10000) public voiddeleteAuthor (@param ("id") int id); Совет: вам нужно зарегистрировать Mapper, прежде чем вызовать метод:
sessionFactory.getConfiguration (). AddMapper (testinteger.class);
Или Configure <papper> </mapper> в mapper.xml
После регистрации принесите интерфейс Mapper, чтобы вызывать нормально
(2) Если вам нужно настроить карту, вы можете использовать аннотацию результатов:
Пример 2
// Запросить всю информацию о авторе @select ("select * from Author") @options (flushCache = false, timeout = 10000, usecache = true) @Results (value = {@Result (id = true, column = "id", property = "id"), @Result (property = "username", column = "useranam @Result (property = "email", column = "email"), @Result (property = "address", column = "address"), @result (property = "phone", column = "phone")}) Общественный список <ator> findauthors (); // Запрос информации о определенном авторе @select ("select * from wher =##id} @) = 10000, usecache = true) @results (value = {@result (id = true, column = "id", property = "id"), @result (property = "username", column = "username"), @Result (Proportice = "password", column = "password"), @Result (property = ", COMNAL", COMNUL @Result (property = "phone", column = "phone")}) публичный автор findauthorbyid (@param ("id") intid); Если структура набора результатов, возвращаемая несколькими запросами, одинакова, вы можете использовать @ResultMap для определения структуры возврата. Используя эту аннотацию, вам придется настроить карту результата в файле отображения. @ResultMap (value = "name") - это идентификатор картирования в файле отображения. Таким образом, вам необходимо зарегистрировать файл конфигурации в <PAPPER> и использовать @ResultMap в интерфейсе, чтобы ссылаться на идентификатор ResultMap в файле конфигурации следующим образом:
Пример 3
Selfmapper.xml
// Каждая строка записи - это hashmap <resultmaptype = "java.util.hashmap" id = "selfmap"> <resultProperty = "n" column = "city_name"/> ....... </resultMap>
Selfmapper.java:
@Select ("select a.id, b.name, c.state из ............")@resultmap (value = "selfmap") public list <hashmap> sel (); // Обратите внимание, что возвращенная коллекция списка Полный случай
Код интерфейса
пакет com.obtk.dao; импортировать java.util.hashmap; импортировать java.util.list; Импорт org.apache.ibatis.annotation.insert; Импорт org.apache.ibatis.annotations.options; Импорт org.apache.ibatis.annotations.results; Импорт org.apache.ibatis.annotations.results; Импорт org.apache.ibatis.annotation.select; Импорт com.obtk.entitys.studententity; Общедоступный интерфейс istudentdao {@insert ("вставьте в студент (stuname, пол, возраст, адрес, deptidd)"+ "значения (#{stuname},#{пол},#{age},#{адрес},#{deptid})") @Option stu); @Select ("select * из студента, где stuid =#{stuid}") @results (// до тех пор, пока значение свойства, которое не согласуется с именем столбца, value = {@result (column = "gender", property = "sex")}) Querybyid (integer stuid); @Select ("select * из студента, где gender =#{qqq} и address =#{area}") @results (// до тех пор, пока значение свойства конфигурации = {@result (column = "gender", property = "sex")}) list <dupchenentity> querybymany (hashmap themap); // Конфигурация аннотации Universal Association @Select ("SELECT * из внутреннего участия Студента s Департамент D" +"ON S.DeptIdd = D.DeptId" +"где s.gender =#{sex}" +"и d.departname =#{deptname}") список <hashmap> Querybyqnn (hashmap the the); } Случай 1 Запрос объекта
пакет com.obtk.test; импорт org.apache.ibatis.session.sqlsession; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт com.obtk.dao.istudentdao; Импорт com.obtk.entitys.studententity; импорт com.obtk.utils.mybatisutil; открытый класс AnnoSelectone {public static void main (string [] args) {sqlSession session = null; SQLSessionFactory Factory = NULL; try {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // связывать конфигурацию SQL в интерфейсе с файлом конфигурации Core Failcory.getConfiguration (). AddMapper (istudentdao.class); Istudentdao studao = session.getmapper (istudentdao.class); StudentEntity Stu = Studao.Querybyid (129); System.out.println (stu.getStuname ()+","+stu.getSex ()+","+stu.getAddress ()+","+stu.getStuid ()); } catch (Exception e) {e.printstackTrace (); } наконец {mybatisutil.closesession (); }}} Случай 2 пройти несколько параметров и запрос нескольких объектов
пакет com.obtk.test; импортировать java.util.hashmap; импортировать java.util.list; импортировать java.util.map; импорт org.apache.ibatis.session.sqlsession; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт com.obtk.dao.istudentdao; Импорт com.obtk.entitys.studententity; импорт com.obtk.utils.mybatisutil; открытый класс AnnoSelectmany {public static void main (string [] args) {sqlSession session = null; SQLSessionFactory Factory = NULL; try {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // связывать конфигурацию SQL в интерфейсе с файлом конфигурации Core Failcory.getConfiguration (). AddMapper (istudentdao.class); Istudentdao studao = session.getmapper (istudentdao.class); HashMap Parammap = new HashMap (); parammap.put ("qqq", "мужчина"); parammap.put («область», «общежитие студентов»); Список <TradeTity> stulist = studao.querybymany (parammap); для (StudentEntity Stu: Stulist) {System.out.println (stu.getStuname ()+","+stu.getSex ()+","+stu.getAddress ()+","+stu.getStuid ()); }} catch (Exception e) {e.printstackTrace (); } наконец {mybatisutil.closesession (); }}} Случай 3 добавить объект
пакет com.obtk.test; импорт org.apache.ibatis.session.sqlsession; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт com.obtk.dao.istudentdao; Импорт com.obtk.entitys.studententity; импорт com.obtk.utils.mybatisutil; открытый класс Annosavetest {public static void main (string [] args) {sqlSession session = null; SQLSessionFactory Factory = NULL; try {session = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // Связано конфигурация SQL в интерфейсе с файлом конфигурации Core Fail.getConfiguration (). AddMapper (iStudentDao.class); Istudentdao studao = session.getmapper (istudentdao.class); Студент Stu = New StudentEntity («Testc#», «Мужчина», 21, «Плутон»); stu.setDeptIdd (10); int result = studao.saveOne (stu); session.commit (); System.out.println ("Сохранить успешно:"+stu.getStuid ()); } catch (Exception e) {e.printstackTrace (); } наконец {mybatisutil.closesession (); }}}Случай 4 Использование HashMap для запроса ассоциации
пакет com.obtk.test; импортировать java.util.hashmap; импортировать java.util.list; импортировать java.util.map; импорт org.apache.ibatis.session.sqlsession; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт com.obtk.dao.istudentdao; Импорт com.obtk.entitys.studententity; импорт com.obtk.utils.mybatisutil; открытый класс annojoinqnn {public static void main (string [] args) {sqlSession session = null; SQLSessionFactory Factory = NULL; Попробуйте {// 4. Получить сеанс сеанса = mybatisutil.getSession (); factory = mybatisutil.getFactory (); // связывать конфигурацию SQL в интерфейсе с файлом конфигурации Core Failcory.getConfiguration (). AddMapper (istudentdao.class); Istudentdao studao = session.getmapper (istudentdao.class); HashMap Parammap = new HashMap (); parammap.put («секс», «мужчина»); parammap.put ("deptname", "Computer System"); // 5. Список операторов выполнения <HashMap> stulist = studao.querybyqnn (parammap); для (hashmap theobj: stulist) {system.out.println (theobj.get ("stuid")+","+theobj.get ("пол")+","+theobj.get ("Stuname")+","+theobj.get ("departaname"); }} catch (Exception e) {e.printstackTrace (); } наконец {mybatisutil.closesession (); }}}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.