Mybatis는 반자동 ORM입니다. 이 프레임 워크를 사용하면 가장 많은 워크로드는 매핑 매핑 파일을 작성하는 것입니다. 수동 작문은 실수를 쉽게하기 쉽기 때문에 Mybatis-Generator를 사용하여 파일을 자동으로 생성 할 수 있습니다.
역 엔지니어링
1. 역 엔지니어링이란 무엇입니까?
Mybaits는 프로그래머에게 SQL 문을 자체적으로 작성해야합니다. Mybatis 공무원은 MyBatis 실행에 필요한 코드를 자동으로 생성하기 위해 리버스 엔지니어링을 제공합니다 (Mapper.java, Mapper.xml, Po ..)
실제 엔터프라이즈 개발에 사용되는 일반적인 역 엔지니어링 방법 :
Java 코드는 데이터베이스 표로 인해 생성됩니다.
2. 리버스 엔지니어링 다운로드
mybatis-generator-core-1.3.2-bundle.zip
3. 사용 방법 (사용할 수 있음)
3.1 리버스 엔지니어링을 실행하십시오
공식 문서에 제공된 역 엔지니어링을 실행하는 몇 가지 방법
mybatis 생성기 실행
Mybatis Generator (MBG)는 다음과 같은 방법으로 실행할 수 있습니다.
(1) XML 구성으로 명령 프롬프트에서
(2) XML 구성이있는 개미 작업으로
(3) Maven 플러그인으로
(4) XML 구성이있는 다른 Java 프로그램에서
(5) Java 기반 구성이있는 다른 Java 프로그램에서
(6) Eclipse 플러그인을 통해 코드를 생성 할 수도 있습니다.
Java 프로그램 방법 (XML 구성이있는 다른 Java 프로그램에서)을 사용하고 개발 도구에 의존하지 않는 것이 좋습니다.
아래는 리버스 파일을 생성 한 다음 자동 생성 된 파일을 원래 프로젝트에 복사하는 프로젝트입니다 (소스 파일에서 직접 생성을 중지하고 동일한 이름으로 파일을 덮어 쓰는 데 수행됩니다). 가져온 JAR 패키지 및 프로젝트 구조의 스크린 샷은 다음과 같습니다.
그림처럼
3.2 코드 구성 파일을 생성합니다
GeneratorConfig.xml :
<? xml 버전 = "1.0"encoding = "utf-8"?> <! doctype generatorconfigurationpublic "-// mybatis.org//dtd mybatis 생성기 구성 1.0 // en ""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd "> <GeneratorConfiguration> <context id ="testTables "targetRuntime ="myBatis3 "> <commentGenerator> <!-자동 기준 댓글을 제거 할 것인지 :> no-> <" " value = "true"/> </commentgenerator> <!-데이터베이스 연결 정보 : 드라이버 클래스, 연결 주소, 사용자 이름, 암호-> <jdbcconnection driver class = "com.mysql.jdbc.driver"connectionUrl = "jdbc : mysql : // localhost : 3306/mybatis" userId = "root"password = "1234"> </jdbcConnection> <!- <jdbcConnection driver class = "oracle.jdbc.oracledriver"connecturl = "jdbc : oracle :@@127.0.0.1 : 1521 : yycg"userid = "yyccg"yycg "> </jdbccg" -> <!-기본 거짓, JDBC 소수점 및 숫자 유형을 정수로 구문 분석하고, True 일 때, JDBC 소수점 및 숫자 유형을 java.math.bigdecimal-> <javatyperesolver> <property name = "forceBigdecimals"value = "false"/> < /javatyperesolver> <! -> <javamodelgenerator targetpackage = "cn.edu.hpu.ss.ss.po"targetproject = "./ src"> <!-enablesubpackages : 스키마가 패키지의 접미사가되도록하는지 여부-> <property name = "enablesubpackages"valy = "false" /> <! value = "true"/> </javamodelgenerator> <!-TargetProject : Mapper 맵 파일이 생성되는 위치-> <sqlmapgenerator targetpackage = "cn.edu.hpu.ssm.mapper"targetProject = "./ srcc"> <!-EnablesubPackagages : <property로 사용하는지 여부. 이름 = "enablebpackages"value = "false"/> </sqlmapgenerator> <!-targetpackage : 맵퍼 인터페이스 생성의 위치-> <javaclientgenerator type = "xmlmapper"targetpackage = "cn.edu.hpu.ss.mapper"targetproject "./ src". 패키지-> <property name = "enablebpackages"value = "false"/</javaclientgenerator> <!-데이터베이스 테이블을 지정-> <table tabename = "items"> </table> <table tablename = "orders"> </table> <table> <table tablename = "</table"> <table tablename = "</table"> tableName = "sys_user"> </table> <table schema = ""tablename = "sys_role"> </table> <table schema = ""tablename = "sys_permission"> </table> <table schema = ""tablename = "sys_user_role"> -> <!-일부 테이블 필드에는 java 유형이 필요합니다 <table schema = ""tablename = ""> <columnoverride column = ""javatype = ""/> </table>-> </context> </GeneratorConfiguration>
3.3 발전기 프로그램을 실행하십시오
generatorsqlmap.java :
import java.io.file; import java.util.arraylist; import java.util.list; import org.mybatis.generator.api.mybatisgenerator; import org.mybatis.generator.config.configuration; import org.mybatis.generator.config.xml.configationparser; org.mybatis.generator.internal.defaultshellcallback; public class generatorsqlmap {public void generator () throws exception {list <string> warnings = new arraylist <string> (); boolean overwrite = true; // 부하 구성 파일 file configfile = new File ( "generatorconfig.xml"); ConfigurationParser CP = 새로운 구성 경영기 (경고); 구성 구성 = cp.parseconfiguration (configfile); defaultshellCallback 콜백 = new defaultshellCallback (오버 라이터); myBatisGenerator myBatisGenerator = New MyBatisGenerator (Config, Callback, Callback, 경고); myBatisGenerator.generate (null);} public static void main (String [] args)은 예외를 던졌습니다 {try {generatorsqlmap genocatorsqlmap = new GeneratorsqlMap (); generatorsqlmap.generator () Catch (Excection e) {e.printstacktrace ()}};생성 된 코드 :
3.4 생성 된 코드 사용
생성 된 프로젝트에서 생성 된 코드를 자신의 프로젝트에 복사해야합니다. itemsmapper.java 및 itemsmapper.xml, items 및 itemsexample 클래스를 원래 프로젝트에 복사하겠습니다.
ItemsMapper의 테스트 방법
패키지 cn.edu.hpu.ss.sm.test; import static org.junit.assert.fail; import java.util.date; import java.util.list; import org.junit.before; import org.junit.test; import org.springframework.context.applicationcontext; import; org.springframework.context.support.classpathxmlapplicationcontext; import cn.edu.hpu.ss.mapper.itemsmapper; import cn.edu.hpu.sss.po.items; import cn.edu.hpu.sss.po.itemsexample; public applicatectic ancuploptontex attret actuplortcontet; itemsmapper itemsmapper; // 주석 이이 클래스의 모든 테스트 메소드를 실행하기 전에이 메소드를 호출하기 전에 주석 @beforepublic void setup () 예외 {applicationcontext = new classPathXmlApplicationContext ( "classPath : Spring/ApplicationContext.xml"); itemsMapper = (itemsMapper) ApplicationContext.getBean ( "itemplatic");} // TestDeleteByPrimaryKey () {fail ( "아직 구현되지 않음");} // insert @TestPublic void testInsert () {items items = new 항목 (); items.setName ( "iPhone-5s"); items.setPrice (3999f); items.setDetail ( "Authentic"); items.setpic ( "sdasd.jpg"); items.setcreateTime (new date ()); itemsMapper.Insert (Items); {itemsexample itemsexample = new itemsexample (); // 기준 itemsexample.criteria chiteria = itemsexample.createcriteria (); chiteria.andnameequalto ( "tv")를 통해 쿼리 조건을 구성합니다. for (int i = 0; i <list.size (); i ++) {items it = list.get (i); system.out.println (it.getId ()+":"+it.getName ());}} // 기본 키를 기반으로 쿼리 @TestPublic void testSelectByPrimaryKey () {itemsmapper.selectByPrimaryKey (1); system.out.println (items.getName ();} // TestUpdateByPrimaryKey () {// 모든 필드를 업데이트하려면 먼저 쿼리 한 다음 항목 항목 = itemsMapper.SelectByPrimaryKey (1); items.setName ( "iPhone"); itemsmapper.updateByPrimaryKey (항목); // 들어오는 필드가 비어 있지 않은 경우 배치 업데이트 에이 메소드를 사용하십시오. 먼저 쿼리 한 다음 //itemsmapper.updateByPrimaryKeySelective (record);}} 업데이트 할 필요가 없습니다.위는 편집자가 소개 한 Mybatis 프레임 워크에서 생성 한 Mybatis 리버스 엔지니어링 자동 코드입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!
wulin.com에서 권장 읽기 :
Mybatis 소개 학습 튜토리얼 (I) - Mybatis 빠른 시작
Mybatis Oracle Blob Type 필드 저축 및 읽기의 심층 분석
Mybatis는 Dao와 Mapper를 연습합니다
MyBatis 연습의 동적 SQL 및 관련 쿼리