SpringフレームワークでMyBatisを利用する際、EntityクラスやMapperクラス、Mapperクラスが参照するXMLファイルが必要になってくるが、それらはMyBatis Generatorによって自動生成することができる。
今回は、MyBatis GeneratorによってEntityクラスやMapperクラス、Mapperクラスが参照するXMLファイルを自動生成してみたので、その手順を共有する。
なお、Entityクラスの例は、以下のサイトの「UserData.java」を参照のこと。
また、MapperクラスやMapperクラスが参照するXMLファイルの例は、以下のサイトを参照のこと。
前提条件
下記記事の手順に従って、STSをダウンロード済であること。
また、データベース上に以下のテーブルが作成されていること。
やってみたこと
MyBatis Generatorのインストール
MyBatis Generatorのインストール手順は、以下の通り。
1) STSを起動し、「ヘルプ」メニューから「Eclipse マーケットプレース」を選択する。
2) 検索ウィンドウに「MyBatis Generator」を指定し、「Go」ボタンを押下する。
3) 「MyBatis Generator」の「インストール」ボタンを押下する。
4) ライセンスのレビュー画面が表示されるので、「使用条件の条項に同意します」を選択後、「完了」ボタンを押下する。
5) セキュリティー警告ダイアログが表示されるので、「インストール」ボタンを押下する。
6) ソフトウェア更新ダイアログが表示されるので、「今すぐ再起動」ボタンを押下する。
7) パッケージ・エクスプローラー上で右クリックし、「新規」メニューから「その他」を選択すると、以下のように、「MyBatis Generator Configuration File」メニューが確認できる。
Spring Bootプロジェクトの作成
STS上で、MyBatis GeneratorによってEntityクラスやMapperクラス、Mapperクラスが参照するXMLファイルを自動生成の対象とするSpring Bootプロジェクトを作成する。その手順は以下の通り。
1) パッケージ・エクスプローラー上で右クリックし、「新規」メニューから「Spring スターター・プロジェクト」を選択する。
2) 以下のように作成するプロジェクトの情報を指定し、「次へ」ボタンを押下する。
3) MyBatis Frameworkのチェックを指定し、「次へ」ボタンを押下する。
4) 以下の画面が表示されるので、「完了」ボタンを押下する。なお、下記画面では環境の都合上、Javaのバージョンを13に変更している。
5) 以下のように、「demo2」プロジェクトが作成されることが確認できる。
6) Oracleにojdbc経由で接続するため、以下のように、libフォルダ下にJDBCドライバ「ojdbc6.jar」を配置する。
7) Oracleにojdbc経由で接続するため、pom.xmlに以下の記述を追加する。
1 2 3 4 5 6 7 8 | <!-- oracleを利用するための設定 --> <dependency> <groupId>com.oracle.jdbc</groupId> <artifactId>ojdbc6</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/lib/ojdbc6.jar</systemPath> </dependency> |
追加後のpom.xmlの内容は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo2</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo2</name> <description>Demo project for Spring Boot</description> <properties> <java.version>13</java.version> </properties> <dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency> <!-- oracleを利用するための設定 --> <dependency> <groupId>com.oracle.jdbc</groupId> <artifactId>ojdbc6</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/lib/ojdbc6.jar</systemPath> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |
8) 今回作成したプロジェクトを選択し右クリックし、「Maven」から「プロジェクトの更新」を選択する。
以下のように、Maven更新対象のプロジェクトが選択された状態で、「OK」ボタンを押下する。
MyBatis Generator用の設定ファイルの作成
MyBatis Generator用の設定ファイルの作成手順は、以下の通り。
1) 作成したプロジェクトの「src/main/resources」フォルダを選択し右クリックし、「新規」メニューから「その他」を選択する。
2) 「MyBatis Generator Configuration File」を選択し、「次へ」ボタンを押下する。
3) 以下の画面が表示されるので、「完了」ボタンを押下する。
4) 以下のように、「generatorConfig.xml」が作成されることが確認できる。
5) 作成された「generatorConfig.xml」を、以下の内容に変更する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="OracleTables" targetRuntime="MyBatis3"> <!-- 参照元となるテーブルのあるDBへの接続設定 --> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:xe" userId="USER01" password="USER01"> </jdbcConnection> <!-- UserDataクラスを生成する設定 --> <javaModelGenerator targetPackage="com.example.demo" targetProject="demo2/src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- UserDataMapperのXMLファイルを生成する設定 --> <sqlMapGenerator targetPackage="com.example.demo" targetProject="demo2/src/main/resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- UserDataMapperクラスを生成する設定 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo" targetProject="demo2/src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 参照元となるテーブルを指定 --> <table tableName="user_data"> <property name="useActualColumnNames" value="true" /> </table> </context> </generatorConfiguration> |
MyBatis Generatorの実行
MyBatis Generatorの実行手順は、以下の通り。
1) 「generatorConfig.xml」を選択し右クリックし、「実行」から「Run MyBatis Generator」を指定する。
3) また、実行した結果、以下の赤枠のファイルが作成される。
作成された「UserData.java」の内容は、以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | package com.example.demo; public class UserData { /** * This field was generated by MyBatis Generator. This field corresponds to the database column USER_DATA.ID * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ private Integer ID; /** * This field was generated by MyBatis Generator. This field corresponds to the database column USER_DATA.NAME * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ private String NAME; /** * This field was generated by MyBatis Generator. This field corresponds to the database column USER_DATA.BIRTH_YEAR * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ private Short BIRTH_YEAR; /** * This field was generated by MyBatis Generator. This field corresponds to the database column USER_DATA.BIRTH_MONTH * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ private Short BIRTH_MONTH; /** * This field was generated by MyBatis Generator. This field corresponds to the database column USER_DATA.BIRTH_DAY * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ private Short BIRTH_DAY; /** * This field was generated by MyBatis Generator. This field corresponds to the database column USER_DATA.SEX * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ private String SEX; /** * This field was generated by MyBatis Generator. This field corresponds to the database column USER_DATA.MEMO * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ private String MEMO; /** * This method was generated by MyBatis Generator. This method returns the value of the database column USER_DATA.ID * @return the value of USER_DATA.ID * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public Integer getID() { return ID; } /** * This method was generated by MyBatis Generator. This method sets the value of the database column USER_DATA.ID * @param ID the value for USER_DATA.ID * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public void setID(Integer ID) { this.ID = ID; } /** * This method was generated by MyBatis Generator. This method returns the value of the database column USER_DATA.NAME * @return the value of USER_DATA.NAME * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public String getNAME() { return NAME; } /** * This method was generated by MyBatis Generator. This method sets the value of the database column USER_DATA.NAME * @param NAME the value for USER_DATA.NAME * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public void setNAME(String NAME) { this.NAME = NAME == null ? null : NAME.trim(); } /** * This method was generated by MyBatis Generator. This method returns the value of the database column USER_DATA.BIRTH_YEAR * @return the value of USER_DATA.BIRTH_YEAR * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public Short getBIRTH_YEAR() { return BIRTH_YEAR; } /** * This method was generated by MyBatis Generator. This method sets the value of the database column USER_DATA.BIRTH_YEAR * @param BIRTH_YEAR the value for USER_DATA.BIRTH_YEAR * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public void setBIRTH_YEAR(Short BIRTH_YEAR) { this.BIRTH_YEAR = BIRTH_YEAR; } /** * This method was generated by MyBatis Generator. This method returns the value of the database column USER_DATA.BIRTH_MONTH * @return the value of USER_DATA.BIRTH_MONTH * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public Short getBIRTH_MONTH() { return BIRTH_MONTH; } /** * This method was generated by MyBatis Generator. This method sets the value of the database column USER_DATA.BIRTH_MONTH * @param BIRTH_MONTH the value for USER_DATA.BIRTH_MONTH * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public void setBIRTH_MONTH(Short BIRTH_MONTH) { this.BIRTH_MONTH = BIRTH_MONTH; } /** * This method was generated by MyBatis Generator. This method returns the value of the database column USER_DATA.BIRTH_DAY * @return the value of USER_DATA.BIRTH_DAY * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public Short getBIRTH_DAY() { return BIRTH_DAY; } /** * This method was generated by MyBatis Generator. This method sets the value of the database column USER_DATA.BIRTH_DAY * @param BIRTH_DAY the value for USER_DATA.BIRTH_DAY * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public void setBIRTH_DAY(Short BIRTH_DAY) { this.BIRTH_DAY = BIRTH_DAY; } /** * This method was generated by MyBatis Generator. This method returns the value of the database column USER_DATA.SEX * @return the value of USER_DATA.SEX * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public String getSEX() { return SEX; } /** * This method was generated by MyBatis Generator. This method sets the value of the database column USER_DATA.SEX * @param SEX the value for USER_DATA.SEX * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public void setSEX(String SEX) { this.SEX = SEX == null ? null : SEX.trim(); } /** * This method was generated by MyBatis Generator. This method returns the value of the database column USER_DATA.MEMO * @return the value of USER_DATA.MEMO * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public String getMEMO() { return MEMO; } /** * This method was generated by MyBatis Generator. This method sets the value of the database column USER_DATA.MEMO * @param MEMO the value for USER_DATA.MEMO * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ public void setMEMO(String MEMO) { this.MEMO = MEMO == null ? null : MEMO.trim(); } } |
また、作成された「UserDataMapper.java」の内容は、以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | package com.example.demo; import com.example.demo.UserData; import com.example.demo.UserDataExample; import java.util.List; import org.apache.ibatis.annotations.Param; public interface UserDataMapper { /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ long countByExample(UserDataExample example); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int deleteByExample(UserDataExample example); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int deleteByPrimaryKey(Integer ID); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int insert(UserData record); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int insertSelective(UserData record); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ List<UserData> selectByExample(UserDataExample example); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ UserData selectByPrimaryKey(Integer ID); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int updateByExampleSelective(@Param("record") UserData record, @Param("example") UserDataExample example); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int updateByExample(@Param("record") UserData record, @Param("example") UserDataExample example); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int updateByPrimaryKeySelective(UserData record); /** * This method was generated by MyBatis Generator. This method corresponds to the database table USER_DATA * @mbg.generated Fri Oct 02 18:49:46 JST 2020 */ int updateByPrimaryKey(UserData record); } |
さらに、作成された「UserDataMapper.xml」の内容は、以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.UserDataMapper"> <resultMap id="BaseResultMap" type="com.example.demo.UserData"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> <id column="ID" jdbcType="DECIMAL" property="ID" /> <result column="NAME" jdbcType="VARCHAR" property="NAME" /> <result column="BIRTH_YEAR" jdbcType="DECIMAL" property="BIRTH_YEAR" /> <result column="BIRTH_MONTH" jdbcType="DECIMAL" property="BIRTH_MONTH" /> <result column="BIRTH_DAY" jdbcType="DECIMAL" property="BIRTH_DAY" /> <result column="SEX" jdbcType="CHAR" property="SEX" /> <result column="MEMO" jdbcType="VARCHAR" property="MEMO" /> </resultMap> <sql id="Example_Where_Clause"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> <where> <foreach collection="oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Update_By_Example_Where_Clause"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> <where> <foreach collection="example.oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Base_Column_List"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> ID, NAME, BIRTH_YEAR, BIRTH_MONTH, BIRTH_DAY, SEX, MEMO </sql> <select id="selectByExample" parameterType="com.example.demo.UserDataExample" resultMap="BaseResultMap"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> select <if test="distinct"> distinct </if> <include refid="Base_Column_List" /> from USER_DATA <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> <if test="orderByClause != null"> order by ${orderByClause} </if> </select> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> select <include refid="Base_Column_List" /> from USER_DATA where ID = #{ID,jdbcType=DECIMAL} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> delete from USER_DATA where ID = #{ID,jdbcType=DECIMAL} </delete> <delete id="deleteByExample" parameterType="com.example.demo.UserDataExample"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> delete from USER_DATA <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> </delete> <insert id="insert" parameterType="com.example.demo.UserData"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> insert into USER_DATA (ID, NAME, BIRTH_YEAR, BIRTH_MONTH, BIRTH_DAY, SEX, MEMO) values (#{ID,jdbcType=DECIMAL}, #{NAME,jdbcType=VARCHAR}, #{BIRTH_YEAR,jdbcType=DECIMAL}, #{BIRTH_MONTH,jdbcType=DECIMAL}, #{BIRTH_DAY,jdbcType=DECIMAL}, #{SEX,jdbcType=CHAR}, #{MEMO,jdbcType=VARCHAR}) </insert> <insert id="insertSelective" parameterType="com.example.demo.UserData"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> insert into USER_DATA <trim prefix="(" suffix=")" suffixOverrides=","> <if test="ID != null"> ID, </if> <if test="NAME != null"> NAME, </if> <if test="BIRTH_YEAR != null"> BIRTH_YEAR, </if> <if test="BIRTH_MONTH != null"> BIRTH_MONTH, </if> <if test="BIRTH_DAY != null"> BIRTH_DAY, </if> <if test="SEX != null"> SEX, </if> <if test="MEMO != null"> MEMO, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="ID != null"> #{ID,jdbcType=DECIMAL}, </if> <if test="NAME != null"> #{NAME,jdbcType=VARCHAR}, </if> <if test="BIRTH_YEAR != null"> #{BIRTH_YEAR,jdbcType=DECIMAL}, </if> <if test="BIRTH_MONTH != null"> #{BIRTH_MONTH,jdbcType=DECIMAL}, </if> <if test="BIRTH_DAY != null"> #{BIRTH_DAY,jdbcType=DECIMAL}, </if> <if test="SEX != null"> #{SEX,jdbcType=CHAR}, </if> <if test="MEMO != null"> #{MEMO,jdbcType=VARCHAR}, </if> </trim> </insert> <select id="countByExample" parameterType="com.example.demo.UserDataExample" resultType="java.lang.Long"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> select count(*) from USER_DATA <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> </select> <update id="updateByExampleSelective" parameterType="map"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> update USER_DATA <set> <if test="record.ID != null"> ID = #{record.ID,jdbcType=DECIMAL}, </if> <if test="record.NAME != null"> NAME = #{record.NAME,jdbcType=VARCHAR}, </if> <if test="record.BIRTH_YEAR != null"> BIRTH_YEAR = #{record.BIRTH_YEAR,jdbcType=DECIMAL}, </if> <if test="record.BIRTH_MONTH != null"> BIRTH_MONTH = #{record.BIRTH_MONTH,jdbcType=DECIMAL}, </if> <if test="record.BIRTH_DAY != null"> BIRTH_DAY = #{record.BIRTH_DAY,jdbcType=DECIMAL}, </if> <if test="record.SEX != null"> SEX = #{record.SEX,jdbcType=CHAR}, </if> <if test="record.MEMO != null"> MEMO = #{record.MEMO,jdbcType=VARCHAR}, </if> </set> <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByExample" parameterType="map"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> update USER_DATA set ID = #{record.ID,jdbcType=DECIMAL}, NAME = #{record.NAME,jdbcType=VARCHAR}, BIRTH_YEAR = #{record.BIRTH_YEAR,jdbcType=DECIMAL}, BIRTH_MONTH = #{record.BIRTH_MONTH,jdbcType=DECIMAL}, BIRTH_DAY = #{record.BIRTH_DAY,jdbcType=DECIMAL}, SEX = #{record.SEX,jdbcType=CHAR}, MEMO = #{record.MEMO,jdbcType=VARCHAR} <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByPrimaryKeySelective" parameterType="com.example.demo.UserData"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> update USER_DATA <set> <if test="NAME != null"> NAME = #{NAME,jdbcType=VARCHAR}, </if> <if test="BIRTH_YEAR != null"> BIRTH_YEAR = #{BIRTH_YEAR,jdbcType=DECIMAL}, </if> <if test="BIRTH_MONTH != null"> BIRTH_MONTH = #{BIRTH_MONTH,jdbcType=DECIMAL}, </if> <if test="BIRTH_DAY != null"> BIRTH_DAY = #{BIRTH_DAY,jdbcType=DECIMAL}, </if> <if test="SEX != null"> SEX = #{SEX,jdbcType=CHAR}, </if> <if test="MEMO != null"> MEMO = #{MEMO,jdbcType=VARCHAR}, </if> </set> where ID = #{ID,jdbcType=DECIMAL} </update> <update id="updateByPrimaryKey" parameterType="com.example.demo.UserData"> <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Fri Oct 02 18:49:46 JST 2020. --> update USER_DATA set NAME = #{NAME,jdbcType=VARCHAR}, BIRTH_YEAR = #{BIRTH_YEAR,jdbcType=DECIMAL}, BIRTH_MONTH = #{BIRTH_MONTH,jdbcType=DECIMAL}, BIRTH_DAY = #{BIRTH_DAY,jdbcType=DECIMAL}, SEX = #{SEX,jdbcType=CHAR}, MEMO = #{MEMO,jdbcType=VARCHAR} where ID = #{ID,jdbcType=DECIMAL} </update> </mapper> |
要点まとめ
- MyBatis Generatorを利用すると、SpringフレームワークでMyBatisを利用する際に必要な、EntityクラスやMapperクラス、Mapperクラスが参照するXMLファイルを自動生成できる。
- STS上でMyBatis Generatorを利用するには、MyBatis GeneratorをEclipse マーケットプレースからインストールし、定義ファイル「generatorConfig.xml」を作成後、実行すればよい。