Mybatis의 SQL 문장 재사용
mapper.xml 간 공용
프로젝트 중 아마도 우리는 sql 문장이 여러 개의 조회, 증가 등 문장에 사용되는 상황을 만나게 될 것이다. 어떻게 게으름을 피우는가. sql 복용은 의심할 여지없이 좋은 선택이다
여기에는 간단한 시범만 제공된다.
만약 단일 테이블 조회일 뿐, 공용을 원하는 sql는 같은 마퍼에만 나타날 것입니다.xml 파일에서 직접
<mapper namespace="XXXXX"></mapper>
아래 업무 코드
<sql id="unitSql">
a.userId,a.legalCode,legalName,
bidderCodeType,legalRole,
licenseNo,DATE_FORMAT(licenseEndDate,"%Y-%m-%d") AS licenseEndDate,
taxCertNo,DATE_FORMAT(taxCertEndDate,"%Y-%m-%d") AS taxCertEndDate,
localTaxCertNo,DATE_FORMAT(localTaxCertEndDate,"%Y-%m-%d") AS localTaxCertEndDate,
organNo,DATE_FORMAT(organCertEndDate,"%Y-%m-%d") AS organCertEndDate,
legalRepresent,legalType,
perresentPhone,legalIndustary,creditRate,
countryRegion,legalUnitAddress,regionCode,registerProvince,
a.regCapital,a.regCapCurRency,a.regUnit,
registerCity,registerCounty,basicBank,basicBranchBank,
basicAccountNo,basicAccountName,legalContact,legalContactPhone,
legalContactAddress,legalWeb,legalZipCode,legalEmail,
legalStatus
</sql>
그리고 인용
<select id="getTenderAgentById" parameterType="String" resultType="Map">
select <include refid="unitSql"/>, -- ,refid sql id
b.auditOpinion,b.createUser,
b.createTime,
b.lastUpdateUser,
b.lastUpdateTime,
b.disabled,b.infoStatus
from P_legalUnit a, P_tenderAgent b
where b.userId=#{userId} AND a.userId = b.userId AND b.disabled='0'
</select>
만약 연표 조회라면, 우리는 ql 문장이 여러 개의 마퍼에 의해 사용되기를 희망할 가능성이 매우 높다.xml 인용 방법은 간단합니다.우리는 마퍼를 새로 만들 수 있다.xml 파일 (물론, 이 mapper.xml은 당신의 스캐닝 경로에서 설명할 필요가 없습니다.공통으로 이름을 짓다.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="common">
<sql id="common.unitSql">
a.userId,a.legalCode,legalName,
bidderCodeType,legalRole,
licenseNo,DATE_FORMAT(licenseEndDate,"%Y-%m-%d") AS licenseEndDate,
taxCertNo,DATE_FORMAT(taxCertEndDate,"%Y-%m-%d") AS taxCertEndDate,
localTaxCertNo,DATE_FORMAT(localTaxCertEndDate,"%Y-%m-%d") AS localTaxCertEndDate,
organNo,DATE_FORMAT(organCertEndDate,"%Y-%m-%d") AS organCertEndDate,
legalRepresent,legalType,
perresentPhone,legalIndustary,creditRate,
countryRegion,legalUnitAddress,regionCode,registerProvince,
a.regCapital,a.regCapCurRency,a.regUnit,
registerCity,registerCounty,basicBank,basicBranchBank,
basicAccountNo,basicAccountName,legalContact,legalContactPhone,
legalContactAddress,legalWeb,legalZipCode,legalEmail,
legalStatus
</sql>
</mappper>
다른 마퍼에서.xml 파일 참조
<select id="getTenderAgentById" parameterType="String" resultType="Map">
select <include refid="common.unitSql"/>, -- ,refid sql id
b.auditOpinion,b.createUser,
b.createTime,
b.lastUpdateUser,
b.lastUpdateTime,
b.disabled,b.infoStatus
from P_legalUnit a, P_tenderAgent b
where b.userId=#{userId} AND a.userId = b.userId AND b.disabled='0'
</select>
==주: 왜 내 파일 이름이common으로 바뀌어야 하는지.xml 및 id도 일반적입니다.유닛 Sql은요?이것은 후기 유지보수의 편의를 위해서입니다. 이렇게 하면 공유된 sql가 어느 파일에 있는지 쉽게 찾을 수 있습니다==위에서 말한 것은 편집자가 여러분께 소개한 Mybatis의 SQL 문장 복용입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 회답할 것입니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL/마이바티스 | 동적 쿼리 사용A라는 서비스에 해당하는 테이블을 조인하고 조회하는 데 사용됩니다. 나중에 공통화를 위해 B 및 C 서비스도 추가됩니다. A, B, C 서비스는 모두 단일 쿼리에서 작동할 수 있도록 공통화되어야 합니다. 테이블에 각...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.