이제 maaper에 sql문을 써보자!
나는 어떤 sql문을 쓸거냐면,
1. <select>문을 쓸거고,
가지고 있는 lprod_id중에서 제일 큰 id를 찾을 거야.
2.<select>문을 쓸거고,
lprod_gu 중복을 못하도록, 같은 gu인 결과 갯수를 구해볼거야.
3.<insert>문을 사용해서,
1번에서 구한 id다음 번호,
2번에서 구한 중복되지 않는 gu,
입력받은 nm을 이용하여 insert 할 것이다.
------------------------------------------------------------------------------------------------------
1. <sqlMap> 탭을 여는데,
2. namespace를 정해준다.
namespace는 mapper를 구분하는데 사용될 수 있으므로 새로 만들때 이름을 다시 설정해주는것이 좋다.
(class 이름 같은 느낌....id같은 느낌....적인 느낌....하하하)
.3 그리고 쿼리문에 따라 탭을 열고 적는다.
그럼 완성~!
<?xml version="1.0" encoding="UTF-8"?>
<!--
이 문서는 iBatis에서 처리할 SQL문을 작성하는 무선입니다.
-->
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EM"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Jdbc">
<select id="selectMaxId" resultClass="int">
select max(lprod_id) maxId from lprod
</select>
<select id="getLprodCount" parameterClass="String" resultClass="int">
select count(*) cnt from lprod where lprod_gu = #lprod_gu#
</select>
<insert id="insertLprod" parameterClass="lprodVo">
insert into lprod (lprod_id, lprod_gu, lprod_nm)
values( #lprod_id#, #lprod_gu#, #lprod_nm# )
</insert>
</sqlMap>
그런데 sql탭 안에 있는 parameterClass랑 resultClass가 필요할 때가 있고 그렇지 않을 때가 있다.
1. parameterClass는 파라미터로 들어갈 값이 있으면 넣고, 아니면 없다.
iBatis는 파라미터로 받는 값의 형만 써주고 변수는 쓰지 않는다.
파라미터로 받은 데이터는 ##사이에 써준다.
2. resultClass는 select문의 결과를 받는 것이다. 즉, select문에 쓰인다.
결과를 받을 때 여러개가 있다면 VO형으로만 받으면 여러개를 받을 수 있다.
(list로 받지 않아도 된다. )
'내가 보려고 정리하는 > JAVA' 카테고리의 다른 글
Servlet-request / response 사용해보기 (0) | 2023.01.20 |
---|---|
Log4j (0) | 2023.01.18 |
iBatis (0) | 2023.01.13 |
MVC패턴! (0) | 2023.01.13 |
File 객체 연습 new File, mkdir, mkdirs, getName, isFile, isDirectory (0) | 2022.12.30 |