github地址:https://github.com/BenchChen/springboot
1) 创建springboot-maven项目,并修改pom文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <groupId>com.cx</groupId> 7 <artifactId>180723_mybatisdome</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <packaging>jar</packaging> 10 11 <name>180723_mybatisdome</name> 12 <description>Demo project for Spring Boot</description> 13 14 <parent> 15 <groupId>org.springframework.boot</groupId> 16 <artifactId>spring-boot-starter-parent</artifactId> 17 <version>2.0.3.RELEASE</version> 18 <relativePath/> <!-- lookup parent from repository --> 19 </parent> 20 21 <properties> 22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 23 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 24 <java.version>1.8</java.version> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-web</artifactId> 31 </dependency> 32 <dependency> 33 <groupId>org.mybatis.spring.boot</groupId> 34 <artifactId>mybatis-spring-boot-starter</artifactId> 35 <version>1.3.2</version> 36 </dependency> 37 <!-- alibaba的druid数据库连接池 --> 38 <dependency> 39 <groupId>com.alibaba</groupId> 40 <artifactId>druid-spring-boot-starter</artifactId> 41 <version>1.1.9</version> 42 </dependency> 43 <dependency> 44 <groupId>mysql</groupId> 45 <artifactId>mysql-connector-java</artifactId> 46 <scope>runtime</scope> 47 </dependency> 48 <dependency> 49 <groupId>org.springframework.boot</groupId> 50 <artifactId>spring-boot-starter-test</artifactId> 51 <scope>test</scope> 52 </dependency> 53 </dependencies> 54 55 <build> 56 <plugins> 57 <plugin> 58 <groupId>org.springframework.boot</groupId> 59 <artifactId>spring-boot-maven-plugin</artifactId> 60 </plugin> 61 <!-- Mybatis-Generator插件,自动生成代码 --> 62 <plugin> 63 <groupId>org.mybatis.generator</groupId> 64 <artifactId>mybatis-generator-maven-plugin</artifactId> 65 <version>1.3.5</version> 66 <configuration> 67 <configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile> 68 <verbose>true</verbose> 69 <overwrite>true</overwrite> 70 </configuration> 71 </plugin> 72 </plugins> 73 </build> 74 75 76 </project>
2 ) 在 src/main/resources 目录下新建配置文件 datasource.properties保存连接数据库的信息 , 为generator 准备
1 ## mysql驱动包的本地路径,这个jar包的版本要和pom.xml里配置的版本一致 2 db.driverLocation=E:\mavenKu\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar 3 ## 驱动类的包名 4 db.driverClassName=com.mysql.jdbc.Driver 5 ## // 连接数据库的url 6 db.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8 7 ## 用户名 8 db.username=root 9 ## 密码 10 db.password=root
3 ) 在 src/main/resources 目录下新建配置文件 generatorConfig.xml , generator 配置信息
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 6 <generatorConfiguration> 7 <!--导入属性配置文件--> 8 <properties resource="datasource.properties"/> 9 10 <!--指定特定数据库的jdbc驱动jar包的位置--> 11 <classPathEntry location="${db.driverLocation}"/> 12 13 <!-- 选择运行的mybatis版本 --> 14 <context id="default" targetRuntime="MyBatis3"> 15 16 <!-- optional,旨在创建class时,对注释进行控制 --> 17 <commentGenerator> 18 <property name="suppressDate" value="true"/> 19 <property name="suppressAllComments" value="true"/> 20 </commentGenerator> 21 22 <!--jdbc的数据库连接 --> 23 <jdbcConnection 24 driverClass="${db.driverClassName}" 25 connectionURL="${db.url}" 26 userId="${db.username}" 27 password="${db.password}"> 28 </jdbcConnection> 29 30 <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制--> 31 <javaTypeResolver> 32 <property name="forceBigDecimals" value="false"/> 33 </javaTypeResolver> 34 35 <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类 36 targetPackage 指定生成的model生成所在的包名 37 targetProject 指定在该项目下所在的路径 38 --> 39 <javaModelGenerator targetPackage="com.cx.user.model" targetProject="./src/main/java"> 40 <!-- 是否允许子包,即targetPackage.schemaName.tableName --> 41 <property name="enableSubPackages" value="false"/> 42 <!-- 是否对model添加 构造函数 --> 43 <property name="constructorBased" value="true"/> 44 <!-- 是否对类CHAR类型的列的数据进行trim操作 --> 45 <property name="trimStrings" value="true"/> 46 <!-- 建立的Model对象是否不可改变 即生成的Model对象不会有 setter方法,只有构造方法 --> 47 <property name="immutable" value="false"/> 48 </javaModelGenerator> 49 50 <!--mapper xml映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 --> 51 <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources"> 52 <property name="enableSubPackages" value="false"/> 53 </sqlMapGenerator> 54 55 <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码 56 type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 57 type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 58 type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 59 --> 60 61 <!-- targetPackage:dao层mapper接口生成的位置 --> 62 <javaClientGenerator type="XMLMAPPER" targetPackage="com.cx.user.dao" targetProject="./src/main/java"> 63 <!-- enableSubPackages:是否让schema作为包的后缀 --> 64 <property name="enableSubPackages" value="false" /> 65 </javaClientGenerator> 66 67 <!-- 配置表格映射 --> 68 <table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/> 69 </context> 70 </generatorConfiguration>
4 ) 修改 application.yml , 配置数据池
1 server: 2 port: 8080 3 4 spring: 5 datasource: 6 name: mybatis_test 7 #使用druid连接池 8 type: com.alibaba.druid.pool.DruidDataSource 9 #druid相关配置 10 druid: 11 #监控统计拦截的filters 12 filters: stat 13 driver-class-name: com.mysql.jdbc.Driver 14 #配置基本属性 15 url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 16 username: root 17 password: root 18 #配置初始化大小/最小/最大 19 initial-size: 1 20 min-idle: 1 21 max-active: 20 22 #获取连接等待超时时间 23 max-wait: 60000 24 #间隔多久进行一次检测,检测需要关闭的空闲连接 25 time-between-eviction-runs-millis: 60000 26 #一个连接在池中最小生存的时间 27 min-evictable-idle-time-millis: 300000 28 validation-query: SELECT 'x' 29 test-while-idle: true 30 test-on-borrow: false 31 test-on-return: false 32 #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false 33 pool-prepared-statements: false 34 max-pool-prepared-statement-per-connection-size: 20 35 36 mybatis: 37 # 映射文件所在路径 38 mapper-locations: classpath:mappers/*.xml 39 # pojo类所在包路径 40 type-aliases-package: com.cx.user.model
5 ) 在 pom.xml 文件上右键 Run As >> Maven builed 在弹出的窗口 Goals 处输入 mybatis-generator:generate 然后Run 等待文件生成
此时项目结构如下, 图中红圈位置是自己写的 , 不会生成。
PS:注意要在mapper接口上加上@Mapper注解不然运行会抛异常
=====================================整合结束 , 测试没毛病=====================================