Mybatis - отличная структура слоя настойчивости, которая поддерживает простые запросы SQL, сохраненные процедуры и расширенное картирование. Mybatis устраняет ручные настройки почти всех кодов JDBC и параметров и поисковой инкапсуляции набора результатов. Mybatis может использовать простые XML или аннотации для конфигурации и оригинального отображения, отображения интерфейсов и Pojos Java (простые старые объекты Java) в записи в базе данных.
В предыдущей статье я представлю вам учебник по картированию Mybatis One-To-One.
Позвольте мне рассказать вам о знаниях Mybatis. Конкретные детали следующие:
Есть много примеров многих ко многим, таких как отношения между курсом и студентами. Курс может иметь несколько факультативных студентов, а студент также может взять несколько предметов. Отношения между учителями и учениками: учитель имеет несколько учеников, а у ученика есть несколько учителей.
Возьмите отношения между студентами и курсом в качестве примера.
Когда мы создаем таблицы данных, у нас есть два решения:
Первый тип:
При создании таблицы данных студента храните поле иностранного ключа для курса.
При создании таблицы данных курса храните поле иностранного ключа студента.
Но это имеет большой недостаток, то есть, если я хочу удалить таблицу студентов, есть поле внешнего ключа таблицы курса.
Точно так же, когда я хочу удалить таблицу курсов, существуют поля иностранных ключей студенческой таблицы. О, с этим нелегко иметь дело.
Второй тип:
Мы создаем студенческие и курсовые столы и храним их соответствующие поля и записи в двух таблицах.
Другая таблица общей ленты student_course используется в качестве промежуточной таблицы для хранения иностранных ключей для студентов и курса.
Для нас это очень удобно удалить таблицу слов, поэтому мы принимаем это решение.
Сценарии базы данных
-Сопоставление многих-много-удалить базу данных Drop Batabase, если существует mybatis;-Создать базу данных Создать базу данных, если не существует набор символов Mybatis по умолчанию UTF8;-Select Database Использовать mybatis;-Удалить таблицу данных DECT TABLE, если существует студент; PK_SID Первичный ключ (SID)); Create Table Course (CID Int (255), CNAME VARCHAR (32), ограничение PK_CID Первичный ключ (CID)); Создать Table Student_Course (SID Int (255), CID int (255), ограничение PK_SID_CID Первичный ключ (SID, CID), ограничение FK_SID иностранное ключ (SID) Ссылки Студенты (SID), ограничение FK_CID Foreign Key (CID) Курс (CID)); (2, 'ha'); вставьте в курс (cid, cname) значения (1, 'java'); вставьте в курс (cid, cname) значения (2, '. Net'); вставьте в значения student_course (sid, cid); student_course (sid, cid) значения (2,2);
Создайте новый класс many2my.course.java
Пакет Many2my; импорт java.io.serializable; import java.util.arraylist; import java.util.list;/*** Курс*@author Administrator **/ @Suppresswarnings ("Serial") Общедоступный курс. {return cid;} public void setcid (integer cid) {this.cid = cid;} public String getCname () {return cname;} public void setcName (String cname) {this.cname = cname;} public listder <Trade> getStudents () {return void void void setStud (stryctord studentds (strytdentd studentud (sturntud) {} public void void (student> studentud () Студенты;}}Создайте новый класс many2my.student.java
Пакет Many2my; импорт java.io.serializable; импорт java.util.arraylist; import java.util.list;/*** Класс учеников*@author **/ @Suppresswarnings ("Serial") Общественный ученик. Обнаружение Serializable {Private Integer Sid; Private Sname; Private Smipe -List (Private Smipe -Sivide Courses = New Array -LiveList <) (Private Sname; Private Sname; Private Lister -Public Publice -leptrile -levid>; {return sid;} public void setsid (integer sid) {this.sid = sid;} public String getSname () {return sname;} public void setsname (String sname) {this.sname = sname;} public list <cours> getCourses () {return Courses;} public void setCours (upress> us.cours upress> Курсы;}}Создайте новый файл StudentMapper.xml и файл coursemapper.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "outdentmapper"> " type = "many2my.student" id = "StudentMap"> <id property = "sid" column = "sid"/> <result property = "sname" column = "sname"/> <result property = "sname"/> </resultmap> <? xml version = "1.0" encoding = "utf-8"> <! Doctype mapper public "mybatis. 3.0 // en "" http://mybatis.org/dtd/mybatis-3-mapper.dtd "> <mapper namespace =" coursenamespace "> <resultmap type =" many2many.course "id =" coursemap "> <id property =" cid "colund =" cid "/> <result =" cname "cname =" cname "cname =" cname "cname =" cname "cname =" cname "conme"/"cname" c column="cname"/><resultMap><!-- Query the courses you took in "Haha" --><select id="findAllByName" parameterType="string" resultMap="courseMap">select c.cname,c.cid from student s,course c,student_course scwhere s.sid = sc.sid and c.cid = sc.cid and s.sname = #{sname}; </select> </mapper>Создайте новый уровень настойчивости Classcoursedao.java Class
Пакет Many2my; импорт java.util.iterator; import java.util.list; import one2many.student; import org.apache.ibatis.session.sqlsession; импорт org.junit.test; импорт util.mybatisutil; public classcoursedao {/*** Query "haha" и Elective E -name stodcame @*** Query "и Elective E -nective* @return* @throhs Exception*/public list <cous> findallbyname (string name) throws exception {sqlSession sqlSession = null; try {sqlSession = mybatisutil.getSqlSession (); return sqlSession.selectlist ("courseNamespace.findallbyname", name); e;} наконец {mybatisutil.closeSqlSession ();}}@testpublic void testfindallbyname () выбрасывает исключение {StudentCoursedao dao = new StudentCoursedao (); list <cours> courses = dao.findalbyname ("хаха"); {System.out.println (course.getCid ()+":"+course.getCname ());}}}Загрузить файл конфигурации в файле mybatis.cfg.xml
<!-Загрузите файл сопоставления-> <mapper resource = "one2one/cardmapper.xml"/> <mapper resource = "one2one/studentmapper.xml"/> <mapper resource = "one2my/gragemapper.xml"/> <mapper resource = "One2my/Student.xml"/> resource = "many2my/studentmapper.xml"/> <mapper resource = "many2my/coursemapper.xml"/> <mapper resource = "many2my/coursemapper.xml"/> <mapper resource = "many2my/coursemapper.xml"/> <mapper resource = "many2my/coursemapper.xml"/> <mappers>
Вышесказанное является первым учебником по картированию Mybatis с многими-многими, представленными вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!