IDEA 판 최신 MyBatis 프로그램 설정 튜 토리 얼 상세 설명

실험 환경:IDEA 2020.1+MySQL 8.0.21+Mybatis 3.5.5+Junit 4.13
환경 구축 C>Mybatis 가 져 오기->코드 작성->테스트
1.실험 데이터 베 이 스 를 구축한다.
우 리 는 my batis 실험 데이터 베 이 스 를 만 들 고 후속 실험 을 위해 user 표를 만 듭 니 다.

CREATE DATABASE `mybatis`;
USE `mybatis`;

CREATE TABLE `user`(
	`id` INT(4) NOT NULL PRIMARY key,
	`name` VARCHAR(20) NOT NULL,
	`pwd` VARCHAR(20) NOT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `user` VALUE
(1,'zsr','200024'),
(2,'gcc','000421'),
(3,'bareth','123456');
2.IDEA 새 프로젝트,데이터베이스 연결
  • 일반 maven 프로젝트 를 새로 만 듭 니 다
  • src 디 렉 터 리 삭제,부모 프로젝트
  • pom.xml 에서 관련 maven 을 가 져 오 는 것 은
  • 에 의존 합 니 다.
    MySQL 드라이버
    MyBatis 구동
    junit 구동
    
    <!--    -->
     <dependencies>
     <!--MySQL  -->
     <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.21</version>
     </dependency>
     <!--MyBatis  -->
     <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.5</version>
     </dependency>
     <!--junit  -->
     <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.13</version>
     <scope>test</scope>
     </dependency>
     </dependencies>
    우리 MySQL 연결
    시간 대 문제 해결 방안:https://www.jb51.net/article/186512.htm
    image-20200722145606196
    앞에서 만 든 데이터베이스 my batis 를 선택 하고 엽 니 다.
    image-20200722145919888
    3.MyBatis 핵심 프로필 을 작성 하여 하위 모듈 maven 만 들 기study01
    image-20200722194716330
    이 모듈 의 resource 디 렉 터 리 에 my batis-config.xml 파일 을 새로 만 듭 니 다.이것 은 MyBatis 핵심 설정 파일 입 니 다.
    image-20200722145134259
    
    <?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="POOLED">
     <property name="driver" value="com.mysql.jdbc.Driver"/>
     <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSH=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
     <property name="username" value="root"/>
     <property name="password" value="200024"/>
     </dataSource>
     </environment>
     </environments>
    </configuration>
    주의:아래 부분 은 자신의 데이터베이스 정보 로 바 꿉 니 다.
    
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
    4,MyBatis 도구 클래스 작성
  • 재 서브 모듈 mavenstudy 01/src/main/자바 디 렉 터 리 에 utils 도구 류 패 키 지 를 새로 만 들 고 MyBatisUtils 류
  • 을 새로 만 듭 니 다.
  • 이 종 류 는 XML 에서 SqlSession Factory
  • 을 구축 하 는 데 사용 된다.
    image-20200722150422826
    
    package utils;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    //  SqlSessionFactory     SqlSession
    public class MybatisUtils {
     private static SqlSessionFactory sqlSessionFactory;
    
     static {
     try {
     //  SqlSessionFactory  
     String resource = "mybatis-config.xml";
     InputStream inputStream = Resources.getResourceAsStream(resource);
     sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
     } catch (IOException e) {
     e.printStackTrace();
     }
     }
    
     //  SqlSessionFactory     SqlSession
     public static SqlSession getSqlSession() {
     SqlSession sqlSession = sqlSessionFactory.openSession();
     return sqlSession;
     }
    }
    5.표 에 대응 하 는 실체 클래스 생 성
    데이터베이스 에 있 는 모든 표 의 줄 은 하나의 실체 클래스 대상 에 대응 합 니 다.여기 서 우 리 는 앞에서 만 든 user 표 에 대응 하 는 실체 클래스 를 만 듭 니 다.
    maven 에서study 01/src/main/자바 디 렉 터 리 에 pojo 실체 패 키 지 를 새로 만 듭 니 다.그 중에서 새 User 클래스 를 만 듭 니 다.
    image-20200722154351016
    
    package pojo;
    
    public class User {
     private int id;
     private String name;
     private String pwd;
    
     public User() {
     }
    
     public User(int id, String name, String pwd) {
     this.id = id;
     this.name = name;
     this.pwd = pwd;
     }
    
     public int getId() {
     return id;
     }
    
     public void setId(int id) {
     this.id = id;
     }
    
     public String getName() {
     return name;
     }
    
     public void setName(String name) {
     this.name = name;
     }
    
     public String getPwd() {
     return pwd;
     }
    
     public void setPwd(String pwd) {
     this.pwd = pwd;
     }
    
     @Override
     public String toString() {
     return "User{" +
     "id=" + id +
     ", name='" + name + '\'' +
     ", pwd='" + pwd + '\'' +
     '}';
     }
    }
    6.Mapper 인터페이스 작성
    maven 에서study 01/src/main/자바 디 렉 터 리 에 mapper 패 키 지 를 새로 만 듭 니 다.그 중에서 새 UserMapper 인터페이스 가 있 습 니 다.
    그 중에서 추상 적 인 방법 getUserList()는 User 대상 의 집합 을 되 돌려 주 는 데 사용 된다.
    
    package mapper;
    
    import pojo.User;
    
    import java.util.List;
    
    public interface UserMapper {
     List<User> getUserList();
    }
    image-20200722161452807
    7.Mapper.xml 프로필 작성
    하위 모듈/src/main/java/mapper 에서 새 UserMapping.xml
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="mapper.UserMapper">
     <select id="getUserList" resultType="pojo.User">
     select * from mybatis.user
     </select>
    </mapper>
  • namespace=자신 이 Mapper 인 터 페 이 스 를 만 듭 니 다
  • id=Mapper 인터페이스 에 대응 하 는 방법 명
  • resultType=반환 결과 유형
  • select 중간 은 sql 문장
  • image-20200722161852213
    8.Junit 테스트 클래스 작성
    maven 에서study 01/test/java 에서 새로운 mapper 패 키 지 를 만 듭 니 다.이 패 키 지 는 새로운 테스트 클래스 UserMapperTest 를 만 듭 니 다.
    junit 테스트
    
    package mapper;
    
    import mapper.UserMapper;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    import pojo.User;
    import utils.MyBatisUtils;
    
    import java.util.List;
    
    public class UserMapperTest {
     @Test
     public void test() {
     //  sqlSession  
     SqlSession sqlSession = MyBatisUtils.getSqlSession();
    
     //  SQL
     UserMapper mapper = sqlSession.getMapper(UserMapper.class);
     List<User> userList = mapper.getUserList();
    
     for (User user : userList) {
     System.out.println(user);
     }
     //  sqlSession
     sqlSession.close();
     }
    }
    image-20200722162921446
    9.Mapper.xml 에 등록 추가
    모든 Mapper.xml 은 MyBatis 핵심 프로필 에 등록 해 야 합 니 다.
    우 리 는 my batis-config.xml 에 등록 하고 마지막 으로 다음 코드 를 추가 해 야 합 니 다.
    
    <!--   Mapper.xml    MyBatis         -->
    <mappers>
     <mapper resource="mapper/UserMapping.xml"/>
    </mappers>
    이 경 로 는 우리 가 정의 한 xml 프로필 의 경로 입 니 다.
    주의:이 경 로 는 / 으로 구분 되 어야 합 니 다.
    image-20200722183309138
    10.테스트 실행
    우 리 는 테스트 클래스 UserMapperTest 를 실행 하려 면 클릭 하 십시오.성공!

    그 가 우리 에 게 드라이버 이름 이 버 려 졌 다 는 것 을 알 게 되 었 다.우 리 는 그 가 준 새로운 드라이버 이름 을 이용 하면 된다.
    MyBatis 핵심 프로필 에서 드라이버 이름 을 다음 과 같이 바 꾸 면 됩 니 다.
    
    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    재 테스트,오류 없어 요~
    image-20200723082453658
    11.닥 칠 수 있 는 문제
    프로필 이 등록 되 지 않 았 습 니 다.
    모든 Mapper.xml 은 MyBatis 핵심 프로필 에 등록 해 야 합 니 다.
    바 인 딩 인터페이스 가 잘못 되 었 습 니 다.방법 명 이 잘못 되 었 습 니 다.반환 형식 이 잘못 되 었 습 니 다.
    그림 에서 보 듯 이 세 개의 매개 변수 에 대응 합 니 다.
    image-20200722202226360
    maven 프로필 을 내 보 내 거나 사용 할 수 없습니다.
    image-20200722200254437
    maven 기본 자원 파일 은 resource 디 렉 터 리 에 설정 되 어 있 지만 자바 디 렉 터 리 에 놓 여 있 습 니 다.이 디 렉 터 리 에서 내 보 낼 수 없 기 때문에 src/main/자바 의.properties 나.xml 를 내 보 낼 수 있 도록 자원 필 터 를 수 동 으로 설정 해 야 합 니 다.
    해결 방안 은 다음 설정 을 pom.xml 에 쓰 는 것 입 니 다.
    
    <!-- build   resources,             -->
    <build>
     <resources>
     <resource>
     <directory>src/main/resources</directory>
     <includes>
     <include>**/*.properties</include>
     <include>**/*.xml</include>
     </includes>
     <filtering>true</filtering>
     </resource>
     <resource>
     <directory>src/main/java</directory>
     <includes>
     <include>**/*.properties</include>
     <include>**/*.xml</include>
     </includes>
     <filtering>true</filtering>
     </resource>
     </resources>
    </build>
    12.절차 역할 및 총화
    전체 과정 을 정리 하면 7 대 절차 로 나 눌 수 있다.
  • MyBatis 핵심 설정 xml 파일 을 작 성 했 습 니 다.데이터베이스 연결 인 스 턴 스 를 가 져 오 는 데이터 원본(DataSource)과 트 랜 잭 션 역할 영역 과 제어 방식 을 결정 하 는 트 랜 잭 션 관리자(TransactionManager)
  • 을 포함 합 니 다.
  • MyBatis 도구 류 를 작성 하여 상기 xml 파일 을 불 러 옵 니 다.이 xml 파일 에서 SqlSession Factory 를 구축 하고 SqlSession Factory 에서 SqlSession 을 가 져 옵 니 다.SqlSession 은 데이터베이스 에서 SQL 명령 을 수행 하 는 데 필요 한 모든 방법 을 제공 합 니 다
  • 데이터베이스 테이블 에 대응 하 는 실체 클래스 를 만 들 고 자바 빈 의 속성 과 데이터베이스 테이블 의 필드 를 자동 으로 연결 합 니 다
  • Mapper 인 터 페 이 스 를 작성 하여 다음 Mapper.xml 설정 에서 파일 의 SQL
  • 을 실행 하 는 추상 적 인 방법 을 정의 합 니 다.
  • Mapper.xml 프로필 을 작성 하고 상기 Mapper 인 터 페 이 스 를 연결 하 며 해당 하 는 추상 적 인 방법
  • MyBatis 핵심 설정 xml 파일 에 Mapper.xml 프로필 에 등록
  • 을 추가 합 니 다.
  • Junit 테스트 클래스 테스트 작성
  • IDEA 버 전의 최신 MyBatis 프로그램 설정 튜 토리 얼 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 아이디어 my batis 프로그램 설정 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기