ππ» MyBatis
: κ°λ°μκ° μ§μ ν SQL, νλ‘μμ , κ³ κΈλ§€νμ μ§μνλ μμμ± νλ μμν¬
κ°μ²΄μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό λ§€ννλ μμμ± νλ μμν¬λ‘,
JDBCλ‘ μ²λ¦¬νλ μλΉ λΆλΆμ μ½λμ νλΌλ―Έν° μ€μ λ° κ²°κ³Ό λ§€νμ λμ ν΄μ£Όλ νλ μμν¬ μ λλ€.
βοΈ μμμ± : Persistnece μ΄λ
νλ‘κ·Έλ¨μ΄ μ’ λ£λλλΌλ μ¬λΌμ§μ§ μλ λ°μ΄ν°μ νΉμ±μ μλ―Έν©λλ€.
RDBMS νΉμ νμΌ μμ€ν λ± λ³λ λ°μ΄ν°λ² μ΄μ€μ μꡬμ μΌλ‘ μ μ₯νμ¬ λ°μ΄ν°κ° μμμ±μ κ°μ§λλ€.
βοΈ ORM (Object Relationship Mapping) μ΄λ
κ°μ²΄μ RDBMSλ₯Ό μλμΌλ‘ λ§€νν΄μ£Όλ κ²μΌλ‘ JPA, Hibernate, JDBC λ±μ΄ μμ΅λλ€.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ κ°μ²΄λ₯Ό μ¬μ©νμ§λ§, κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ ν μ΄λΈμ μ¬μ©νμ¬ μνΈκ° νλ λΆμΌμΉ λ¬Έμ κ° λ°μν μ μμ΅λλ€.
ππ» λλ¬Έμ MyBatisμ κ°μ ORMμ ν΅ν΄ κ°μ²΄μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ°λνμ¬ SQLλ¬Έμ μμ±νλ―λ‘μ¨ μ΄λ¬ν λ¬Έμ μ μ ν΄κ²°ν©λλ€.
π Mybatis νΉμ§
1) SQLλ¬Έκ³Ό μ½λλ₯Ό λΆλ¦¬
μλ° μ½λμ 볡μ‘νκ² μ½νμλ SQLλ¬Έμ XMLνμΌμ λ³λλ‘ λΆλ¦¬νμ¬ μ½λμ κ°κ²°ν¨κ³Ό νΈλ¦¬ν¨μ ν₯μ μν¬ μ μμ΅λλ€.
2) JDBC κΈ°λ₯ μ 곡
JDBCκ° μ§μνλ κ±°μ λͺ¨λ κΈ°λ₯λ€μ μ§μνμ¬ JDBCλ‘ μ²λ¦¬νλ μ½λμ νλΌλ―Έν° λ±μ λ§€ννμ¬ νΈλ¦¬ν¨μ ν₯μ μν΅λλ€.
3) λ€μν μΈμ΄ μ§μ
JAVA λΏλ§ μλλΌ Ruby, C# λ± λ€μν μΈμ΄λ₯Ό μ§μν©λλ€.
π Mybatis μ£Όμ μ»΄ν¬λνΈ
1) SqlSessionFactoryBuilder
- SQLSessionFactoryλ₯Ό μμ±νλ ν΄λμ€
2) SqlSessionFactory (interface)
- SqlSession κ°μ²΄λ₯Ό μ€ννλ ν©ν 리 ν΄λμ€
3) SqlSessionFactoryBean
- config νμΌμ λ°νμΌλ‘ SqlSessionFactoryλ₯Ό μμ±νλ ν΄λμ€
4) SqlSession
- mapper.xmlμ λ±λ‘λ SQlλ¬Έμ μ€ννκ³ νΈλμμ μ κ΄λ¦¬νλ ν΄λμ€
- Spring νλ‘μ νΈμ DAOμ μ§μ μ κ·Όνμ¬ μΏΌλ¦¬λ₯Ό μν
- Thread-not-safeνμ¬ μ±κΈ μ°λ λ νκ²½μ μ ν©νκ³ μ°λ λλ₯Ό λ§€λ² μμ±ν΄μΌ ν¨
- <T> T selectOne(String statement, Object parameter);
- selectλ¬Έμ΄ μ€νλ νλμ κ°μ²΄λ₯Ό 리ν΄ν¨
- Null λλ ν κ° μ΄μμ 리ν΄ν κ²½μ° μλ¬ λ°μ
- <E> List<E> selectList(String statement, Object parameter);
- selectλ¬Έμ΄ μ€νλμ΄ μ¬λ¬ κ°μ κ°μ²΄κ° λ΄κΈ΄ 리μ€νΈλ₯Ό 리ν΄ν¨
- <K,V> Map<K,V> selectMap(String statement, Object parameter, String mapKey);
- κ²°κ³Ό λͺ©λ‘μ΄ MapμΌλ‘ λ³νλμ΄ λ¦¬ν΄ν¨
- int insert(String statement, Object parameter);
- insertλ¬Έμ΄ μ€νλμ΄ κ²°κ³Ό λ μ½λκ° λ°νλ¨
- int update(String statement, Object parameter);
- updateλ¬Έμ΄ μ€νλμ΄ κ²°κ³Ό λ μ½λκ° λ°νλ¨
(6) delete
- int delete(String statement, Object parameter);
- deleteλ¬Έμ΄ μ€νλμ΄ κ²°κ³Ό λ μ½λκ° λ°νλ¨
5) SqlSessionTemplate
- SqlSession μΈν°νμ΄μ€λ₯Ό μμλ°μ ꡬνλ ν΄λμ€λ‘ μ€μ SQL λ° νΈλμμ μ€ν
- Thread-safe νμ¬ λ©ν° μ°λ λ νκ²½μμ μμ
6) Spring bean XML
- Java Objectμ SQLλ¬Έμ λ§€ννκΈ° μν΄ νμν μ¬λ¬ νμΌμ μ 보λ₯Ό μ€μ
- JDBC DataSource : Connectionμ μμ±ν΄μ£Όλ ν©ν 리 ν΄λμ€
-> Connection con = dataSource.getConnection( )μΌλ‘ Connection μμ±
π Mybatis νμ© μμ
π‘ DAO
public List<userVo> getUserList(UserDto userDto);
π‘ User.xml
<mapper namespace = "com.test.service.dao.UserDao">
<select id="getUserList"
parameterType = "com.test.service.dto.UserDto"
resultType = "com.test.service.vo.UserVo">
π [CDTA] = Character Data, λ¬Έμν λ°μ΄ν°
<![CDATA[]]>
μ΄λ κ² μ μΈνκ³ λ¬Έμμ΄μ μ±μ λ£μΌλ©΄ [ ] μμ λ¬Έμ₯μ νμ±λμ§ μκ³ κ·Έλλ‘ λ¬Έμμ΄λ‘ μΆλ ₯λ©λλ€.
Selectλ¬Έμλ 쑰건μ κ±Έμ΄ μΏΌλ¦¬λ₯Ό νκΈ° μνμ¬ <, > , = λ±μ κΈ°νΈλ₯Ό λ§μ΄ μ¬μ©νκ² λλλ° μ΄κ²μ΄ νμ± μ€μ νκ·Έλ‘ μΈμλκ±°λ νλ λ±μ λ¬Έμ κ° μκΈΈ μ μμ΅λλ€.
ππ» λλ¬Έμ μ΄λ₯Ό <![CDATA[ ]]> μμ μνλ 쿼리문μ μ μΈνλ€λ©΄ νμ±νμ§ μκ³ κ·Έλλ‘ λ¬Έμμ΄λ‘ μΈμμν¬ μ μμ΅λλ€.
π νμ΄μ§ μ²λ¦¬
select * from ν
μ΄λΈ orders limit (A) offset (B)
- B+1νλΆν° Aκ° λ§νΌ 보μ¬μ€
'Study > JSP' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JSP] DataTables (0) | 2022.11.22 |
---|---|
[JSP] ObjectMapper (0) | 2022.11.18 |
[JSP] JQuery (0) | 2022.11.18 |
[JSP] JSTL (0) | 2022.11.18 |
[JSP] Ajax (0) | 2022.11.18 |