Java & Kotlin

spring mybatis 사용해보기, 사용법

필자A 2021. 7. 22. 10:51

🌞🌞🌞🌞🌞🌞🌞🌞

mybatis?

 

개발자가 지정한 SQL, 저장 프로시저, 몇 가지 고급 매핑을 지원하는

퍼시스턴스 프레임워크

 

사용해보기

 

모든 mybatis를 사용하는 애플리케이션은

SqlSessionFactory 인스턴스를 필수로 사용합니다.

SqlSessionFactorySqlSessionFactoryBuilder 이용해 만들수 있습니다.

 

String rs = "마이바티스설정경로";
InputStream is = Resources.getResourceAsStream(rs);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession ss = factory.openSession(true);
ss.insert("{매퍼이름}.{쿼리요소이름}");

XML을 사용하였습니다.

마이 바티스 설정 경로를 문자열로 작성한 뒤

mybatis에서 제공해주는 메서드(ResourcesAsStream)를 사용해

inputstream으로 변환해 줍니다.

 

그 후 빌더로 factory를 만들어 뽑은 sqlSession인스턴스로

설정 파일 내에 작성해둔 mapper정보를 사용합니다.

 

🐸간단 예시🐸

 

SqlSession ss = factory.openSession(true);
ExampleEntity e = ss.selectOne("testMapper.select", 5);
System.out.println(e.getName());

openSession안의 값은

autoCommit 유무입니다.

값을 안 넣을 시 기본값은 false이므로

commit을 따로 해줘야 합니다.

 

받아온 SqlSession인스턴스로

select, isnert, delete 등 쿼리를 수행할 수 있습니다.

 

<mapper namespace="testMapper">
  <insert id="insert" useGeneratedKeys="true">
  	insert into ex_table (name)values ("user1")
  </insert>
  <select id="select" resultType="com.mycom.myapp.ExampleEntity">
  	select * from ex_table where id =  #{id}
  </select>
</mapper>

mapper태그 네임스페이스 값과

안에 자식 태그들의 id값을 '.'을 사용해 이어서

sqlSession값으로 넘기면 해당 쿼리가 수행이 됩니다.

반응형