๊ฐ๋ฐ์๋๊ตฌ-ModelExtractor - CompanyM - code์์ interface/XML ๋ถ๋ฌธ์ ํ์ฉ.
1. CompanyController.java์์ mybatis ์กฐํ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผํจ.
์์ querydsl ๊ธฐ๋ฅ์์ ์กฐํ๋ถ๋ถ์ ๊ฐ์ ธ์์ ์ฝ๊ฐ์ ๋ณ๊ฒฝ์ ํด์ค.
*์ ์๊ฐ ์๋ ํจ์๋ ํด๋์ค๋ alt+Enter ๋จ์ถํค๋ก ์์ฑํ๋ค.
control+alter+b = ์ ์๋ ํด๋์ค ํ์ผ๋ก ์ด๋(์ธํ ๋ฆฌ์ ์ด ๊ธฐ์ค)
// value= "/mybatis"๋ก ๋ณ๊ฒฝ
@RequestMapping(value = "/myBatis", method = RequestMethod.GET, produces = APPLICATION_JSON)
@ApiImplicitParams({
@ApiImplicitParam(name = "company", value = "ํ์ฌ๋ช
", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "ceo", value = "๋ํ์", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "bizno", value = "์ฌ์
์๋ฒํธ", dataType = "String", paramType = "query")
})
//๋ฉ์๋๋ช
๋ณ๊ฒฝ
//mybatis,jap ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฟผ๋ฆฌ๋ฌธ ํํ์ ๊ทธ๋๋ก ๊ฐ์ ธ๋ค ์ฐ๋๊ฒ ์ข๋ค.
public Responses.ListResponse list3(RequestParams<Company> requestParams) {
//getByQueryDsl -> selectBy:๋จ์ ์กฐํ๊ฐ ์๋ where์กฐ๊ฑด์ ๊ฐ๋ฏธ
// service๋จ์ ์์ฑ์ ํด์ผํจ.
List<Company> list = companyService.selectBy(requestParams); //companyservice๊ฐ์๊ธฐ๋๋ฌธ์ ์๋์ผ๋ก ์์ฑ
return Responses.ListResponse.of(list);
}
2. companyํจํค์ง์ CompanyMapper ์ธํฐํ์ด์ค๋ฅผ ์์ฑ, MyBatisMapper๋ฅผ ์์๋ฐ๋๋ค.
์ฌ๊ธฐ์ ์ปจํธ๋กค๋ฌ์์ ์ ์๋์ง ์์๋ selectBy๊ฐ์ฒด๋ฅผ ์์ฑ.
// mybatismapper ์์ ์ถ๊ฐ
public interface CompanyMapper extends MyBatisMapper {
List<Company> selectBy(String company);
// resourceํด๋์ edu.axboot.domain.company ๊ฒฝ๋ก๋ฅผ ๋ง๋ค๊ณ
// company์ CompanyMapper.xml ์ถ๊ฐ.
}
3. CompanyService.java์ selectByํจ์๋ฅผ ์ ์ ํด์ค
//selectBy new๋ฉ์๋ ์์ฑ
public List<Company> selectBy(RequestParams<Company> requestParams) {
// ๋ฐ์ ํ๋ผ๋ฏธํฐ๊ฐ ์ถ๊ฐ
String company = requestParams.getString("company", "");
String ceo = requestParams.getString("ceo", "");
String bizno = requestParams.getString("bizno", "");
//copanyMapper์ selectBy๋ฅผ ์์ฑ.
List<Company> companyList = this.companyMapper.selectBy(company); //ํ์ฌ๋ช
์ผ๋ก ๊ฒ์ํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด
return companyList;
}
4. ๋งตํผ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ ์ฉ ์ํค๊ธฐ ์ํด resource ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ mapper.xml ํ์ผ์ ์กฐํ๊ธฐ๋ฅ ์ฟผ๋ฆฌ๋ฅผ ์์ค์ฝ๋๋ฅผ ๋ง๋ฆ.
(resource-edu-axboot-domain-company-companyMapper.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="edu.axboot.domain.companyM.CompanyMapper">
<!-- ์ธํฐํ์ด์ค ์์ฑ ๋ช
์นญ๊ณผ id ๋ช
์นญ์ด ๋ฐ๋์ ๋์ผํด์ผํจ.
resultType์ ์๋์ ์ผ๋ก ์ด๋ฆ์ด ์์ฑ๋ ๊ฒ์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ.
Listํ์
์ด company/ namespace ๋ ๊ฒฝ๋ก๋ช
๊ณผ ๋๊ฐ์ด-->
<select id="selecyBy" resultType="company" parameterType="String" statementType="PREPARED">
SELECT
ID AS id,
COMPANY_NM AS companyNm,
CEO AS ceo,
BIZNO AS bizno,
TEL AS tel,
ZIP AS zip,
ADDRESS AS address,
ADDRESS_DETAIL AS addressDetail,
EMAIL AS email,
REMARK AS remark,
USE_YN AS useYn
FROM
COMPANY_M
</select>
</mapper>
* Namespace๋ ์ system์์ ์ ์ผํด์ผํ๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ ์กฐํ๋ฅผ ํด๋ณด๋ parameterType="String"์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์๋ค.
๊ทธ๋์ parameterType์ company๊ฐ์ฒด๋ก ๋ณ๊ฒฝ์ ํ์๋ค.
insert/update/delete ๊ธฐ๋ฅ ์ถ๊ฐ
*๋ฆฌํฉํฐ : shift+F6 ํค ๋์์ ๋ณ์ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ.
1. CompanyController.java
@RequestMapping(value = "/MyBatis", method = {RequestMethod.PUT}, produces = APPLICATION_JSON)
public ApiResponse save3(@RequestBody List<Company> request) {
companyService.saveByMyBatis(request);
return ok();
}
2. CompanyService.java
saveByMyBatis์ insert/update/delete ์กฐ๊ฑด์ถ๊ฐ
public void saveByMyBatis(List<Company> request) {
for (Company company: request) {
if (company.isCreated()) {
this.companyMapper.insert(company);
} else if (company.isModified()) {
this.companyMapper.update(company);
} else if (company.isDeleted()) {
this.companyMapper.delete(company);
}
}
}
3. Mapper์ ์์ฑ
// mybatismapper ์์ ์ถ๊ฐ
public interface CompanyMapper extends MyBatisMapper {
// List<Company> selectBy(String company);
List<Company> selectBy(Company company);
void insert(Company company);
void update(Company company);
void delete(Company company);
// resourceํด๋์ edu.axboot.domain.company ๊ฒฝ๋ก๋ฅผ ๋ง๋ค๊ณ
// company์ CompanyMapper.xml ์ถ๊ฐ.
}
4. CompanyMapper.xml์ ์ฟผ๋ฆฌ๋ฌธ ์ถ๊ฐ
<insert id="insert" parameterType="company" statementType="PREPARED">
INSERT INTO COMPANY_M (
COMPANY_NM,
CEO,
BIZNO,
TEL,
ZIP,
ADDRESS,
ADDRESS_DETAIL,
EMAIL,
REMARK,
USE_YN
) VALUES (
#{companyNm},
#{ceo},
#{bizno},
#{tel},
#{zip},
#{address},
#{addressDetail},
#{email},
#{remark},
#{useYn}
)
</insert>
<update id="update" parameterType="company" statementType="PREPARED">
UPDATE COMPANY_M
SET
COMPANY_NM = #{companyNm},
CEO = #{ceo},
BIZNO = #{bizno},
TEL = #{tel},
ZIP = #{zip},
ADDRESS = #{address},
ADDRESS_DETAIL = #{addressDetail},
EMAIL = #{email},
REMARK = #{remark},
USE_YN = #{useYn}
WHERE
ID = #{id}
</update>
<delete id="delete" parameterType="company" statementType="PREPARED">
DELETE FROM
COMPANY_M
WHERE
ID = #{id}
</delete>
'Programming๐ฉ๐ปโ๐ป > AxBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Banner / Logging / Excel download (0) | 2021.04.30 |
---|---|
jsfiddle (0) | 2021.04.23 |
*์ค์ ๋๋ฒ๊น , ๋จ์ํ ์คํธ (0) | 2021.04.22 |
QueryDSL (0) | 2021.04.19 |
Mac ๋งฅ) Maven ์ค์น ๋ฐ ํ๊ฒฝ ๋ณ์ ์ค์ (0) | 2021.04.19 |