티스토리 뷰
[Spring] Mapper XML Files ( select / insert, update, delete / parameters )
best 2016. 4. 20. 16:051. Parameters
쿼리의 파리미터 ( PreparedStatement 의 " ? " 는 Spring 에서는 #{ 멤버변수명 } 을 사용한다.
만약 VO를 가져와서 VO의 파라미터를 넣고 싶다면 #{ } 괄호 안에 VO의 변수를 그대로 넣는다.
그려면 VO의 getter가 소환되어 변수의 값으로 들어간다.
Parameter를 전달하는 방법은 DAO에서 쿼리문을 수행할 때 전달해 줄 수 있다.
이때 parameter를 쓰는 자리에는 무조건 하나만 쓸 수 있다.
그러므로 여러개의 parameter를 보낼 경우 Map을 사용해야 한다.
첫번째, 가장 기본적인 방법은 하나의 값을 parameter로 전달하는 것이다.
1
2 |
String lastName = "King";
return getSqlSession().selectList("ArticleDAO.getAllEmployeeInfo", lastName ); |
cs |
기존에는 selectOne을 썼었는데 selectOne은 쿼리의 결과가 한개일 경우에 사용하는 것이고,
selectList는 쿼리의 결과가 여러개일 경우에 사용한다.
두번째로 여러개의 parameter를 보내고 싶을 때 Map을 사용한다.
Map은 <key, value> 로 구성되며 key는 무조건 String을 써야하고, value는 모든 타입을 대표하는 Object를 쓴다.
1
2
3
4 |
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("firstName", "Steven");
parameters.put("lastName", "King");
return getSqlSession().selectList("ArticleDAO.getAllEmployeeInfo", parameters ); |
cs |
세번째는 VO를 이용하여 객체로 보낼 수 있다.
1
2
3
4 |
EmployeesVO employee = new EmployeesVO();
employee.setFirstName("Steven");
employee.setLastName("King");
return getSqlSession().selectList("ArticleDAO.getAllEmployeeInfo", employee); |
cs |
2. SELECT
MyBatis에서 가장 흔히 사용된다.
1
2
3
4 |
<select id="getNowSystemDate" resultType="string">
SELECT SYSDATE
FROM DUAL
</select> |
cs |
쿼리의 이름은 getNowSystemDate 이고, 리턴 타입은 String 이다.
이때, resultType은 꼭 써야한다.
SELECT query에서 파라미터를 이용한다면
1
2
3
4
5
6
7
8
9
10
11
12 |
<select id="getAllEmployeeInfo" parameterType="EmployeesVO" resultType="EmployeesVO">
SELECT EMPLOYEE_ID employeeId
, FIRST_NAME firstName
, LAST_NAME lastName
, EMAIL email
, SALARY salary
, COMMISSION_PCT commissionPct
, HIRE_DATE hireDate
FROM EMPLOYEES
WHERE LAST_NAME = #{lastName}
AND FIRST_NAME = #{firstName}
</select> |
cs |
이때 parameterType 은 EmployeesVO 타입 이므로
Employees에 있는 lastName이라는 이름을 가진 변수와 firstName이라는 이름을 가진 변수가 들어간다.
3. insert, update and delete
- insert
1
2
3
4
5
6
7
8
9
10
11
12 |
<insert id="insertAuthor">
INSERT INTO AUTHOR (
ID
, USERNAME
, PASSWORD
)
VALUES (
#{id}
, #{username}
, #{password}
)
</insert> |
cs |
- update
1
2
3
4
5
6 |
<update id="updateAuthor">
UPDATE AUTHOR
SET USERNAME = #{username}
, PASSWORD = #{password}
WEHRE ID = #{id}
</update> |
cs |
- delete
1
2
3
4 |
<delete id="deleteAuthor">
DELETE AUTHOR
WEHRE ID = #{id}
</delete> |
cs |
'BackEnd > Spring' 카테고리의 다른 글
[Spring] Dynamic SQL (0) | 2016.04.20 |
---|---|
[Spring] ORM : MyBatis 연동 (0) | 2016.04.20 |
[Spring] 파일 업로드 (0) | 2016.04.20 |
[Spring] Controller의 리턴 타입 (0) | 2016.04.15 |
[Spring] 예외처리 (1) | 2016.04.14 |
- Total
- Today
- Yesterday
- BFS
- 예외처리
- REDIRECT
- INSERT
- mybatis
- servlet
- restfb
- order by
- indexOf
- onBackPressed
- Spring
- 안드로이드 비콘
- java
- 자바
- RequestMapping
- table
- 이클립스
- onPostExecute
- boj
- algorithm
- list
- controller
- Baekjoon Online Judege
- sort
- maven
- 안드로이드 스튜디오
- DFS
- jsp
- AlertDialog.Builder
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |