상세 컨텐츠

본문 제목

[Spring] DB연결(2)

공부/Spring

by 비렴 2022. 6. 3. 01:33

본문

1.  HikariCP API
    - 스프링에서 기본으로 제공하는 것 X
    - 왜 사용하는가? 성능이 높아지기 때문
                                           |
                                connection을 생성-연결-삭제를 계속하다보면 성능 저하가 일어난다. 특히 동시접속이 많은 경우
                                 CP는  Connection Pool로 사용하고 있지 않은 커넥션을 이용하고 후에 반납한다(재사용)

2. HikariCP 사용하기
   1) 설치
       pom.xml파일에서 dependency에 추가
   

pom.xml

     2) 설정
         [src]-[webapp]-[WEB-INF]-[spring]- root-context.xml파일에 내용 추가

     - 1. HikariConfig 

           <bean id = hikariConfig" class="com.zaxxer.hikari.HikariConfig">
                 <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
                 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mysql"/>
                 <property name="username" value="root"/>
                 <property name="password" value="123"/>     
            </bean>

           <bean> --> 객체를 생성하는 것
                   - id : 생성한 클래스를 지정하는 이름
                          (임의로 지정해주어도 되지만 일반적으로는 클래스 이름과 동일하게 지정
                          단! 첫 글자는 소문자여야함)
                   - class : 어떤 클래스 객체를 생성할 것인지
           
            <property> --> setter 실행
                    - name에 맞게 value를 넣어준다 --> 오타나면 안됨!!!

      - 2. HikariDataSource

            <bean id = "dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
                   <constructor-arg ref="hikariConfig"/>
            </bean>
           HikariConfig --> CP를 만들어서 관리하는 것이 HikariDataSource
           <constructor-arg> --> hikariconfig를 참조하기 위한 생성자

3. Mybatis-spring
      MVNrepository에서 검색 후 dependency를 pom.xml에 추가

          SqlSessionfactoryBean.class --> 가장 중요한 클래스
             - Sql을 전송하는 역할
             - root-context.xml파일에 bean으로 객체 생성
               <bean class="">
             - bean class에 클래스 파일 이름을 넣어야 하는데 오타가 나면 안되므로 해당 클래스 오른쪽 클릭 후
               Copy Qualified Name선택
                   - Copy : 클래스 이름만
                   - Copy Qualified Name : 클래스가 있는 패키지 이름까지

              - SqlSessionFactoryBean과 DataSource 연결
                   - 1. setter 이용 --> property
                   - 2. 생성자 이용 --> constructor-arg
                  무엇을 이용하는가? --> SqlSessionFactoryBean 클래스를 살펴보자!

                   - dataSource 속성 확인 --> 이용해준다
                   

            - JDBC
                    - 우리가 직접 사용하지는 않지만 JDBC는 필요
                    - pom.xml에 dependency 추가
                    - 1) MySQL JDBC
                    - 2) Spring JDBC

MySQL JDBC

 

 

            <참고> 구조 정리

 

4. SqlSessionFactoryBean과 BoardMapper(SQL)와 연결
    <mybatis:scan base-package="kr.board.mapper"/>
    Mapper는 여러개일 확률이 높기 때문에 bean으로 일일이 하는 것이 아니라 scan을 이용한다

     mybatis 접두어를 사용한다고 추가하지 않았기 때문에 에러 발생

    xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"

    추가해주고 밑에 스키마파일도 지정해주어야 한다
                                       |
                                XML 구조
    http://mybatis.org/schema/mybatis-spring
    http://mybatis.org/schema/mybatis-spring.xsd

 

    xmlns:mybatis --> namespace
    xsi:schemaLocation --> schema 파일 지정 --> 그래야 쓸 수 있다.

 

5. Scan -- Controller 연결
   scan --> 생성된 객체는 메모리에 올라가 있다
   BoardController에 @Autowired --> 바로 밑에 private BoardMapper --> 메모리에 있는 Mapper를 찾아 연결

 

 

6. 실행

'공부 > Spring' 카테고리의 다른 글

[Spring] 글쓰기 기능 넣기  (0) 2022.06.17
[Spring] 처음 실행될 때  (0) 2022.06.14
[Spring] 스프링의 기본 설정 파일  (0) 2022.05.31
[Spring] Mapper, DB 연결(1)  (0) 2022.05.31
[Spring] POJO 만들기  (0) 2022.05.26

관련글 더보기