引入mybatis依赖和驱动依赖

  1. <dependency>
  2. <groupId>org.mybatis.spring.boot</groupId>
  3. <artifactId>mybatis-spring-boot-starter</artifactId>
  4. <version>${mybatis-spring-boot-starter}</version>
  5. </dependency>
  6. <!-- 分页插件 -->
  7. <dependency>
  8. <groupId>com.github.pagehelper</groupId>
  9. <artifactId>pagehelper-spring-boot-starter</artifactId>
  10. <version>${pagehelper-spring-boot-starter}</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>cn.easyproject</groupId>
  14. <artifactId>orai18n</artifactId>
  15. <version>${orai18n}</version>
  16. </dependency>
  17. <!--oracle驱动包依赖-->
  18. <dependency>
  19. <groupId>oracle</groupId>
  20. <artifactId>ojdbc6</artifactId>
  21. <version>11.2.0.4.0</version>
  22. <scope>system</scope>
  23. <systemPath>${pom.basedir}/lib/ojdbc6-11.2.0.3.jar</systemPath>
  24. </dependency>

配置文件

  1. mybatis:
  2. mapper-locations: classpath:mapper/**/*.xml
  3. check-config-location: true

配置数据源

  1. datasource:
  2. druid:
  3. driver-class-name: oracle.jdbc.OracleDriver
  4. url: jdbc:oracle:thin:@10.15.22.17:1521:V7DBtest1
  5. username: PCIS_DEV
  6. password: PCIS_DEV
  7. initial-size: 10
  8. max-active: 30
  9. min-idle: 10
  10. max-wait: 10000
  11. timeBetweenEvictionRunsMillis: 60000
  12. minEvictableIdleTimeMillis: 30000
  13. validationQuery: select 1 from dual
  14. testWhileIdle: true
  15. testOnBorrow: false
  16. testOnReturn: false
  17. filters: stat,wall,slf4j
  18. connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

mybatis逆向工程插件配置

  1. <!--mybatis代码自动生成插件-->
  2. <plugin>
  3. <groupId>org.mybatis.generator</groupId>
  4. <artifactId>mybatis-generator-maven-plugin</artifactId>
  5. <version>1.4.0</version>
  6. <dependencies>
  7. <!--oracle驱动包依赖-->
  8. <dependency>
  9. <groupId>oracle</groupId>
  10. <artifactId>ojdbc6</artifactId>
  11. <version>11.2.0.4.0</version>
  12. <scope>system</scope>
  13. <systemPath>${pom.basedir}/lib/ojdbc6-11.2.0.3.jar</systemPath>
  14. </dependency>
  15. </dependencies>
  16. <configuration>
  17. <!--配置文件的位置-->
  18. <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
  19. <!--生成代码过程中是否打印日志-->
  20. <verbose>true</verbose>
  21. <!--生成时是否覆盖java文件,xml文件总是合并-->
  22. <overwrite>true</overwrite>
  23. </configuration>
  24. </plugin>

generatorConfig.xml配置文件附件

<?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>

    <!-- 指定连接数据库的JDBC驱动包所在位置,指定到你本机的完整路径 -->
    <classPathEntry location="C:/Users/Administrator/.m2/repository/com/oracle/ojdbc/ojdbc8/19.3.0.0/ojdbc8-19.3.0.0.jar"/>

    <!-- 配置table表信息内容体,targetRuntime指定采用MyBatis3的版本 -->
    <context id="tables" targetRuntime="MyBatis3">

        <!--抑制生成注释,由于生成的注释都是英文的,可以不让它生成-->
      <commentGenerator>
          <property name="suppressAllComments" value="true" />
      </commentGenerator>

      <!-- 配置数据库连接信息 -->
        <connectionFactory>
            <property name="driverClass" value="oracle.jdbc.OracleDriver"/>
            <property name="connectionURL" value="jdbc:oracle:thin:@10.15.22.17:1521:V7DBtest1"/>
            <property name="userId" value="PCIS_DEV"/>
            <property name="password" value="PCIS_DEV"/>
        </connectionFactory>

        <!-- 生成model类,targetPackage指定model类的包名, targetProject指定生成的model放在eclipse的哪个工程下面-->
        <javaModelGenerator targetPackage="com.isoftstone.cloud.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="false" />
        </javaModelGenerator>

        <!-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪个工程下面 -->
        <sqlMapGenerator targetPackage="com.isoftstone.cloud.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类的包名, targetProject指定生成的Mapper接口放在eclipse的哪个工程下面 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.isoftstone.cloud.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 数据库表名及对应的Java模型类名 -->
        <table tableName="DPT"
               domainObjectName="DPT"
               enableCountByExample="true"
               enableUpdateByExample="true"
               enableDeleteByExample="true"
               enableSelectByExample="true"
               selectByExampleQueryId="true"/>
    </context>
