1. MariaDB์ ํ ์ด๋ธ ์์ฑ ๋ฐ ๋ฐ์ดํฐ ์ถ๊ฐ
2. springํ๋ก์ ํธ๋ฅผ ์ด๊ณ , build.gradle์ dependency ์ถ๊ฐ
https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter
์ ๋งํฌ์์ ์ํ๋ ๋ฒ์ ์ ํด๋ฆญํ๊ณ gradle(short)๋ฅผ ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ๋๋ค.
(๋ฐ๋์ gradle ์ฝ๋ผ๋ฆฌ๋ชจ์ ๊ผญ ๋๋ฌ์ฃผ๊ธฐ!)
๐ build.gradle
....
dependencies {
implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.4'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
}
.....
3. ํด๋๊ตฌ์ฑ
sampleproject
โโ src
โ โโ main
โ โโ java
โ โ โโ com
โ โ โโ study
โ โ โโ controller
โ โ โ โโ Controller.java
โ โ โโ domain
โ โ โ โโ Member.java
โ โ โโ mapper
โ โ โ โโ Mapper.java
โ โ โโ SampleProjectApplication.java
โ โโ resources
โ โโ mybatis
โ โ โโ XmlMapper.xml
โ โโ application.yml
โโ build.gradle
4. resources / application.yml์ ์ค์ ์ถ๊ฐ
spring:
datasource:
url: jdbc:mariadb://localhost:3306/์ ์์ธ์
๋ช
driver-class-name: org.mariadb.jdbc.Driver
username: ์ ์์๋ช
password: ์ ์์์ ๋น๋ฐ๋ฒํธ
mybatis:
type-aliases-package: com.study.domain # entity๊ฐ ์กด์ฌํ๋ ๊ฒฝ๋ก์์ฑ.
mapper-locations: mybatis/**.xml # XmlMapper.xml์ด ์กด์ฌํ๋ ๊ฒฝ๋ก์์ฑ.
type-aliases-package๋ฅผ ์๋ตํ๋ฉด XmlMapper.xml์ resultType์ ์์ฑํ ๋ entity์ ํจํค์ง๊น์ง ๋ค ์์ฑํด์ฃผ์ด์ผํ๋ค.
5. java / com / study / domain / Member.java ์์ฑ
package com.study.domain;
@Data
public class Member {
private Long id;
private String email;
private String name;
private String password;
public Member(){
}
public Member(String email, String name, String password){
this.email = email;
this.name = name;
this.password = password;
}
}
6. java / com / study / mapper / Mapper.java ์์ฑ
package com.study.mapper;
@Mapper
public interface Mapper {
//annotation๋ฐฉ์
@Select("select * from member")
public List<Member> getList();
//xml๋ฐฉ์
List<Member> getList2();
}
Mapper๋ ๋ฐ๋์ ์ธํฐํ์ด์ค๋ก ์ ์ธํด์ฃผ์ด์ผํ๊ณ , @Mapper์ด๋ ธํ ์ด์ ์ ๋ถ์ด์ผํ๋ค.
7. resources / mybatis / XmlMapper.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="com.study.mapper.Mapper">
<select id="getList2" resultType="Member">
select * from member
</select>
</mapper>
namespace๋ Mapper์ธํฐํ์ด์ค์ ํจํค์ง๋ช
๊น์ง ํฌํจํด์ ์์ฑ
resultType์ application.yml์์ type-aliases-package์ผ๋ก ์ง์ ํด์ฃผ์๊ธฐ๋๋ฌธ์ ํด๋์ค๋ช
๋ง ๊ธฐ์ฌํ๋ ๊ฒ์ผ๋ก ๊ฐ๋ฅ.
๋ง์ฝ type-aliases-package๊ฐ ์๋ต๋์์ผ๋ฉด com.study.domain.Member๋ก ์์ฑํด์ผํ๋ค
8. java / com / study / controller / Controller.java ์์ฑ
package com.study.controller;
@Controller
public class MemberController {
@Autowired private Mapper mapper;
@GetMapping("/mybatisAnnotation")
@ResponseBody
public List<Member> memberList(){
return mapper.getList();
}
@GetMapping("/mybatisXml")
@ResponseBody
public List<Member> memberList2(){
return mapper.getList2();
}
}
9. ์คํํ๊ธฐ
localhost:8080/mybatisAnnotation
localhost:8080/mybatisXml
๋๋ค ์คํ์๋ฃ!
'๐ฟ Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Security] OAuth ๊ตฌ๊ธ ๋ก๊ทธ์ธํ๊ธฐ (0) | 2022.02.02 |
---|---|
[Spring Security] ๋์๋ฐฉ๋ฒ ๋ฐ Form, OAuth ๋ก๊ทธ์ธํ๊ธฐ (Feat.Thymeleaf ํ์๋ฆฌํ) (8) | 2022.02.01 |
ํํ์ด์ง ์ต์ด์ ์ ์ url์ jsessionid ์๋์ผ๋ก ์๋ถ๊ฒํ๊ธฐ (0) | 2021.12.20 |
Cookie์ Session, ๊ทธ๋ฆฌ๊ณ Token (0) | 2021.12.09 |
Spring Validation ์ ๋ฆฌ (0) | 2021.12.08 |