데이터 테이블의 비교적 많은 수의 경우, 너무 너무 복잡 수동으로 파일 및 엔티티 클래스를 매핑 SQL을 작성하고, MyBatis로 발전기가 자동 노력의 중복을 감소 이러한 것들을 필요로 생성 할 수 있습니다. 성공적으로 구성하기 전에, 문제가 발생하기 쉬운 MyBatis로 발전기 구성은 더 많은 온라인 자습서 있지만, 그러나 나는, 나는, 디버깅하지 않고, 한 번에 모든 사람을 만들기 위해 노력하고, 변화에 변화를 자신의 프로 테스트 구성 과정을 공개합니다 여러 번 시도 이동합니다.
pom.xml 파일에 종속 1. 가져 오기
<! - MyBatis로 매핑 엔티티 클래스 및 SQL 생성 도구 자동으로 JAR -> < 의존성 > < 의 groupId > org.mybatis.generator </ 의 groupId > < artifactId를 > MyBatis로-발전기 코어 </ artifactId를 > < 버전 > 1.3. 2 </ 버전 > < 형 > JAR </ 유형 > </ 의존성 > <! - JDBC 데이터베이스 연결 패키지 -> < 의존성 > < 의 groupId >MySQL의 </의 groupId > < artifactId를 > MySQL의 커넥터 - 자바 </ artifactId를 > < 버전 > 5.1.47 </ 버전 > </ 의존성 > </ 의존성 > < 구축 > < 플러그인 > <! - 받는다는环境中的mybatis.generator插件-> < 플러그인 > < 의 groupId > org.mybatis.generator </ 의 groupId > < artifactId를 >발전기의 MyBatis-받는다는 - 플러그인 </artifactId를 > < 버전 > 1.3.3 </ 버전 > < 구성 > <! - 지정의 MyBatis 발전기 구성 파일 위치. 구성 항목은 'generatorConfig.xml'프로필 아래에, 기본 조회가 사용하는 'SRC / 메인 / 자원을'생략됩니다. 위치 프로필, 'SRC / 메인 / 자원 / 지정되지 않은 경우, 즉 generatorConfig.xml를' 존재하지, 오류가 종료보고됩니다. -> < configurationFile > SRC에 / 메인 / 자원 / MyBatis로 - 발전기 / generatorConfig.xml </ configurationFile > < 상세 > true로 </ 자세한 > <!-> < 덮어 쓰기 > 진정한 </ 덮어 쓰기 > </ 설정 > </ 플러그인 > </ 플러그인 > </ 구축 >
2. 자원 디렉토리에서 데이터베이스 프로파일 database.properties 자원 만들기
= com.mysql.jdbc.Driver 드라이버 # MySQL의 데이터 및 유니 코드 인코딩 형식의 전송 중에, 문자로 설정 UTF-8. URL = JDBC : MySQL은 : //127.0.0.1 :? 3306 / lottery_db useUnicode = true로 & characterEncoding = UTF-. 8 & serverTimezone는 = UTC의 사용자 = 루트 암호 = QWERT
3. 쓰기 MyBatis로 발전기 구성 파일
(플러그인의 pom.xml의 MyBatis-발전기 받는다는 - 플러그인이 디렉토리 generatorConfig.xml에서 MyBatis로 발전기 구성 파일 생성, 자원 자원 디렉토리에 디렉토리 MyBatis로 발전기를 만들기 일관된 경로 configurationFile 라벨 세트 )
<? XML의 버전 = "1.0"인코딩 = "UTF-8" ?> <! DOCTYPE generatorConfiguration PUBLIC "- // mybatis.org//DTD 구성 MyBatis로 생성기 1.0 // EN" "http://mybatis.org/dtd /mybatis-generator-config_1_0.dtd " > < generatorConfiguration > <! - 데이터베이스 구성 파일의 도입. -> <! - .에 관계없이 자원 디렉토리에 database.properties 경우 약 database.properties 위치와 generatorConfig.xml의 현재 위치,의, 직접 직접 관계없이 generatorConfig의 자원 = "database.properties"를 쓸 수 .XML은 자원 디렉토리 또는 하위 디렉토리 자원이 존재합니다. 우리는 명령을 사용하여 맵 파일을 생성하지만, 같이 쓸 경우, 및 실행 프로젝트를하지 않기 때문에 "자원 = '클래스 경로 : database.properties' " 명령으로 매핑 파일 (프로젝트가 실행되고 있지 않은이 '클래스 경로를'존재하지 않는 경우 오류가 발생합니다 인수). database.properties은 쓰기 하위 디렉토리 XXX 자원에 "= 'xxx는 / database.properties'자원 '파일 경우 > - < 속성 자원 ="database.properties " /> ! - < JDBC 키트 - > <! - 항아리 패키지 데이터베이스 커넥터의 위치를 지정하도록 구성해야합니다 -> < classpathentry 위치 = "E : \ maven_repository \ MySQL은 \ MySQL의 커넥터 - 자바 MySQL의 커넥터 - 자바-5.1.47.jar \ \ 5.1.47 " /> <! - 컨텍스트 데이터베이스 문맥 -> < 컨텍스트 ID ="mapper_lottery_db " targetRuntime ="MyBatis로 3 " > <!- 의 MyBatis 프레임 워크의 버전을 지정 -> < commentGenerator > < 속성 이름 = "유형"값 = "DEFAULT" /> <! - 진정한 자동으로 생성 된 주석을 제거할지 여부 :있다 : false로 : NO ->이 < 속성 이름 = "suppressAllComments" 값 = "진정한"이 /가> <! - 이 요소는 주석 제거를 지정하는 데 사용됩니다 생성 포함 날짜는 거짓 생성 : 보호를 나타냅니다 -> <! - 생성 날짜, 수정도 필드가 발생할 경우, 전체 개체를 변경하는 클래스의 모든 속성, 그래서 true로 설정 버전 관리에 도움이되지 않습니다 -> < 속성 이름을 = "suppressDate" 값 "true로"= /> </ commentGenerator > <! - JDBC를 연결 매개 변수 database.properties 서명되지 않은 미국의 참조에 의해 -> <JdbcConnection driverClass이 = "$ {드라이버}" 은 connectionURL = "$ {} URL" 사용자 ID= "$} {사용자" 암호 = "{$ 암호는}" /> <! - 엔티티 클래스를 생성 > - <! - targetPackage 패키지 엔티티 클래스가 위치 표현한다,이 패키지는 다른 프로젝트에없는 존재할 수 없습니다 현재 발전기가 자동으로 엔티티 클래스 구축하는 첫 번째 패키지를 구축 할 것입니다 패키지 위치를 표현 targetProject을 -> < javaModelGenerator targetPackage = "cn.lottery.pojo" targetProject = "를 SRC / 메인 / 자바" > <! - 현재의 새로운 경로 여부 스키마의 레이어 추가 true로 FASE 경로 cn.lottery.pojo : : EG를. [스키마 명] cn.lottery.pojo -> < 속성 이름= "enableSubPackages" 값 = "거짓" /> <! - 전화가 필드의 문자열 유형에 대한 시간을 설정 트림 여부 -> < 속성 이름 = "trimStrings" 값 = "거짓" /> </ javaModelGenerator > <! - SQL 매핑 파일 -> < sqlMapGenerator targetPackage = "매퍼" targetProject = "SRC / 메인 / 자원" > < 속성 이름 = " enableSubPackages " 값 ="거짓 " /> </ sqlMapGenerator > <! - 매퍼 인터페이스 -> <! - 유형의 = | XML 또는 주석에 순서대로 각각 "XMLMAPPER ANNOTATEDMAPPER"는, SQL 문을지도하기 -> < javaClientGenerator targetPackage = "cn.lottery.mapper" 유형 = "ANNOTATEDMAPPER" targetProject = "SRC / 메인 / 자바 " > < 속성 이름 ="trimStrings " 값 을 false로 =" " /> </ javaClientGenerator > <! - 필요한 SQL 문 데이터 테이블 -> <! - 테이블은 <표> 태그, 스키마는 데이터베이스를 나타냅니다 이름은 TABLENAME 테이블 이름이 표시, domainObjectName 엔티티는 생성 된 클래스 이름을 나타냅니다 -> <! - enableXXXXByExample true로 설정, 생성합니다 "pojonameXXXXByExample "엔티티 클래스. 원금 엔티티의 생성 같은 복잡한 작업을위한 SQL : 쿼리 일치 섹션 미만, 이들은 일반적으로 필요하지 않은 이상 /보다 정렬, 중복, 그것은 SQL을 이러한 작업을 필요로하는 경우에도, 새로운 엔티티 클래스를 생성 할 필요가 없었다 -> < 표 스키마 = "lottery_db"TABLENAME은 = "이를 admin_user" domainObjectName = "관리 사용자" enableCountByExample "false로"= enableUpdateByExample "false로"= enableDeleteByExample "false로"= enableSelectByExample "false로"= selectByExampleQueryId "false로"= > <! - 기본적으로 필드 이름과 개체 유형, 같은 속성의 이름 를 생략 할 수있다 -> < 속성 이름 = "useActualColumnNames" 값을 = "true로" /> <! - 당신은 필드 이름을 원하고 정확하게 일치하지 않는 속성 이름을 경우, 레이블이 columnOverride 관련 특성에 제공 될 수있다 -> <! - <columnOverride 열 = "login_name은"속성 = "LOGINNAME "/> -> </ 테이블 > ... ... </ 컨텍스트 > </ generatorConfiguration >
4.이 명령은 필요한 파일을 생성
많은 받는다는 문서를 생성 된 실행 된 온라인 자습서를 사용하는,하지만 내 환경은 MyEclipse는 항상에만 명령 줄을 사용 오류로 실행 "MVN을 청소 MyBatis로 발전기를 : 생성"마지막으로 성공적으로 관련을 생성 파일.
은 MyEclipse 단자를 표시하는 아이콘을 왼쪽 상단의 클릭으로, 명령 줄 단말기와 함께 제공됩니다.
터미널이 열린 후, 기본값은 현재 프로젝트의 루트 디렉토리에 작업 디렉토리. 프로젝트의 루트 디렉토리에없는 경우, 프로젝트 "의 pom.xml"파일을 참조 할 수 있도록이 디렉토리에있는 "DIR"명령을 사용하여 루트 디렉토리로 전환해야합니다.
그런 다음 "MVN에게 깨끗한 MyBatis로 발전기를 : 생성"를 입력, 출력 단자 녹색 표시 할 때 성공적으로 생성 된 맵 파일은 관련 SQL을 MyBatis로 "성공을 구축"을 참조하십시오.
마지막으로, 현재 프로젝트에 새로 고치려면 "F5"키를 누르면, 당신은 인터페이스를 볼 수 엔티티 클래스와 맵 파일은 SQL을 생성