SpringBoot 연구 노트 (6) 통합을 MyBatis로

간략한 소개

이 문서에서는 SpringBoot가 알리바바의 드루이드를 사용하여 MyBatis로, 데이터베이스 연결 풀을 통합 소개합니다. 프레임 워크 시크릿 SpringBoot는 SQL에 파일을 쓸 수 있지만 통합 mybaits의 XML의 사용을 지원하지 않습니다뿐만 아니라 달성하는 데 사용할 수있는 XML 구성 XML SQL에 사용되었다. 구체적인 방법은 프레임 워크의 동작을 중심으로 다시 구축하기 위해, 중요하지 않습니다 무엇의 실현은 비교적 분명하다. 이 블로그는 방식을 언급하지 않는, 쓰기 XML을 SQL의 MyBatis로를 달성하는 방법입니다.

치어 구성 파일

<? XML 버전 = "1.0"인코딩 = "UTF-8"?> 
<프로젝트의 xmlns = "http://maven.apache.org/POM/4.0.0"에 xmlns :이 xsi = "HTTP : //www.w3 .ORG / 2001 / 된 XMLSchema 인스턴스 " 
         는 xsi :의 schemaLocation ="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd "> 
    <modelVersion> 4.0.0 </ modelVersion> 
    <부모> 
        <의 groupId> org.springframework.boot </의 groupId> 
        <artifactId를> 스프링 부팅 스타터 부모 </ artifactId를> 
        <version>은 2.2.0.RELEASE </ 버전 > 
        <relativepath를 /> <! - 저장소에서 룩업 상위 -> 
    </ 부모> 
    <의 groupId> com.meng </의 groupId> 
    <artifactId를> 데모 </ artifactId를> 
    <버전> 0.0.1-SNAPSHOT </ 버전> 
    <이름> db_demo </ 이름>
    <설명> 봄 부팅 </ 설명>에 대한 데모 프로젝트 

    <속성> 
        <java.version> 1.8 </java.version> 
    </ 속성> 

    <종속성> 
        <의존성> 
            <의 groupId> org.springframework.boot </의 groupId> 
            < artifactId를> 스프링 부팅 스타터 데이터 JPA </ artifactId를> 
        </ 의존성> 
        <의존성> 
            <의 groupId> org.springframework.boot </의 groupId> 
            <artifactId를> 스프링 부팅 스타터 웹 </ artifactId를> 
        </ 의존성> 


        <의존성> 
            <의 groupId> org.springframework.boot </의 groupId>
            <artifactId를> 스프링 부팅 스타터 JDBC </ artifactId를>
        </ 의존성> 
        <의존성>
            <의 groupId> org.mybatis.spring.boot </의 groupId> 
            <artifactId를>의 MyBatis 스프링 부팅 스타트 </ artifactId를> 
            <version>은 2.1.1 </ 버전> 
        </ 의존성> 
        <의존성> 
            <의 groupId> MySQL의 < /의 groupId> 
            <artifactId를> MySQL을 커넥터 자바 </ artifactId를> 
            <분야> 런타임 </ 범위> 
        </ 의존성> 
        <! -自定义连接池-> 
        <의존성> 
            <의 groupId> com.alibaba </의 groupId > 
            <artifactId를> 사제 </ artifactId를> 
            <version>은 1.1.10 </ 버전> 
        </ 의존성>

        <의존성>  
            <의 groupId> log4j에 </의 groupId>
            <artifactId를> log4j에 </ artifactId를> 
            <version>은 1.2.17 </ 버전> 
        </ 의존성> 

        <의존성> 
            <의 groupId> org.springframework.boot </의 groupId> 
            <artifactId를> 스프링 부팅 스타터 테스트 </ artifactId를 > 
            <분야> 시험 </ 범위> 
            <제외> 
                <제외> 
                    <의 groupId> org.junit.vintage </의 groupId> 
                    <artifactId를>의 JUnit 빈티지 엔진 </ artifactId를> 
                </ 제외> 
            </ 제외> 
        </ 종속 > 
    </ 의존성>

    <건설> 
        <플러그인> 
            <플러그인>
                <의 groupId> org.springframework.boot </의 groupId> 
                <artifactId를> 스프링 부팅 받는다는 - 플러그인 </ artifactId를> 
            </ 플러그인> 
        </ 플러그인> 
    </ 빌드> 

</ 프로젝트>

SpringBoot 프로필

