{"id":39806,"date":"2023-10-19T08:37:39","date_gmt":"2023-09-16T00:30:25","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/"},"modified":"2024-05-04T04:58:36","modified_gmt":"2024-05-03T20:58:36","slug":"%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/","title":{"rendered":"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e"},"content":{"rendered":"<h1>\u4ec0\u4e48\uff1f<\/h1>\n<p>\u6211\u60f3\u5c1d\u8bd5\u4f7f\u7528Spring Boot+MyBatis\u6765\u6784\u5efa\u5e94\u7528\uff0c\u6211\u6253\u7b97\u4f7f\u7528MyBatis Generator\u4f5c\u4e3a\u8d77\u6b65\u3002<\/p>\n<h1>\u7ed9\u6211\u4e00\u4e2a\u53ea\u9700\u4e2d\u6587\u672c\u5730\u5316\u7684\u9009\u62e9<\/h1>\n<p>\u9898\u76ee<\/p>\n<p>\u6211\u4eec\u5c06\u5728Spring Boot\u5e94\u7528\u7a0b\u5e8f\u4e2d\u96c6\u6210MyBatis\uff0c\u5e76\u8003\u8651\u4ee5\u4e0b\u914d\u7f6e\u4f5c\u4e3a\u9898\u76ee\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Model\u304a\u3088\u3073Mapper\u306fMyBatis Generator\u3092\u4f7f\u3063\u3066\u81ea\u52d5\u751f\u6210\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>MyBatis Generator<\/p>\n<p>MyBatis Generator\u306f\u3001Maven\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u3057\u3066\u7d44\u307f\u8fbc\u3080<br \/>\n\u751f\u6210\u3059\u308bMyBatis\u306eMapper\u306f\u3001XML Mapper\u3068\u3059\u308b<br \/>\nMapper\u306b\u306f@Mapper\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u4ed8\u4e0e\u3057\u3066\u3001MyBatis Spring Boot Starter\u306b\u81ea\u52d5\u691c\u51fa\u3055\u305b\u308b<\/p>\n<p>MyBatis Spring Boot Starter \/ MyBatis Spring Boot AutoConfigure<\/p>\n<p>\u4f7f\u7528\u3059\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306fPostgreSQL\u3068\u3059\u308b<\/p>\n<p>\u6211\u4eec\u5c06\u8868\u683c\u5b9a\u4e49\u5982\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">create<\/span> <span class=\"k\">table<\/span> <span class=\"n\">pokemon<\/span> <span class=\"p\">(<\/span>\r\n  <span class=\"n\">id<\/span> <span class=\"nb\">serial<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"n\">name<\/span> <span class=\"nb\">text<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"k\">primary<\/span> <span class=\"k\">key<\/span><span class=\"p\">(<\/span><span class=\"n\">id<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">);<\/span>\r\n\r\n<span class=\"k\">create<\/span> <span class=\"k\">table<\/span> <span class=\"n\">person<\/span> <span class=\"p\">(<\/span>\r\n  <span class=\"n\">id<\/span> <span class=\"nb\">integer<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"n\">last_name<\/span> <span class=\"nb\">text<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"n\">first_name<\/span> <span class=\"nb\">text<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"k\">primary<\/span> <span class=\"k\">key<\/span><span class=\"p\">(<\/span><span class=\"n\">id<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">);<\/span>\r\n<\/code><\/pre>\n<h1>\u73af\u5883<\/h1>\n<p>\u8fd9\u6b21\u7684\u73af\u5883\u662f\u8fd9\u6837\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>java <span class=\"nt\">--version<\/span>\r\nopenjdk 11.0.14.1 2022-02-08\r\nOpenJDK Runtime Environment <span class=\"o\">(<\/span>build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04<span class=\"o\">)<\/span>\r\nOpenJDK 64-Bit Server VM <span class=\"o\">(<\/span>build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing<span class=\"o\">)<\/span>\r\n\r\n\r\n<span class=\"nv\">$ <\/span>mvn <span class=\"nt\">--version<\/span>\r\nApache Maven 3.8.5 <span class=\"o\">(<\/span>3599d3414f046de2324203b78ddcf9b5e4388aa0<span class=\"o\">)<\/span>\r\nMaven home: <span class=\"nv\">$HOME<\/span>\/.sdkman\/candidates\/maven\/current\r\nJava version: 11.0.14.1, vendor: Ubuntu, runtime: \/usr\/lib\/jvm\/java-11-openjdk-amd64\r\nDefault locale: ja_JP, platform encoding: UTF-8\r\nOS name: <span class=\"s2\">\"linux\"<\/span>, version: <span class=\"s2\">\"5.4.0-107-generic\"<\/span>, <span class=\"nb\">arch<\/span>: <span class=\"s2\">\"amd64\"<\/span>, family: <span class=\"s2\">\"unix\"<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u4f7f\u7528\u7684\u662fPostgreSQL 14.2\u7248\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker container run <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-it<\/span> <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">--rm<\/span> <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">--name<\/span> postgres <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-p<\/span> 5432:5432 <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-e<\/span> <span class=\"nv\">POSTGRES_PASSWORD<\/span><span class=\"o\">=<\/span>password <span class=\"se\">\\<\/span>\r\n  postgres:14.2-bullseye\r\n<\/code><\/pre>\n<h1>\u521b\u5efaSpring Boot\u9879\u76ee<\/h1>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>curl <span class=\"nt\">-s<\/span> https:\/\/start.spring.io\/starter.tgz <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">bootVersion<\/span><span class=\"o\">=<\/span>2.6.6 <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">javaVersion<\/span><span class=\"o\">=<\/span>11 <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">name<\/span><span class=\"o\">=<\/span>spring-boot-mybatis-generator-demo <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">groupId<\/span><span class=\"o\">=<\/span>com.example <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">artifactId<\/span><span class=\"o\">=<\/span>com.example <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">version<\/span><span class=\"o\">=<\/span>0.0.1-SNAPSHOT <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">packageName<\/span><span class=\"o\">=<\/span>com.example.spring.mybatis <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">dependencies<\/span><span class=\"o\">=<\/span>mybatis,postgresql <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-d<\/span> <span class=\"nv\">baseDir<\/span><span class=\"o\">=<\/span>spring-boot-mybatis-generator-demo | <span class=\"nb\">tar <\/span>zxvf -\r\n<\/code><\/pre>\n<p>\u8fdb\u5165\u9879\u76ee\u5185\u90e8\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cd <\/span>spring-boot-mybatis-generator-demo\r\n<\/code><\/pre>\n<p>\u8fd9\u91cc\u53ef\u4ee5\u627e\u5230\u81ea\u52a8\u751f\u6210\u7684\u4f9d\u5b58\u5173\u7cfb\u548c\u63d2\u4ef6\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>\t<span class=\"nt\">&lt;properties&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;java.version&gt;<\/span>11<span class=\"nt\">&lt;\/java.version&gt;<\/span>\r\n\t<span class=\"nt\">&lt;\/properties&gt;<\/span>\r\n\t<span class=\"nt\">&lt;dependencies&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;dependency&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.mybatis.spring.boot<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>mybatis-spring-boot-starter<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;version&gt;<\/span>2.2.2<span class=\"nt\">&lt;\/version&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;\/dependency&gt;<\/span>\r\n\r\n\t\t<span class=\"nt\">&lt;dependency&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.postgresql<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>postgresql<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;scope&gt;<\/span>runtime<span class=\"nt\">&lt;\/scope&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;\/dependency&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;dependency&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.springframework.boot<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>spring-boot-starter-test<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;scope&gt;<\/span>test<span class=\"nt\">&lt;\/scope&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;\/dependency&gt;<\/span>\r\n\t<span class=\"nt\">&lt;\/dependencies&gt;<\/span>\r\n\r\n\t<span class=\"nt\">&lt;build&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;plugins&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;plugin&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.springframework.boot<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>spring-boot-maven-plugin<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;\/plugin&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;\/plugins&gt;<\/span>\r\n\t<span class=\"nt\">&lt;\/build&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u53ea\u662f\u6dfb\u52a0\u4e86\u6570\u636e\u5e93\u8fde\u63a5\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"py\">spring.datasource.url<\/span><span class=\"p\">=<\/span><span class=\"s\">jdbc:postgresql:\/\/localhost:5432\/postgres<\/span>\r\n<span class=\"py\">spring.datasource.username<\/span><span class=\"p\">=<\/span><span class=\"s\">postgres<\/span>\r\n<span class=\"py\">spring.datasource.password<\/span><span class=\"p\">=<\/span><span class=\"s\">password<\/span>\r\n<\/code><\/pre>\n<h1>\u5728\u9879\u76ee\u4e2d\u6dfb\u52a0MyBatis Generator\u5de5\u5177<\/h1>\n<p>\u5728pom.xml\u4e2d\u52a0\u5165MyBatis Generator\u3002<\/p>\n<pre class=\"post-pre\"><code>\t<span class=\"nt\">&lt;build&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;plugins&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;plugin&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.springframework.boot<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>spring-boot-maven-plugin<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;\/plugin&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;plugin&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.mybatis.generator<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>mybatis-generator-maven-plugin<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;version&gt;<\/span>1.4.1<span class=\"nt\">&lt;\/version&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;configuration&gt;<\/span>\r\n\t\t\t\t\t<span class=\"nt\">&lt;configurationFile&gt;<\/span>${project.basedir}\/src\/main\/resources\/generatorConfig.xml<span class=\"nt\">&lt;\/configurationFile&gt;<\/span>\r\n\t\t\t\t\t<span class=\"nt\">&lt;overwrite&gt;<\/span>true<span class=\"nt\">&lt;\/overwrite&gt;<\/span>\r\n\t\t\t\t\t<span class=\"nt\">&lt;includeAllDependencies&gt;<\/span>true<span class=\"nt\">&lt;\/includeAllDependencies&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;\/configuration&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;\/plugin&gt;<\/span>\r\n\t\t<span class=\"nt\">&lt;\/plugins&gt;<\/span>\r\n\t<span class=\"nt\">&lt;\/build&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u6587\u4ef6\u5728\u8fd9\u91cc\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u914d\u7f6e\u6587\u4ef6\u7684\u5185\u5bb9\u4e0e\u9ed8\u8ba4\u503c\u76f8\u540c\uff0c\u4f46\u662f\u660e\u786e\u5199\u6709MyBatis Generator\u7684\u914d\u7f6e\u6587\u4ef6\u662f\u4e3a\u4e86\u6807\u660e\u3002<\/p>\n<p>\u901a\u8fc7\u5c06overwrite\u8bbe\u7f6e\u4e3atrue\u5e76\u5c06includeAllDependencies\u8bbe\u7f6e\u4e3atrue\uff0c\u53ef\u4ee5\u542f\u7528\u81ea\u52a8\u751f\u6210\u7ed3\u679c\u7684\u8986\u76d6\uff0c\u5e76\u4f7f\u5176\u80fd\u591f\u5f15\u7528\u8fd0\u884c\u65f6\u8303\u56f4\u4e2d\u7684PostgreSQL JDBC\u9a71\u52a8\u7a0b\u5e8f\u7684\u4f9d\u8d56\u5173\u7cfb\u3002<\/p>\n<p>\u5982\u679c\u4e0d\u559c\u6b22\u4f7f\u7528includeAllDependencies\uff0c\u53ef\u4ee5\u901a\u8fc7\u5728\u63d2\u4ef6\u7684\u4f9d\u8d56\u4e2d\u6dfb\u52a0PostgreSQL\u7684JDBC\u9a71\u52a8\u7a0b\u5e8f\u6765\u89e3\u51b3\u3002<\/p>\n<pre class=\"post-pre\"><code>\t\t\t<span class=\"nt\">&lt;plugin&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.mybatis.generator<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>mybatis-generator-maven-plugin<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;version&gt;<\/span>1.4.1<span class=\"nt\">&lt;\/version&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;configuration&gt;<\/span>\r\n\t\t\t\t\t<span class=\"nt\">&lt;configurationFile&gt;<\/span>${project.basedir}\/src\/main\/resources\/generatorConfig.xml <span class=\"nt\">&lt;\/configurationFile&gt;<\/span>\r\n\t\t\t\t\t<span class=\"nt\">&lt;overwrite&gt;<\/span>true<span class=\"nt\">&lt;\/overwrite&gt;<\/span>\r\n\t\t\t\t\t<span class=\"c\">&lt;!-- &lt;includeAllDependencies&gt;true&lt;\/includeAllDependencies&gt; --&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;\/configuration&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;dependencies&gt;<\/span>\r\n\t\t\t\t\t<span class=\"nt\">&lt;dependency&gt;<\/span>\r\n\t\t\t\t\t\t<span class=\"nt\">&lt;groupId&gt;<\/span>org.postgresql<span class=\"nt\">&lt;\/groupId&gt;<\/span>\r\n\t\t\t\t\t\t<span class=\"nt\">&lt;artifactId&gt;<\/span>postgresql<span class=\"nt\">&lt;\/artifactId&gt;<\/span>\r\n\t\t\t\t\t\t<span class=\"nt\">&lt;version&gt;<\/span>${postgresql.version}<span class=\"nt\">&lt;\/version&gt;<\/span>\r\n\t\t\t\t\t<span class=\"nt\">&lt;\/dependency&gt;<\/span>\r\n\t\t\t\t<span class=\"nt\">&lt;\/dependencies&gt;<\/span>\r\n\t\t\t<span class=\"nt\">&lt;\/plugin&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u8fd9\u662fMyBatis Generator\u7684\u914d\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;<\/span>\r\n<span class=\"cp\">&lt;!DOCTYPE generatorConfiguration PUBLIC\r\n        \"-\/\/mybatis.org\/\/DTD MyBatis Generator Configuration 1.0\/\/EN\"\r\n        \"http:\/\/mybatis.org\/dtd\/mybatis-generator-config_1_0.dtd\"&gt;<\/span>\r\n<span class=\"nt\">&lt;generatorConfiguration&gt;<\/span>\r\n    <span class=\"nt\">&lt;context<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"tables\"<\/span> <span class=\"na\">targetRuntime=<\/span><span class=\"s\">\"MyBatis3\"<\/span><span class=\"nt\">&gt;<\/span>\r\n        <span class=\"nt\">&lt;plugin<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"org.mybatis.generator.plugins.EqualsHashCodePlugin\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;plugin<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"org.mybatis.generator.plugins.MapperAnnotationPlugin\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n\r\n        <span class=\"nt\">&lt;jdbcConnection<\/span>\r\n                <span class=\"na\">driverClass=<\/span><span class=\"s\">\"org.postgresql.Driver\"<\/span>\r\n                <span class=\"na\">connectionURL=<\/span><span class=\"s\">\"jdbc:postgresql:\/\/localhost:5432\/postgres\"<\/span>\r\n                <span class=\"na\">userId=<\/span><span class=\"s\">\"postgres\"<\/span>\r\n                <span class=\"na\">password=<\/span><span class=\"s\">\"password\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n\r\n        <span class=\"nt\">&lt;javaModelGenerator<\/span>\r\n                <span class=\"na\">targetPackage=<\/span><span class=\"s\">\"com.example.spring.mybatis.model\"<\/span>\r\n                <span class=\"na\">targetProject=<\/span><span class=\"s\">\"src\/main\/java\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;sqlMapGenerator<\/span>\r\n                <span class=\"na\">targetPackage=<\/span><span class=\"s\">\"com.example.spring.mybatis.mapper\"<\/span>\r\n                <span class=\"na\">targetProject=<\/span><span class=\"s\">\"src\/main\/resources\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;javaClientGenerator<\/span>\r\n                <span class=\"na\">type=<\/span><span class=\"s\">\"XMLMAPPER\"<\/span>\r\n                <span class=\"na\">targetPackage=<\/span><span class=\"s\">\"com.example.spring.mybatis.mapper\"<\/span>\r\n                <span class=\"na\">targetProject=<\/span><span class=\"s\">\"src\/main\/java\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n\r\n        <span class=\"nt\">&lt;table<\/span> <span class=\"na\">tableName=<\/span><span class=\"s\">\"pokemon\"<\/span><span class=\"nt\">&gt;<\/span>\r\n            <span class=\"nt\">&lt;generatedKey<\/span> <span class=\"na\">column=<\/span><span class=\"s\">\"id\"<\/span> <span class=\"na\">sqlStatement=<\/span><span class=\"s\">\"JDBC\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;\/table&gt;<\/span>\r\n        <span class=\"nt\">&lt;table<\/span> <span class=\"na\">tableName=<\/span><span class=\"s\">\"person\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n    <span class=\"nt\">&lt;\/context&gt;<\/span>\r\n<span class=\"nt\">&lt;\/generatorConfiguration&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u5728\u4f7f\u7528XML Mapper\u4e4b\u524d\u7684\u524d\u63d0\u6761\u4ef6\u662f\u5c06targetRuntime\u8bbe\u7f6e\u4e3aMyBatis3\u3002<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code>    <span class=\"nt\">&lt;context<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"tables\"<\/span> <span class=\"na\">targetRuntime=<\/span><span class=\"s\">\"MyBatis3\"<\/span><span class=\"nt\">&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u7ed9\u751f\u6210\u7684Mapper\u6dfb\u52a0@Mapper\u6ce8\u89e3\uff0c\u6211\u4eec\u5c06\u5e94\u7528org.mybatis.generator.plugins.MapperAnnotationPlugin\u63d2\u4ef6\u3002<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code>        <span class=\"nt\">&lt;plugin<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"org.mybatis.generator.plugins.EqualsHashCodePlugin\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;plugin<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"org.mybatis.generator.plugins.MapperAnnotationPlugin\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n<\/code><\/pre>\n<p>org.mybatis.generator.plugins.EqualsHashCodePlugin\u63d2\u4ef6\u662f\u9644\u5e26\u7684\uff0c\u5b83\u81ea\u52a8\u4e3a\u6a21\u578b\u751f\u6210equals\u548chashCode\u65b9\u6cd5\u3002<\/p>\n<p>\u6a21\u578b\u3001Mapper XML\u6587\u4ef6\u548cMapper\u7684\u751f\u6210\u3002<\/p>\n<pre class=\"post-pre\"><code>        <span class=\"nt\">&lt;javaModelGenerator<\/span>\r\n                <span class=\"na\">targetPackage=<\/span><span class=\"s\">\"com.example.spring.mybatis.model\"<\/span>\r\n                <span class=\"na\">targetProject=<\/span><span class=\"s\">\"src\/main\/java\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;sqlMapGenerator<\/span>\r\n                <span class=\"na\">targetPackage=<\/span><span class=\"s\">\"com.example.spring.mybatis.mapper\"<\/span>\r\n                <span class=\"na\">targetProject=<\/span><span class=\"s\">\"src\/main\/resources\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;javaClientGenerator<\/span>\r\n                <span class=\"na\">type=<\/span><span class=\"s\">\"XMLMAPPER\"<\/span>\r\n                <span class=\"na\">targetPackage=<\/span><span class=\"s\">\"com.example.spring.mybatis.mapper\"<\/span>\r\n                <span class=\"na\">targetProject=<\/span><span class=\"s\">\"src\/main\/java\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u6307\u5b9aXMLMAPPER\uff0c\u4f1a\u751f\u6210\u4e00\u4e2aMapper\u5bf9\u8c61\uff0c\u4ee5\u4fbf\u4f7f\u7528Mapper XML\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u7136\u540e\uff0c\u6307\u5b9a\u8981\u81ea\u52a8\u751f\u6210\u7684\u8868\u683c\u3002<\/p>\n<pre class=\"post-pre\"><code>        <span class=\"nt\">&lt;table<\/span> <span class=\"na\">tableName=<\/span><span class=\"s\">\"pokemon\"<\/span><span class=\"nt\">&gt;<\/span>\r\n            <span class=\"nt\">&lt;generatedKey<\/span> <span class=\"na\">column=<\/span><span class=\"s\">\"id\"<\/span> <span class=\"na\">sqlStatement=<\/span><span class=\"s\">\"JDBC\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n        <span class=\"nt\">&lt;\/table&gt;<\/span>\r\n        <span class=\"nt\">&lt;table<\/span> <span class=\"na\">tableName=<\/span><span class=\"s\">\"person\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n<\/code><\/pre>\n<p>generatedKey\u662f\u7528\u4e8e\u81ea\u52a8\u4e3a\u4e3b\u952e\u7f16\u53f7\u7684\u3002<\/p>\n<p>\u73b0\u5728\u5f00\u59cb\u6267\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>mvn mybatis-generator:generate\r\n<\/code><\/pre>\n<p>\u4ea7\u751f\u7ed3\u679c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>tree src\/main\/java\/com\/example\/spring\/mybatis\/<span class=\"o\">{<\/span>mapper,model<span class=\"o\">}<\/span> src\/main\/resources\/com\/exampl\r\ne\/spring\/mybatis\/mapper\r\nsrc\/main\/java\/com\/example\/spring\/mybatis\/mapper\r\n\u251c\u2500\u2500 PersonMapper.java\r\n\u2514\u2500\u2500 PokemonMapper.java\r\nsrc\/main\/java\/com\/example\/spring\/mybatis\/model\r\n\u251c\u2500\u2500 Person.java\r\n\u251c\u2500\u2500 PersonExample.java\r\n\u251c\u2500\u2500 Pokemon.java\r\n\u2514\u2500\u2500 PokemonExample.java\r\nsrc\/main\/resources\/com\/example\/spring\/mybatis\/mapper\r\n\u251c\u2500\u2500 PersonMapper.xml\r\n\u2514\u2500\u2500 PokemonMapper.xml\r\n\r\n0 directories, 8 files\r\n<\/code><\/pre>\n<p>Mapper\u63a5\u53e3\u4e0a\u6709@Mapper\u6ce8\u89e3\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nd\">@Mapper<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">interface<\/span> <span class=\"nc\">PokemonMapper<\/span> <span class=\"o\">{<\/span>\r\n<\/code><\/pre>\n<p>\u901a\u8fc7MyBatis Spring Boot Starter\u7684AutoConfigure\uff0c\u73b0\u5728\u53ef\u4ee5\u8ba4\u8bc6\u5230Mapper\u3002<\/p>\n<h1>\u5c1d\u8bd5\u79fb\u52a8\u4e00\u4e0b<\/h1>\n<p>\u65e2\u7136\u4f7f\u7528\u4e86MyBatis Generator\u5b8c\u6210\u81ea\u52a8\u5316\u751f\u6210\uff0c\u6211\u4eec\u53ef\u4ee5\u7b80\u5355\u4f7f\u7528\u4e00\u4e0b\u8fdb\u884c\u64cd\u4f5c\u786e\u8ba4\u3002<\/p>\n<p>\u521b\u5efa\u8fd9\u6837\u4e00\u4e2a\u7c7b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">com.example.spring.mybatis<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">com.example.spring.mybatis.mapper.PersonMapper<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">com.example.spring.mybatis.mapper.PokemonMapper<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">com.example.spring.mybatis.model.Person<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">com.example.spring.mybatis.model.Pokemon<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">com.example.spring.mybatis.model.PokemonExample<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.slf4j.Logger<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.slf4j.LoggerFactory<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.boot.ApplicationArguments<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.boot.ApplicationRunner<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.stereotype.Component<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.transaction.annotation.Transactional<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"nd\">@Component<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">DemoRunner<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">ApplicationRunner<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"nc\">Logger<\/span> <span class=\"n\">logger<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">LoggerFactory<\/span><span class=\"o\">.<\/span><span class=\"na\">getLogger<\/span><span class=\"o\">(<\/span><span class=\"nc\">DemoRunner<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">);<\/span>\r\n\r\n    <span class=\"nc\">PokemonMapper<\/span> <span class=\"n\">pokemonMapper<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"nc\">PersonMapper<\/span> <span class=\"n\">personMapper<\/span><span class=\"o\">;<\/span>\r\n\r\n    <span class=\"kd\">public<\/span> <span class=\"nf\">DemoRunner<\/span><span class=\"o\">(<\/span><span class=\"nc\">PokemonMapper<\/span> <span class=\"n\">pokemonMapper<\/span><span class=\"o\">,<\/span> <span class=\"nc\">PersonMapper<\/span> <span class=\"n\">personMapper<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">pokemonMapper<\/span> <span class=\"o\">=<\/span> <span class=\"n\">pokemonMapper<\/span><span class=\"o\">;<\/span>\r\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">personMapper<\/span> <span class=\"o\">=<\/span> <span class=\"n\">personMapper<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"nd\">@Transactional<\/span>\r\n    <span class=\"nd\">@Override<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">run<\/span><span class=\"o\">(<\/span><span class=\"nc\">ApplicationArguments<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">Exception<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">Pokemon<\/span> <span class=\"n\">pikachu<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Pokemon<\/span><span class=\"o\">();<\/span>\r\n        <span class=\"n\">pikachu<\/span><span class=\"o\">.<\/span><span class=\"na\">setName<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\u30d4\u30ab\u30c1\u30e5\u30a6\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">pokemonMapper<\/span><span class=\"o\">.<\/span><span class=\"na\">insert<\/span><span class=\"o\">(<\/span><span class=\"n\">pikachu<\/span><span class=\"o\">);<\/span>\r\n\r\n        <span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"pikachu id = {}\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">pikachu<\/span><span class=\"o\">.<\/span><span class=\"na\">getId<\/span><span class=\"o\">());<\/span>\r\n\r\n        <span class=\"nc\">Pokemon<\/span> <span class=\"n\">fushigidane<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Pokemon<\/span><span class=\"o\">();<\/span>\r\n        <span class=\"n\">fushigidane<\/span><span class=\"o\">.<\/span><span class=\"na\">setName<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\u30d5\u30b7\u30ae\u30c0\u30cd\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">pokemonMapper<\/span><span class=\"o\">.<\/span><span class=\"na\">insert<\/span><span class=\"o\">(<\/span><span class=\"n\">fushigidane<\/span><span class=\"o\">);<\/span>\r\n\r\n        <span class=\"n\">pokemonMapper<\/span>\r\n                <span class=\"o\">.<\/span><span class=\"na\">selectByExample<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"nc\">PokemonExample<\/span><span class=\"o\">())<\/span>\r\n                <span class=\"o\">.<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">pokemon<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"pokemon[{}]: {}\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">pokemon<\/span><span class=\"o\">.<\/span><span class=\"na\">getId<\/span><span class=\"o\">(),<\/span> <span class=\"n\">pokemon<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">()));<\/span>\r\n\r\n        <span class=\"nc\">Person<\/span> <span class=\"n\">tanjiro<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Person<\/span><span class=\"o\">();<\/span>\r\n        <span class=\"n\">tanjiro<\/span><span class=\"o\">.<\/span><span class=\"na\">setId<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">tanjiro<\/span><span class=\"o\">.<\/span><span class=\"na\">setLastName<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\u7ac8\u9580\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">tanjiro<\/span><span class=\"o\">.<\/span><span class=\"na\">setFirstName<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\u70ad\u6cbb\u90ce\"<\/span><span class=\"o\">);<\/span>\r\n\r\n        <span class=\"n\">personMapper<\/span><span class=\"o\">.<\/span><span class=\"na\">insert<\/span><span class=\"o\">(<\/span><span class=\"n\">tanjiro<\/span><span class=\"o\">);<\/span>\r\n\r\n        <span class=\"nc\">Person<\/span> <span class=\"n\">result<\/span> <span class=\"o\">=<\/span> <span class=\"n\">personMapper<\/span><span class=\"o\">.<\/span><span class=\"na\">selectByPrimaryKey<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"person[{}]: {} {}\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getId<\/span><span class=\"o\">(),<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getLastName<\/span><span class=\"o\">(),<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getFirstName<\/span><span class=\"o\">());<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u8bd5\u7740\u52a8\u4e00\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>mvn spring-boot:run\r\n<\/code><\/pre>\n<p>\u7ed3\u679c\u3002<\/p>\n<pre class=\"post-pre\"><code>2022-04-08 20:56:32.355  INFO 141382 <span class=\"nt\">---<\/span> <span class=\"o\">[<\/span>           main] com.example.spring.mybatis.DemoRunner    : pikachu <span class=\"nb\">id<\/span> <span class=\"o\">=<\/span> 1\r\n2022-04-08 20:56:32.382  INFO 141382 <span class=\"nt\">---<\/span> <span class=\"o\">[<\/span>           main] com.example.spring.mybatis.DemoRunner    : pokemon[1]: \u30d4\u30ab\u30c1\u30e5\u30a6\r\n2022-04-08 20:56:32.383  INFO 141382 <span class=\"nt\">---<\/span> <span class=\"o\">[<\/span>           main] com.example.spring.mybatis.DemoRunner    : pokemon[2]: \u30d5\u30b7\u30ae\u30c0\u30cd\r\n2022-04-08 20:56:32.388  INFO 141382 <span class=\"nt\">---<\/span> <span class=\"o\">[<\/span>           main] com.example.spring.mybatis.DemoRunner    : person[1]: \u7ac8\u9580 \u70ad\u6cbb\u90ce\r\n<\/code><\/pre>\n<p>\u5220\u9664\u65e5\u671f\u548c\u65f6\u95f4\uff0c\u5e76\u4f7f\u5176\u66f4\u52a0\u6e05\u6670\u6613\u8bfb\u3002<\/p>\n<pre class=\"post-pre\"><code>pokemon[1]: \u30d4\u30ab\u30c1\u30e5\u30a6\r\npokemon[2]: \u30d5\u30b7\u30ae\u30c0\u30cd\r\nperson[1]: \u7ac8\u9580 \u70ad\u6cbb\u90ce\r\n<\/code><\/pre>\n<p>\u597d\u7684\uff0c\u6ca1\u95ee\u9898\u3002<\/p>\n<p>\u867d\u7136\u5f88\u7b80\u5355\uff0c\u5c31\u8fd9\u6837\u5427\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ec0\u4e48\uff1f \u6211\u60f3\u5c1d\u8bd5\u4f7f\u7528Spring Boot+MyBatis\u6765\u6784\u5efa\u5e94\u7528\uff0c\u6211\u6253\u7b97\u4f7f\u7528MyBatis Generat [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-39806","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06mybatis-generator\u4e0espring-boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e\" \/>\n<meta property=\"og:description\" content=\"\u4ec0\u4e48\uff1f \u6211\u60f3\u5c1d\u8bd5\u4f7f\u7528Spring Boot+MyBatis\u6765\u6784\u5efa\u5e94\u7528\uff0c\u6211\u6253\u7b97\u4f7f\u7528MyBatis Generat [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06mybatis-generator\u4e0espring-boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-16T00:30:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T20:58:36+00:00\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/\",\"name\":\"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-09-16T00:30:25+00:00\",\"dateModified\":\"2024-05-03T20:58:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06mybatis-generator\u4e0espring-boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e","og_description":"\u4ec0\u4e48\uff1f \u6211\u60f3\u5c1d\u8bd5\u4f7f\u7528Spring Boot+MyBatis\u6765\u6784\u5efa\u5e94\u7528\uff0c\u6211\u6253\u7b97\u4f7f\u7528MyBatis Generat [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06mybatis-generator\u4e0espring-boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-09-16T00:30:25+00:00","article_modified_time":"2024-05-03T20:58:36+00:00","author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/","name":"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-09-16T00:30:25+00:00","dateModified":"2024-05-03T20:58:36+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5c1d\u8bd5\u5c06MyBatis Generator\u4e0eSpring Boot\u5e94\u7528\u7a0b\u5e8f\u7ed3\u5408\u4f7f\u7528\u6765\u914d\u7f6e"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86mybatis-generator%e4%b8%8espring-boot%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%bb%93%e5%90%88%e4%bd%bf%e7%94%a8%e6%9d%a5%e9%85%8d%e7%bd%ae%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=39806"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39806\/revisions"}],"predecessor-version":[{"id":96255,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39806\/revisions\/96255"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=39806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=39806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=39806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}