public static SqlSession getSqlSession() {
SqlSession sqlSession = null;
String resource = "/mybatis-config.xml";
try {
InputStream stream = Resources.getResourceAsStream(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(stream);
sqlSession = ssf.openSession(false);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSession;
}
SqlSession 객체 :
1. SQL문을 실행하고 결과를 반환하는데 사용한다
쿼리 업데이트, 삭제 등 다양한 SQL 작업을 수행한다
2. SqlSession은 트랜잭션을 관리한다 사용자는 명시적으로
트랜잭션을 시작하고 커밋하거나 롤백할 수 있습니다
String resource = "/mybatis-config.xml";
resource 변수는 Mybatis 설정 파일의 경로를 나타낸다
이 파일에는 데이터베이스 연결 정보와 매퍼 설정이 포함되어 있다
InputStream stream = Resources.getResourceAsStream(resource);
설정 파일을 스트림으로 읽어온다.
해당 스트림을 통해서 mybatis-config.xml 파일의 내용을 읽어들인다.
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(stream);
Mybatis 설정 파일을 바탕으로 sqlSessionFactory
객체를 생성하는 빌더 클래스이다
sqlSession = ssf.openSession(false);
false로 설정하면 트랜잭션을 수동 커밋 모드로 설정한다
즉 사용자가 명시적으로 커밋을 호출하지 않으면
데이터베이스에 변경 사항이 반영되지 않는다.