간략한 소개
이 문서에서는 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 데이터 쿼리를