봄 : 
  데이터 소스 : 
    사용자 이름 : 루트 
    암호 : 123456 
    URL : JDBC를 : MySQL의 : //192.168.0.157 : 3306 / DB1의 
    드라이버 클래스 이름 : com.mysql.cj.jdbc.Driver 
    유형 : com.alibaba.druid.pool. DruidDataSource의 

    # 데이터 소스의 다른 구성 
    # 초기 크기, 최소, 최대 
    initialSize가 :. 5 
    minIdle :. 5 
    maxActive 대 20 인 
    타임 아웃 시간 대기 연결을 얻기 # 구성 
    maxWait : 60000 개 
    그러한 검출 주파수 검출 유휴 연결을 종료해야 # 간격 단위 밀리 초 
    timeBetweenEvictionRunsMillis는 : 60000 
    # 최소 연결 시간 생존 풀 밀리 초 구성 
    300000 : minEvictableIdleTimeMillis 
    validationQuery 다음 SELECT FROM의 1 DUAL. 
    testWhileIdle : true로 
    testOnBorrow : false로를
    testOnReturn : 거짓 
    poolPreparedStatements : 사실에 
    #은 모니터링 통계가없는 통계를 모니터링 인터페이스는 SQL을 제거한 후, 필터를 차단 설정, 방화벽 '벽' 
    필터 : STAT, 벽, log4j에 
    maxPoolPreparedStatementPerConnectionSize : 20 
    useGlobalDataSourceStat : true로 
    ConnectionProperties와 : true로 druid.stat.mergeSql = ; druid.stat.slowSqlMillis = 500 
의 MyBatis : 
  구성-LOCATION : CLASSPATH : MyBatis로 / MyBatis로 - 더의 Config.xml 
  매퍼-사항 : CLASSPATH : MyBatis로 / 매퍼 / * XML.

 

그리고 엔티티 클래스 구현 프로세스를 생성하기 시작

패키지 작성 : 엔티티, 매퍼, 컨트롤러. 또한 매퍼 자바 파일에 직접 기록 할 수있는 SQL 문을 작성하기위한 자원 매핑 아래의 폴더를 만들고 바로 아래의 코드를 붙여 넣습니다

신청

@MapperScan ( "com.meng.demo.mapper") // 스캔 경로를 따라 인터페이스 
@SpringBootApplication 
공용 클래스 DbDemoApplication { 

    공공 정적 무효 메인 (문자열 []에 args) { 
        SpringApplication.run (DbDemoApplication.class, 인수); 
    } 

}

 

자바 빈즈 객체

공용 클래스 EmployeePO { 
    개인 정수 ID; 
    개인 문자열이 lastName; 
    개인 문자열 이메일; 
    개인 정수 성별; 
    개인 정수 D_ID;

 

매퍼

인터페이스 EmployeeMapper {공공 

    공공 EmployeePO getById (ID 정수); // 쿼리 ID 

    공공 무효 INSERT (EmployeePO employeePO가) 추가 // 
}

 

제어 장치

@RestController 
공용 클래스 DemoController { 

    @Autowired 
    EmployeeMapper employeeMapper; 

    ( "/ EMP / {ID}") @GetMapping 
    공공 EmployeePO getEmp (@PathVariable ( "ID") 정수 ID를) { 
        employeeMapper.getById (ID)를 반환; 
    } 

    @GetMapping ( "/ EMP") 
    공중 EmployeePO 인셋 (EmployeePO employeePO) { 
        employeeMapper.insert (employeePO); 
        employeePO를 반환; 
    } 

}

  

Mapper.xml 프로필

<? XML 버전 = "1.0"인코딩 = "UTF-8"?> 
<DOCTYPE 매퍼 PUBLIC! "- // mybatis.org//DTD 매퍼 3.0 // EN ''http://mybatis.org/dtd/mybatis -3- mapper.dtd "> 
<매퍼 네임 스페이스 ="com.meng.demo.mapper.EmployeeMapper는 "> 

    <SELECT 이드 ="getById "는 resultType ="com.meng.demo.entity.EmployeePO는 "> 
		SELECT 
			을 수행합니다. * 
		FROM 의 직원이라면 
		WHERE a.id = # {ID} 
	</ 선택> 


    <삽입 식의 KeyProperty = "아이디"useGeneratedKeys = "true"를 "삽입"> 
		(이 lastName, 이메일, 성별, D_ID) 직원에 삽입 
		{(값 #을이 lastName } # {이메일}, # {성}, # {D_ID}) 
	</ 삽입> 

</ 매퍼>

 

MyBatis로-config.xml의 구성 파일

<? XML 버전 = "1.0"인코딩 = "UTF-8"?> 
<DOCTYPE 구성! 
        PUBLIC "- // mybatis.org//DTD 구성 3.0 // EN" 
        "http://mybatis.org/dtd/mybatis -3- config.dtd "> 
<구성> 
    <설정> 
        <설정 이름 ="mapUnderscoreToCamelCase "값 ="진정한 "/> <! -驼峰命名-> 
    </ 설정> 
</ 구성>

 

마지막 아키텍처

 

 마지막 테스트 시작

브라우저에서 입력 : HTTP를 : // localhost를 : 8080 / EMP lastName=%E6%B5%8B%E8%AF%9505&[email protected]&gender=10&d_id=1이    행을 삽입

 

 브라우저에서 입력 : HTTP를 : // localhost를 : 8080 / EMP / 5    데이터 쿼리를

 

추천

출처www.cnblogs.com/mengY/p/11733713.html