반응형
회사에서 기존 Persistence Framework는 아래와 같은 문제점이 존재하였다.
- 어떠한 쿼리가 현재 작성되어 있는지 관리가 전혀 되지않음
- 파라미터 바인딩이 어려움
- Dynamic Query를 작성하기 어려움
- Dynamic Query를 작성하려면 비즈니스로직에 작성해야함 -> 유지보수가 힘들어짐
그렇기에 팀장님께 Persistence Framework 교체를 건의했으며 후보는 아래와 같았다.
- hibernate
- Mybatis
hibernate로 이관을 하려면 러닝커브가 존재했으므로 보류되었고 비교적 바로적용할 수 있는 Mybatis가 채택되었다.
현재 회사의 설정에는 Application Server의 Connection Pool을 Applictaion이 당겨다가 쓰는방식으로 되어있었다.
그렇기에 Mybatis도 동일한 방식으로 가져가야 예상하지 못한 이슈가 없을거라는 판단하에 Application Server의 Connection Pool을 가져다가 쓰기로 결정했다.
방법은 간단하다.
JNDI 방식으로 DataSource를 설정하면 된다.
방법은 아래와같다.
dataSource type을 JNDI로 설정하고 property value를 tomcat에서 설정한 name으로 설정해주면 된다.
MybatisConfiguraion.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="JNDI">
<property name="data_source" value="java:comp/env/name"/>
</dataSource>
</environment>
</environments>
</configuration>
Tomcat/conf/context.xml
<Resource name="name" auth="Container"
driverClassName="driver"
type="javax.sql.DataSource"
url="database URL"
username="username"
password="password"
/>
반응형
'개발 > JAVA' 카테고리의 다른 글
[Mybatis] Mapper는 어떻게 등록되는 것일까 ? (1) | 2020.12.27 |
---|---|
[Mybatis] Interface를 이용하여 Query 날리기 (0) | 2020.12.27 |
[Mybatis] interceptor 를 등록하면 어떠한 원리로 동작하는가 ? (0) | 2020.12.25 |
[JAVA] 함수의 결과를 성공과 실패만 판단하면 될때 반환값으로 어떤값이 좋을까? (2) | 2020.09.15 |
[JAVA] Stream을 이용하여 Map 안에 있는 값 간편하게 출력하기 (0) | 2020.08.23 |
댓글