1. getMapper () 인터페이스
분석 : getMapper () interface idpt.class는 인터페이스를 정의하고,
구현되지 않은 메소드 장착. 특별 용어로, 건물을 빌리는 방법은 작은 구성의 ID 속성과 일치해야합니다.
프록시를 통해 : 인터페이스의 구현 클래스 이름을 생성하고, 기본 mybatis에서 selectDeptByno ()라는 이름을 유지하십시오.
강한 유형에 해당합니다
예를 들어
1 단계 : CN.HAPPY.DAO에서 인터페이스를 정의합니다
패키지 CN.HAPPY.DAO; import java.util.list; import CN.HAPPY.ENTITY.DEPT; 공개 인터페이스 idptdao {// 모든보기 ------------ getAllDept는 작은 구성 목록에서 ID와 동일해야합니다 <Dept> getAllDept ();} 2 단계 : IDEPT.XML 구성 소형 구성
분석 : select의 ID 속성은 인터페이스의 인터페이스 메소드 이름과 동일해야합니다. Mapper의 네임 스페이스 속성 패키지 이름은 cn.happy.dao.ideptdao 인터페이스입니다.
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper nestpace = "mapper namespace ="mapper namespace = " id = "getAllDept"resultType = "Cn.Happy.Entity.Dept"> SELECT * from Dept </select> </mapper>
3 단계 : 테스트 클래스
분석 : 모든 정보를 볼 수있는 두 가지 방법이 있습니다
1) session.selectList("cn.happy.dao.IDeptDao.getAllDept");---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) idptdao mapper = session.getMapper (idptdao.class); 구현 클래스와 동일하며 GetMapper는 강력한 유형입니다.
// 01View 모든 정보 getMapper () 인터페이스 클래스의 메소드 이름은 작은 구성 @TestPublic void TestSelectall () {sqlsession session = factory.opensession (); // 약한 유형을 사용합니다. 작은 구성의 ID 이름 ============= String/*List <Dept> list = session.selectList ( "CN.Happy.Dao.ideptDao.getallDept"); for (dept dept : list) {System.out.println (dept.getDeptname ());}*// hets on us on us on rest on the hets methory on the helperne 메모리의 인터페이스 구현 클래스 =============== 강한 유형에 해당하는 // Mapper는 구현 클래스 객체 IDEPTDAO MAPPER = session.getMapper (idptDao.class); list <dept> list = mapper.getAllDept (); for (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"> <! 별칭에 대한 구성-> <taintealiases> <faintealias type = "cn.resultmap.enetity.emp"alias = "emp"/> </> </> </> </> </> </> </> </> </> </<환경 = "개발"> <환경 ID = "개발"> <transactionManager type = "jdbc"/> <dataSource type = "POLLED"> value = "oracle.jdbc.oracledriver" /> <속성 이름 = "url"value = "jdbc : oracle : oracle : thin : @localhost : @localhost : @localhost : 1521 : orcl" /> <property name = "username"value = "sa" /> <property name = "password"1 " /> < /dataSource> < /dataSource> < /환경> 데이터베이스 테이블-> <mappers> <Mapper Resource = "CN/resultMap/enetity/emp.xml"/> </mappers> </configuration>
2. 결과 맵 태그
분석 : 사용 된 시나리오는 엔티티 클래스의 속성이 데이터베이스와 일치하지 않으면 엔티티 클래스 및 데이터베이스의 속성이 일관성이 있어야한다는 것입니다. (전에는 엔터티 클래스를 사용했습니다)
예를 들어 모든 직원 및 제휴 부서를 검색합니다
1 단계 : 인터페이스를 만듭니다
패키지 cn.resultmap.dao; import java.util.list; import cn.resultmap.enetity.emp; public interface iempdao {// 모든 직원 및 제휴 부서를 검색 공개 목록 <ement> getallemps ();} 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 namespace = "cn.resultmap.dao.iempdao"> <resultmap type = "cn.resultmap.enetity.emp"id = "empmap"> <id property = "empid"column = "empid"/> <result property = "empname"column = "empname"/> <emptcity "colmpity"emparty ""emparty ""emparty ""el emparty ""emparty "emperate"emparty "emperate"emparty "emperate"emparty "emperate"empart. " 관점, Association-> <Association Property = "Dept"javatype = "cn.resultmap.enetity.dept"> <result property = "deptname"column = "deptname"/> <result property = "deptno"컬럼 = "deptno"/> </association> </resultmap> <select id = "getallmps"getallmp "select". emp e에서, Dept Deptwhere e.deptno = d.deptno </select> </mapper>
3 단계 : 테스트 클래스
// resultMap : 엔티티의 속성 이름과 테이블의 필드 이름은 resultMap과 일치하도록 보장됩니다. // 룰 플렉스 션을보고하면 작은 구성의 매핑 연관이 구성되어 있는지 확인하십시오. 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 열 추출
분석 : SQL 태그는 작은 구성에서 코드 볼륨을 단순화합니다.
<!-SQL 태그 사용-> <sql id = "columns"> d.deptno, d.deptname </sql> <!-SQL 태그 사용-> <select id = "getAldemps"resultmap = "empmap"> select e.*, <columns "/> in emp e, dept deptno = d.deptno = d.deptno = d.deptno.
4. 별칭 별칭
분석 : 작은 구성에 대한 쓰기로, 작은 구성으로 별명을 참조 할 수 있습니다.
<!-별칭 별칭의 유형의 속성 값을 별칭으로 변경-> <faintealiases> <faultealias type = "cn.resultmap.enetity.emp"alias = "emp"/> </intealiases>
5. 동적 작동
분석 : 동적 SQL을 구현하는 데 사용되는 주요 요소는 다음과 같습니다.
설정 위치를 선택한 경우
예를 들어 베이징 시티의 사람들을 봅니다
1 단계 : 인터페이스
패키지 cn.resultmap.dao; import java.util.list; import cn.resultmap.enetity.emp; public interface iempdao {// 모든 직원 및 제휴 부서를 검색 공개 목록 <ement> getallemps ();}2 단계 : 작은 버전 = "1.0"encoding = "utf-8"?>
<! docType mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namepace = "cn.resultmap.dao.iempdao"> resultmap type = "cn.resultmap." id = "empmap"> <id property = "empid"column = "empid"/> <result property = "empname"column = "empname"/<result property = "empcity"column = "empcity"/> <!-대규모 직원 관점을 가진 한 당사자의 경우-> <Association Property = "Dept"javatype "> enetity.entity.enetity.enetity.enetity.enetity.enetity.netity.netity. 속성 = "deptname"column = "deptname"/> <result property = "deptno"column = "deptno"/> </resultmap> <select id = "getAllemps"resultmap = "empmap"> select e.*, d.* em.deptno = d.deptno </select> <! id = "testallempbuselect"parametertype = "cn.resultmap.enetity.emp"resulttype = "cn.resultmap.enetity.emp"resulttype = "cn.resultmap.enetity.emp"> select * from emp <</if " test = "empname! = null"> 및 empname =#{empname} </if> <if test = "empcity! = null"> 및 empcity =#{empcity} </if> </where> </select> </mapper> 3 단계 : 테스트
// 동적 query @testpublic void testselect () {sqlsession session = factory.opensession (); emp emp = new emp (); // emp.setempname ( "331"); emp.setembcity ( "sh"); list <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 네임 스페이스 = "cn.resultmap.dao.ideptdao"> <resultmap type = "cn.happy.entity.dept"id = "deptresultmap"> <id property = "deptno"column = "deptno"/> <result property = "deptname"column "="deptName "/> </resultmap> resultmap = "deptresultmap"> select d.*, e.* Dept d, emp e. dept <set> <if test = "deptno! = null"> deptno =#{deptno}, </if> <test = "deptname! = null"> deptname =#{deptname}, </if> </set> 여기서 deptno =#{deptno} </mapper> 3 단계 : 테스트
/*** 동적 수정**/@testpublic void testupdate () {sqlsession session = factory.opensession (); 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 () 인터페이스, 결과 맵 태그, 별칭 별칭, SQL 열을 추출하려고 시도한 및 동적 작업에 대한 자세한 설명입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!