1. getmapper () интерфейс
Анализ: getMapper () интерфейс idept.class определяет интерфейс,
Монтаж метод, который не реализован. В особых терминах любой метод, который заимствует здание, должен соответствовать атрибуту ID в небольшой конфигурации.
Через прокси: сгенерировать имя класса реализации интерфейса, поддерживать имя $$ dept_abc, selectDeptByno () в базовом mybatis
Это эквивалентно сильному типу
Например
Шаг 1: Определите интерфейс в cn.happy.dao
Пакет cn.happy.dao; import java.util.list; import cn.happy.entity.dept; публичный интерфейс ideptdao {// Просмотреть все ------------ GetallDept должен быть таким же, как и ID в публичном списке небольшого конфигурации <Dept> getalldept ();} Шаг 2: IDEPT.xml Конфигурация Небольшая конфигурация
Анализ: атрибут ID в выборе должен быть таким же, как и имя метода интерфейса в интерфейсе; Имя пакета атрибутов имен -пространство Mapper IS CN.Happy.dao.ideptdao Interface
<? xml version = "1.0" Encoding = "utf-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper.org/dtd/mybatis-3-mapper.dtd " namespace = "cn.happy.dao.ideptdao"> <select id = "getalldept" resultype = "cn.happy.entity.dept"> select * из dept </select> </mapper>
Шаг 3: Тестовый класс
Анализ: Есть два способа просмотра всей информации
1) session.selectlist ("cn.happy.dao.ideptdao.getalldept"); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) ideptdao mapper = session.getmapper (ideptdao.class); эквивалентен классу реализации, GetMapper является сильным типом
// 01VIEW ВСЕ ИНФОРМАЦИЯ GETMAPPER () Имя метода класса интерфейса должно быть таким же, как идентификатор небольшой конфигурации @TestPublic void testSelectall () {SQLSession Session = factory.opensession (); // Слабый тип ======== Имя идентификатора в небольшой конфигурации ============ String/*List <Dept> list = session.selectlist ("cn.happy.dao.ideptdao.getalldept"); для (dept dept: list) {system.out.println (dept.getDeptname ());}*/// getmapper method hiberne hiberne hiberne hibren hibery hibery hibery hiber hibery hibery hibxper hibxpern Класс реализации в памяти ============== Эквивалент сильного типа // Mapper - это объект класса реализации Ideptdao mapper = session.getmapper (ideptdao.class); list <dept> list = mapper.getalldept (); для (Dept Dept: List) {System.out.println (dept.getDeptName ());} Шаг 4: Используйте большую конфигурацию во всем тексту
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype ConfigurationPublic "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <perifulation> <! псевдоним-> <typealiases> <typealias type = "cn.resultmap.enetity.emp" Alias = "EMP"/> </typealiases> <среда default = "Развитие"> <среда идентификатор = "разработка"> <transactionManager = "jdbc"/> <dataSource type = "booled"> <frop nelive = "graver" или "value" или "или" justiver "или" или "justiver" или "или" rideiver "или" или "rideiver" или "или" rideiver "или" или "justiver =" или "или" rideiver "или" illaclec. /> <name = name = "url" value = "jdbc: oracle: thin: @localhost: 1521: orcl" /> <name = "username" value = "sa" /> <name = "password" value = "1" /> < /dataSource> < /ervenery> < /ervintomeS> <!-Файл отображения: Опишите. resource = "cn/resultmap/enetity/emp.xml"/> </mappers> </configuration>
2. ResultMap Tag
Анализ: используемый сценарий заключается в том, что когда свойства класса объектов не соответствуют базе данных, свойства класса объекта и базы данных должны быть последовательными. (Я использовал класс Entity раньше)
Например, ищет всех сотрудников и аффилированных отделов
Шаг 1: Создайте интерфейс
Пакет cn.resultmap.dao; import java.util.list; import cn.resultmap.enetity.emp; public interface iempdao {// retive всех сотрудников и аффилированных отделений. Шаг 2: Настройте свойства в небольшой конфигурации
Анализ: Для одной стороны с большой точки зрения сотрудников, пожалуйста, используйте ассоциацию, чтобы встроить каждый атрибут одной стороны. (Если ассоциация удалена, это основная карта результата)
<? xml version = "1.0" Encoding = "utf-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper.org/dtd/mybatis-3-mapper.dtd " namespace = "cn.resultmap.dao.iempdao"> <resultmap type = "cn.resultmap.enetity.emp" id = "empmap"> <id property = "empid" column = "empid"/> <result property = "empname" column empname "/> <recode empcity"/"empname"/> <! Перспектива, пожалуйста, используйте ассоциацию -> <association property = "dept" javatype = "cn.resultmap.enetity.dept"> <result property = "deptname" column = "deptname"/> <result property = "deptno" column = "deptno"/> </assion> </resultmap> <select id = "getAlls" resultMap ". от Emp E, Dept Dwhere e.deptno = d.deptno </select> </mapper>
Шаг 3: Тестовый класс
// ResultMap: Имя атрибута объекта и имя поля таблицы гарантированно соответствует ResultMap // Если вы сообщаете о Nullexception, см. Настройку сопоставления ассоциации небольшой конфигурации. ResultMap настроен @testpublic void testallemp () {sqlsession session = factory.opensession (); iempdao mapper = session.getmapper (iempdao.class); list <emp> allemps = mappper.getallemps (); for (emp EMP: allemps) {System.out.println (emp.getempname ()+"/t партнерский отдел"+emp.getDept (). getDeptName ());} session.close ();} Шаг 4: Введите небольшие конфигурации в больших конфигурациях
3. Извлечение столбцов SQL
Анализ: TAG SQL упрощает объем кода в небольшой конфигурации
<!-Использование тегов SQL-> <SQL ID = "Columns"> D.Deptno, D.DeptName </sql> <!-Использование тегов SQL-> <select id = "getallemps" resultmap = "empmap"> select e.*, <Include recid = "columns"/> from empe e, dept deptno e.deptno = d. d. d.deptno e.deptno e.deptno e.deptno = d. d. d. d. d. d. d. d. d. d. d.deptno e.deptno = d. d. d. d. d.deptno e.deptno e.deptno e.deptno e.
4. псевдоним псевдоним
Анализ: Напишите на больших конфигурациях, чтобы на псевдоним можно было ссылаться в небольших конфигурациях
<!-Измените значение атрибута типа в конфигурации псевдонима на псевдоним-> <Typealiases> <typealias type = "cn.resultmap.enetity.emp" alias = "emp"/> </typealiases>
5. Динамическая операция
Анализ: основные элементы, используемые для реализации динамического SQL,:
Если выберите (когда, иначе), где установлено
Например, взглянуть на людей в Пекине
Шаг 1: Интерфейс
Пакет cn.resultmap.dao; import java.util.list; import cn.resultmap.enetity.emp; public interface iempdao {// retive всех сотрудников и аффилированных отделений.Шаг 2: Small Version = "1.0" Encoding = "UTF-8"?>
<! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper names pace = "cn.resultmap.dao.iempdao"> <resultmap type = "cn.resultmap.enetity.emp" id = "empmap"> <id property = "empid" column = "empid"/> <result property = "empname" colun = "empname"/> <result property = "empcity" column = "empcity"/> <! javatype = "cn.resultmap.enetity.dept"> <result property = "deptname" column = "deptname"/> <result property = "deptno" column = "deptno"/> </resultmap> <select id = "getallemps" resultmap = "empmap"> select e.*, d e.deptno = d.deptno </select> <!-Динамический запрос запроса-> <select id = "testallempbuselect" parametertype = "cn.resultmap.enetity.emp" resultype = "cn.resultmap.enetity.emp" referfortype = "cn.resultmap.Emp.emp.Emp.emp. empertype =" cn.result. test = "empid! = null"> и empid =#{empid} </if> <if test = "empname! = null"> и empname =#{empname} </if> <if test = "empcity! = null"> и empcity =#{empcity} </if> </where> </select> </select> </select> </select> </select> </select> </select> </selcom Шаг 3: Тест
// Динамический запрос @testpublic void testselect () {sqlSession session = factory.opensession (); emp emp = new emp (); // emp.setempname ("331"); emp.setempcity ("sh"); списки <emp> list = session.selectlist ("cn.resultmap.dao.iempdao.testallempbuselect", emp); for (emp emps: list) {system.out.println (emps.getempname ());} session.close ();} Шаг 4: Введите небольшие конфигурации в больших конфигурациях
Например, изменить информацию отдела
Шаг 1: Интерфейс
Шаг 2: небольшая конфигурация
<? xml version = "1.0" Encoding = "utf-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper.org/dtd/mybatis-3-mapper.dtd " namespace="cn.resultMap.dao.IDeptDao"><resultMap type="cn.happy.entity.Dept" id="deptResultMap"><id property="deptNo" column="deptNo"/><result property="deptName" column="deptName"/></resultMap><select id="getAllDept" ResultMap = "depTresultMap"> select d.*, e.* из dept d, emp ehy d.deptno = e.deptno и d.deptno =#{deptno} </select> <!-Модифицируйте динамический запрос-> <select id = "testupdate" parametertype = "int" refortpe = "cn.resultmapemapemaptmapemate. DEPT <SET> <if test = "deptno! = null"> deptno =#{deptno}, </if> <if test = "deptname! = null"> deptname =#{deptname}, </if> </set> where deptno =#{deptno} </selce> </if> </set> deptno =#{deptno} </select> </if> </set> deptno =#{deptno} </if> </set> deptno =# Шаг 3: Тест
/*** Динамическая модификация**/@testpublic void testupdate () {sqlSession session = factory.opensession (); dept dept = new dept (); dept.setdeptname ("финансовый отдел"); dept.setDeptno (1); int count = session.update ("cn.resultmap.dao.ideptdao.testupdate", dept); session.commit (); system.out.println (count); session.close ();}Выше приведено подробное объяснение интерфейса Mybatis 'getMapper (), тега ResultMap, псевдоним, попытки извлечь столбцы SQL и динамические операции. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!