</generatorConfiguration>

Mapper接口和Mapper.xml示例

@Mapper
public interface DPTMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table DPT
     *
     * @mbg.generated Wed Mar 30 13:39:01 CST 2022
     */
    long countByExample(DPTExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table DPT
     *
     * @mbg.generated Wed Mar 30 13:39:01 CST 2022
     */
    int deleteByExample(DPTExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table DPT
     *
     * @mbg.generated Wed Mar 30 13:39:01 CST 2022
     */
    int insert(DPT record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table DPT
     *
     * @mbg.generated Wed Mar 30 13:39:01 CST 2022
     */
    int insertSelective(DPT record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table DPT
     *
     * @mbg.generated Wed Mar 30 13:39:01 CST 2022
     */
    List<DPT> selectByExample(DPTExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table DPT
     *
     * @mbg.generated Wed Mar 30 13:39:01 CST 2022
     */
    int updateByExampleSelective(@Param("record") DPT record, @Param("example") DPTExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table DPT
     *
     * @mbg.generated Wed Mar 30 13:39:01 CST 2022
     */
    int updateByExample(@Param("record") DPT record, @Param("example") DPTExample example);
<?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.isoftstone.cloud.mapper.DPTMapper">
  <resultMap id="BaseResultMap" type="com.isoftstone.cloud.model.DPT">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Wed Mar 30 13:39:01 CST 2022.
    -->
    <result column="C_DPT_CDE" jdbcType="VARCHAR" property="cDptCde" />
    <result column="C_NAME" jdbcType="VARCHAR" property="cName" />
  </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 Wed Mar 30 13:39:01 CST 2022.
    -->
    <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 Wed Mar 30 13:39:01 CST 2022.
    -->
    <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 Wed Mar 30 13:39:01 CST 2022.
    -->
    C_DPT_CDE, C_NAME
  </sql>
  <select id="selectByExample" parameterType="com.isoftstone.cloud.model.DPTExample" resultMap="BaseResultMap">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Wed Mar 30 13:39:01 CST 2022.
    -->
    select
    <if test="distinct">
      distinct
    </if>
    'true' as QUERYID,
    <include refid="Base_Column_List" />
    from DPT
    <if test="_parameter != null">
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null">
      order by ${orderByClause}
    </if>
  </select>
  <delete id="deleteByExample" parameterType="com.isoftstone.cloud.model.DPTExample">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Wed Mar 30 13:39:01 CST 2022.
    -->
    delete from DPT
    <if test="_parameter != null">
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.isoftstone.cloud.model.DPT">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Wed Mar 30 13:39:01 CST 2022.
    -->
    insert into DPT (C_DPT_CDE, C_NAME)
    values (#{cDptCde,jdbcType=VARCHAR}, #{cName,jdbcType=VARCHAR})
  </insert>
  <insert id="insertSelective" parameterType="com.isoftstone.cloud.model.DPT">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Wed Mar 30 13:39:01 CST 2022.
    -->
    insert into DPT
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="cDptCde != null">
        C_DPT_CDE,
      </if>
      <if test="cName != null">
        C_NAME,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="cDptCde != null">
        #{cDptCde,jdbcType=VARCHAR},
      </if>
      <if test="cName != null">
        #{cName,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.isoftstone.cloud.model.DPTExample" resultType="java.lang.Long">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Wed Mar 30 13:39:01 CST 2022.
    -->
    select count(*) from DPT
    <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 Wed Mar 30 13:39:01 CST 2022.
    -->
    update DPT
    <set>
      <if test="record.cDptCde != null">
        C_DPT_CDE = #{record.cDptCde,jdbcType=VARCHAR},
      </if>
      <if test="record.cName != null">
        C_NAME = #{record.cName,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 Wed Mar 30 13:39:01 CST 2022.
    -->
    update DPT
    set C_DPT_CDE = #{record.cDptCde,jdbcType=VARCHAR},
      C_NAME = #{record.cName,jdbcType=VARCHAR}
    <if test="_parameter != null">
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
</mapper>