• springboot整合mybatis开发


    1创建项目,在启动类上添加映射扫描注解

    2导入依赖,添加mybatis generator自动生成代码插件

    <!-- mybatis generator 自动生成代码插件 -->
    			<plugin>
    				<groupId>org.mybatis.generator</groupId>
    				<artifactId>mybatis-generator-maven-plugin</artifactId>
    				<version>1.3.2</version>
    				<configuration>
    					<configurationFile>${project.basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
    					<overwrite>true</overwrite>
    					<verbose>true</verbose>
    				</configuration>
    			</plugin>
    

     3创建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>
        <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
        <classPathEntry  location="D:jarmysql-connector-java-5.1.0-bin.jar"/>
        <context id="default"  targetRuntime="MyBatis3">
            <commentGenerator>
                <property name="suppressDate" value="true"/>
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
            <!--数据库链接URL,用户名、密码 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://url:3306/database" userId="username" password="passwrord">
            </jdbcConnection>
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
            <!-- 生成模型的包名和位置-->
            <javaModelGenerator targetPackage="com.domain" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
            <!-- 生成映射文件的包名和位置-->
            <sqlMapGenerator targetPackage="com.mapper" targetProject="src/main/resources">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
            <!-- 生成DAO的包名和位置-->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.mapper" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
            <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
            <!--<table tableName="invitationc" domainObjectName="Invitationc" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="leaving_a_message" domainObjectName="LeavingAMessage" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="order_payment" domainObjectName="OrderPayment" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="sign_up" domainObjectName="SignUp" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="photo_order" domainObjectName="PhotoOrder" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <table tableName="commission_order" domainObjectName="CommissionOrder" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
            <!--<table tableName="invitationc" domainObjectName="Invitationc" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="dynamic" domainObjectName="Dynamic" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="sys_dict" domainObjectName="SysDict" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="tag" domainObjectName="Tag" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="attention" domainObjectName="Attention" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="tab_collection" domainObjectName="TabCollection" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <!--<table tableName="sign_in" domainObjectName="SignIn" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
        </context>
    </generatorConfiguration>
    

      根据generatorConfig.xml文件生成的

    模型:

    映射文件:

    DAO文件:

     4、自定义查询语句

     mapper

    dao:

    <?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.idailycar.mapper.TabCollectionMapper" >
      <resultMap id="BaseResultMap" type="com.idailycar.domain.TabCollection" >
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="host_id" property="hostId" jdbcType="BIGINT" />
        <result column="collector_id" property="collectorId" jdbcType="BIGINT" />
        <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
        <result column="update_tine" property="updateTine" jdbcType="TIMESTAMP" />
        <result column="state" property="state" jdbcType="BIGINT" />
      </resultMap>
      <sql id="Base_Column_List" >
        id, host_id, collector_id, create_time, update_tine, state
      </sql>
      <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
        select 
        <include refid="Base_Column_List" />
        from tab_collection
        where id = #{id,jdbcType=BIGINT}
      </select>
        <select id="findByCollectorIdAndHostId" resultType="com.idailycar.domain.TabCollection">
          SELECT * from  tab_collection where collector_id = #{collectorId} and host_id = #{hostId} and state = 16
        </select>
      <select id="findByCollectorIdAndHostIdAndUNCollection" resultType="com.idailycar.domain.TabCollection">
        SELECT * from  tab_collection where collector_id = #{collectorId} and host_id = #{hostId} and state = 17
      </select>
      <select id="findCollectionInfoByOpenId" resultType="com.idailycar.controller.response.DynamicInfo">
        select d.id as dynamicId,u.id as userId,u.nickname as nickname,u.gender as gender,u.avatar_file as avatarFile,u.occupation as occupation,d.location as location,d.content as content,d.create_time as createTime from dynamic d INNER JOIN user u on d.creator_id = u.id where d.id in (select c.host_id from tab_collection c where c.collector_id = #{collectorId} and c.state = 16)
      </select>
      <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
        delete from tab_collection
        where id = #{id,jdbcType=BIGINT}
      </delete>
      <insert id="insert" parameterType="com.idailycar.domain.TabCollection" >
        insert into tab_collection (id, host_id, collector_id, 
          create_time, update_tine, state
          )
        values (#{id,jdbcType=BIGINT}, #{hostId,jdbcType=BIGINT}, #{collectorId,jdbcType=BIGINT}, 
          #{createTime,jdbcType=TIMESTAMP}, #{updateTine,jdbcType=TIMESTAMP}, #{state,jdbcType=BIGINT}
          )
      </insert>
      <insert id="insertSelective" parameterType="com.idailycar.domain.TabCollection" >
        insert into tab_collection
        <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            id,
          </if>
          <if test="hostId != null" >
            host_id,
          </if>
          <if test="collectorId != null" >
            collector_id,
          </if>
          <if test="createTime != null" >
            create_time,
          </if>
          <if test="updateTine != null" >
            update_tine,
          </if>
          <if test="state != null" >
            state,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            #{id,jdbcType=BIGINT},
          </if>
          <if test="hostId != null" >
            #{hostId,jdbcType=BIGINT},
          </if>
          <if test="collectorId != null" >
            #{collectorId,jdbcType=BIGINT},
          </if>
          <if test="createTime != null" >
            #{createTime,jdbcType=TIMESTAMP},
          </if>
          <if test="updateTine != null" >
            #{updateTine,jdbcType=TIMESTAMP},
          </if>
          <if test="state != null" >
            #{state,jdbcType=BIGINT},
          </if>
        </trim>
      </insert>
      <update id="updateByPrimaryKeySelective" parameterType="com.idailycar.domain.TabCollection" >
        update tab_collection
        <set >
          <if test="hostId != null" >
            host_id = #{hostId,jdbcType=BIGINT},
          </if>
          <if test="collectorId != null" >
            collector_id = #{collectorId,jdbcType=BIGINT},
          </if>
          <if test="createTime != null" >
            create_time = #{createTime,jdbcType=TIMESTAMP},
          </if>
          <if test="updateTine != null" >
            update_tine = #{updateTine,jdbcType=TIMESTAMP},
          </if>
          <if test="state != null" >
            state = #{state,jdbcType=BIGINT},
          </if>
        </set>
        where id = #{id,jdbcType=BIGINT}
      </update>
      <update id="updateByPrimaryKey" parameterType="com.idailycar.domain.TabCollection" >
        update tab_collection
        set host_id = #{hostId,jdbcType=BIGINT},
          collector_id = #{collectorId,jdbcType=BIGINT},
          create_time = #{createTime,jdbcType=TIMESTAMP},
          update_tine = #{updateTine,jdbcType=TIMESTAMP},
          state = #{state,jdbcType=BIGINT}
        where id = #{id,jdbcType=BIGINT}
      </update>
    </mapper>
    

      

    方便在Dao接口和Mappper XML文件之间进行切换,下载free mybatis plugins插件,安装步骤:

     

  • 相关阅读:
    WPF 便签项目
    .NET下WPF学习之Socket通信
    DEV控件
    字符串位数补足
    VS2008设置断点不命中
    错误描述: 242000021
    关闭Win10自带的 Windows Defender
    启用与关闭 Ad Hoc Distributed Queries
    Date工具类
    数据字段脱敏
  • 原文地址:https://www.cnblogs.com/SongG-blogs/p/10784070.html
Copyright © 2020-2023  润新知