zoukankan      html  css  js  c++  java
  • springboot2.X整合mybatis

    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注解不然运行会抛异常

     =====================================整合结束 , 测试没毛病=====================================

  • 相关阅读:
    Atitit 集团与个人的完整入口列表 attilax的完整入口 1. 集团与个人的完整入口列表 1 2. 流量入口概念 2 3. 流量入口的历史与发展 2 1.集团与个人的完整入口列表
    atitit 每季度日程表 每季度流程 v3 qaf.docx Ver history V2 add diary cyar data 3 cate V3 fix detail 3cate ,
    Atitit react 详细使用总结 绑定列表显示 attilax总结 1. 前言 1 1.1. 资料数量在百度内的数量对比 1 1.2. 版本16 v15.6.1 1 1.3. 引入js 2
    Atitit r2017 r3 doc list on home ntpc.docx
    Atitit r2017 ra doc list on home ntpc.docx
    Atiitt attilax掌握的前后技术放在简历里面.docx
    Atitit q2016 qa doc list on home ntpc.docx
    Atitit r7 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0D3C8 D:\ati\r2017 v3 r01\
    Atitit 可移植性之道attilax著
    Atitit q2016 q5 doc list on home ntpc.docx
  • 原文地址:https://www.cnblogs.com/cx987514451/p/9355299.html
Copyright © 2011-2022 走看看