1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <!DOCTYPE generatorConfiguration PUBLIC
3+ "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
4+ "https://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
5+ <generatorConfiguration >
6+ <!-- MyBatis Dynamic SQL Library를 사용. XML매퍼는 생성하지 않음. -->
7+ <!-- 참조: https://mybatis.org/generator/quickstart.html -->
8+ <context id =" MyBatis3DynamicSqlTest" targetRuntime =" MyBatis3DynamicSql" >
9+ <property name =" javaFileEncoding" value =" UTF-8" />
10+
11+ <!-- https://mybatis.org/generator/reference/plugins.html -->
12+ <plugin type =" org.mybatis.generator.plugins.ToStringPlugin" />
13+
14+ <!-- 자동생성 주석 금지 -->
15+ <commentGenerator >
16+ <property name =" suppressAllComments" value =" true" />
17+ <property name =" useLegacyGeneratedAnnotation" value =" false" />
18+ </commentGenerator >
19+
20+ <jdbcConnection
21+ connectionURL =" jdbc:oracle:thin:@localvmdb.oracle_xe_18c:1521:XE"
22+ driverClass =" oracle.jdbc.OracleDriver"
23+ password =" book_ex"
24+ userId =" book_ex"
25+ />
26+
27+ <!-- Java 도메인 모델 생성 -->
28+ <javaModelGenerator
29+ targetPackage =" org.fp024.domain.generated"
30+ targetProject =" src/main/java" > <!-- eclipse의 generator에서는 프로젝트 폴더명부터 시작해야하지만, Maven 플러그인으로 실행시는 src부터 시작한다. -->
31+ <property name =" enableSubPackages" value =" true" />
32+ <property name =" trimStrings" value =" true" />
33+ </javaModelGenerator >
34+
35+ <!-- 메퍼 인터페이스 (레파지토리 인터페이스 ) -->
36+ <javaClientGenerator
37+ targetPackage =" org.fp024.mapper.generated"
38+ targetProject =" src/main/java" >
39+ <property name =" enableSubPackages" value =" true" />
40+ </javaClientGenerator >
41+
42+
43+ <!-- 타켓 테이블 - 게시판 테이블 -->
44+ <table tableName =" tbl_board" domainObjectName =" BoardVO"
45+ mapperName =" BoardMapper" >
46+
47+ <!-- 키생성 컬럼과 쿼리를 정의한다. -->
48+ <!-- 시퀀스를 호출해서 값을 넣기 때문에, identity를 false로 둔다. MySQL AutoIncreatement였다면 true로 두고, sqlStatemen="MySql" 로 설정할 필요가 있다. -->
49+ <generatedKey column =" bno" identity =" false"
50+ sqlStatement =" SELECT seq_board.nextval FROM DUAL" />
51+
52+ <!-- Oracle에서 bno 컬럼을 NUMBER(10,0)으로 설정했는데, 일단은 BIGINT로 써본다. -->
53+ <columnOverride column =" bno" property =" bno" jdbcType =' BIGINT' javaType =' java.lang.Long' />
54+ <columnOverride column =" regdate" property =" regdate" jdbcType =' DATE'
55+ javaType =' java.time.LocalDateTime' />
56+ <columnOverride column =" updatedate" property =" updateDate" jdbcType =' DATE'
57+ javaType =' java.time.LocalDateTime' />
58+
59+ <columnOverride column =" updatedate" property =" updateDate" jdbcType =' DATE'
60+ javaType =' java.time.LocalDateTime' />
61+ <columnOverride column =" replycnt" property =" replyCount" jdbcType =' BIGINT' javaType =' int' />
62+
63+ </table >
64+
65+ <!-- 타켓 테이블 - 댓글 테이블 -->
66+ <table tableName =" tbl_reply" domainObjectName =" ReplyVO"
67+ mapperName =" ReplyMapper" >
68+ <!-- 키생성 컬럼과 쿼리를 정의한다. -->
69+ <!-- 시퀀스를 호출해서 값을 넣기 때문에, identity를 false로 둔다. MySQL AutoIncreatement였다면 true로 두고, sqlStatemen="MySql" 로 설정할 필요가 있다. -->
70+ <generatedKey column =" rno" identity =" false"
71+ sqlStatement =" SELECT seq_reply.nextval FROM DUAL" />
72+
73+ <!-- Oracle에서 bno 컬럼을 NUMBER(10,0)으로 설정했는데, 일단은 BIGINT로 써본다. -->
74+ <columnOverride column =" rno" property =" rno" jdbcType =' BIGINT' javaType =' java.lang.Long' />
75+ <columnOverride column =" replydate" property =" replyDate" jdbcType =' DATE'
76+ javaType =' java.time.LocalDateTime' />
77+ <columnOverride column =" updatedate" property =" updateDate" jdbcType =' DATE'
78+ javaType =' java.time.LocalDateTime' />
79+ </table >
80+
81+
82+ <!-- 타켓 테이블 - 첨부파일 정보 테이블 -->
83+ <table tableName =" tbl_attach" domainObjectName =" BoardAttachVO"
84+ mapperName =" BoardAttachMapper" >
85+ <columnOverride column =" uploadpath" property =" uploadPath" />
86+ <columnOverride column =" filename" property =" fileName" />
87+ <columnOverride column =" filetype" property =" fileType" jdbcType =" CHAR"
88+ javaType =" org.fp024.domain.FileType"
89+ typeHandler =" org.fp024.typehandler.CustomEnumTypeHandler" />
90+ <columnOverride column =" bno" property =" bno" jdbcType =' BIGINT' javaType =' java.lang.Long' />
91+ </table >
92+
93+ <!--
94+ 참고: 아래 내용은 jex06에서 먼저 실행한 내용 가져오기만하고 실제로 매퍼생성을 하진 않았다.
95+ 자동생성을 하더라도 수정을 해야되서, jex06에서 만들고 수정했던 내용을 그대로 옮겨와서
96+ 또 만들고 수정하진 않았음.
97+ -->
98+ <!--
99+ 타켓 테이블 - 회원 테이블
100+ 회원과 권한의 1:N 관계를 표현하는 List<AuthVO> 는 MyBatis Generator로 표현할 수 없기 때문에,
101+ 그 부분은 자동생성 이후 수동으로 클래스 소스를 수정해야한다.
102+ -->
103+ <table tableName =" TBL_MEMBER" domainObjectName =" MemberVO"
104+ mapperName =" MemberMapper" >
105+ <columnOverride column =" USERID" property =" userId" />
106+ <columnOverride column =" USERPW" property =" userPassword" />
107+ <columnOverride column =" USERNAME" property =" userName" />
108+
109+ <columnOverride column =" REGDATE" property =" registerDate" jdbcType =' DATE'
110+ javaType =' java.time.LocalDateTime' />
111+ <columnOverride column =" UPDATEDATE" property =" updateDate" jdbcType =' DATE'
112+ javaType =' java.time.LocalDateTime' />
113+
114+ <columnOverride column =" ENABLED" property =" enabled" jdbcType =" CHAR"
115+ javaType =" org.fp024.domain.EnabledType"
116+ typeHandler =" org.fp024.typehandler.CustomEnumTypeHandler" />
117+ </table >
118+
119+ <!--
120+ 타켓 테이블 - 권한 테이블
121+ ex06 프로젝트에서는 회원테이블과 권한테이블을 JOIN해서 회원정보를 가져왔기 때문에,
122+ 권한 테이블에 대해서는 별도로 Mapper를 만들지 않았다.
123+
124+ 그리고 회원이나, 권한에 대한 Create, Update, Delete를 기능상으로 구현을 안해서 그렇기도 한데...
125+ 여기선 자동생성되는 부분이니 일단 AuthMapper를 만들게 하자.
126+ -->
127+ <table tableName =" TBL_MEMBER_AUTH" domainObjectName =" AuthVO"
128+ mapperName =" AuthMapper" >
129+ <columnOverride column =" USERID" property =" userId" />
130+ <columnOverride column =" AUTH" property =" auth" jdbcType =" VARCHAR"
131+ javaType =" org.fp024.domain.MemberAuthType"
132+ typeHandler =" org.fp024.typehandler.CustomEnumTypeHandler" />
133+ </table >
134+
135+ </context >
136+ </generatorConfiguration >
0 commit comments