要注册这两个文件
    CS_MyBatis - 图1
    Mapper.xml文件中的namespace与mapper接口的全限定名相同
    CS_MyBatis - 图2
    1、关联-association 集合-collection

    2、所以association是用于一对一和多对一,而collection是用于一对多的关系

    3、JavaType和ofType都是用来指定对象类型的

    JavaType是用来指定pojo中属性的类型
    ofType指定的是映射到list集合属性中pojo的类型。

    mybatis当中最后只有mapper.xml和mapper 的interface 没有mapper的实现类了,直接使用接口映射操作数据库,它上层封装了service进行对mapper的使用。而service还有实现类也就是impl因为那是自己定义的

    记录一下第一次,也是唯一一次手写的xml,mapper,service

    service

    1. public interface TStationService extends IService<TStation> {
    2. public T_StationVO getStationInfoBySID(); //得到充电站的信息,联合查询
    3. public int addStation(TStationDTO tStation);
    4. public List<T_StationVO> getAllShareStation();
    5. public int getAllStationCount(String cdz); //获得全部充电站数量
    6. public T_StationVO getStationById(Integer ID);
    7. public T_StationVO getStationInfoById(Integer S_ID); //根据充电站编号得到充电站具体信息
    8. public int updateStation(TStationDTO tStationDTO); //更新充电站信息
    9. public int OperatorCount(String OID); //得到一个客服修改充电站的数目
    10. public int getStationStateCount(Integer SID,Integer state); //某电站下处于忙状态的电桩个数
    11. }

    mapper

    1. package com.tjpu.echargeboot.mapper;
    2. import com.baomidou.mybatisplus.annotation.SqlParser;
    3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    4. import com.tjpu.echargeboot.DTO.TStationDTO;
    5. import com.tjpu.echargeboot.entity.TStation;
    6. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    7. import com.tjpu.echargeboot.vo.T_StationVO;
    8. import java.util.List;
    9. /**
    10. * <p>
    11. * Mapper 接口
    12. * </p>
    13. *
    14. * @author zhizekai
    15. * @since 2020-10-31
    16. */
    17. public interface TStationMapper extends BaseMapper<TStation> {
    18. public int addStation(TStationDTO tStation); //添加新的充电站
    19. // public List<T_Station> AllStation(Page page, String orderBy, String SC, String cdz); //得到所有充电站的列表
    20. // public List<T_Station> AllStation(Page page); //得到所有充电站的列表
    21. // public List<T_Station> AllStation(Page page,String address); //得到所有充电站的列表
    22. // public List<T_Station> AllStation(); //无分页
    23. public List<T_StationVO> getAllShareStation();
    24. public int getAllStationCount(String cdz); //获得全部充电站数量
    25. public T_StationVO getStationById(Integer ID);
    26. public T_StationVO getStationInfoById(Integer S_ID); //根据充电站编号得到充电站具体信息
    27. public int updateStation(TStationDTO tStationDTO); //更新充电站信息
    28. public int OperatorCount(String OID); //得到一个客服修改充电站的数目
    29. public int getStationBusyPileCount(Integer SID); //某电站下处于忙状态的电桩个数
    30. public int getStationReleasePileCount(Integer SID); //某电站下处于空闲状态的电桩个数
    31. public int getStationOfflinePileCount(Integer SID); //某电站下处于离线状态的电桩个数
    32. }

    xml映射

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3. <mapper namespace="com.tjpu.echargeboot.mapper.TStationMapper">
    4. <!--增加一条充电站信息-->
    5. <insert id="addStation" parameterType="com.tjpu.echargeboot.DTO.TStationDTO">
    6. INSERT INTO t_station (S_Name,
    7. S_Longitude,
    8. S_Latitude,
    9. S_Address,
    10. S_Date,
    11. O_ID,
    12. C_ID,
    13. S_FR,
    14. S_RepairTel,
    15. S_CompanyTel,
    16. S_ProDetail)
    17. VALUES (#{S_Name}, #{S_Longitude}, #{S_Latitude}, #{S_Address}, #{S_Date}, #{O_ID}, #{C_ID}, #{S_FR},
    18. #{S_RepairTel}, #{S_CompanyTel}, #{S_ProDetail})
    19. </insert>
    20. <!--按照id查询充电站所有信息-->
    21. <!--查询所有充电站信息-->
    22. <resultMap id="TStationVOMap" type="com.tjpu.echargeboot.vo.T_StationVO">
    23. <id column="S_ID" jdbcType="INTEGER" property="S_ID"/>
    24. <result column="S_Name" jdbcType="VARCHAR" property="S_Name"/>
    25. <result column="S_Longitude" jdbcType="DECIMAL" property="S_Longitude"/>
    26. <result column="S_Latitude" jdbcType="DECIMAL" property="S_Latitude"/>
    27. <result column="S_Address" jdbcType="VARCHAR" property="S_Address"/>
    28. <result column="S_Memo" jdbcType="VARCHAR" property="S_Memo"/>
    29. <result column="S_ServiceType" jdbcType="INTEGER" property="S_ServiceType"/>
    30. <result column="S_ServicePrice" jdbcType="REAL" property="S_ServicePrice"/>
    31. <result column="S_Date" jdbcType="TIMESTAMP" property="S_Date"/>
    32. <result column="S_RepairTel" jdbcType="VARCHAR" property="S_RepairTel"/>
    33. <result column="S_CompanyTel" jdbcType="VARCHAR" property="S_CompanyTel"/>
    34. <result column="S_ProDetail" jdbcType="VARCHAR" property="S_ProDetail"/>
    35. <result column="S_Num" jdbcType="VARCHAR" property="S_Num"/>
    36. <association property="t_feeRateVO" javaType="com.tjpu.echargeboot.vo.T_FeeRateVO">
    37. <id column="FR_ID" property="FR_ID"/>
    38. <result column="FR_Name" property="FR_Name"/>
    39. <result column="FR_1" property="FR_1"/>
    40. <result column="FR_SPrice" property="FR_SPrice"/>
    41. </association>
    42. <association property="t_companyVO" javaType="com.tjpu.echargeboot.vo.T_CompanyVO">
    43. <id column="C_ID" property="C_ID"/>
    44. <result column="C_Name" property="C_Name"/>
    45. </association>
    46. <association property="t_operatorVO" javaType="com.tjpu.echargeboot.vo.T_OperatorVO">
    47. <id column="O_ID" property="O_ID"/>
    48. </association>
    49. </resultMap>
    50. <select id="getStationInfoById" parameterType="int" resultMap="TStationVOMap">
    51. SELECT A.*,
    52. B.C_Name,
    53. C.*
    54. FROM t_station A,
    55. t_company B,
    56. t_feerate C
    57. WHERE A.C_ID = B.C_ID
    58. AND A.S_FR = C.FR_ID
    59. AND A.S_ID = #{id}
    60. </select>
    61. <!--查询分享充电站-->
    62. <resultMap id="AllShareStationMap" type="com.tjpu.echargeboot.vo.T_StationVO">
    63. <id column="S_ID" jdbcType="INTEGER" property="S_ID"/>
    64. <result column="S_Name" jdbcType="VARCHAR" property="S_Name"/>
    65. <result column="S_Num" jdbcType="VARCHAR" property="S_Num"/>
    66. <result column="S_Longitude" jdbcType="DECIMAL" property="S_Longitude"/>
    67. <result column="S_Latitude" jdbcType="DECIMAL" property="S_Latitude"/>
    68. <result column="S_Address" jdbcType="VARCHAR" property="S_Address"/>
    69. <result column="S_Memo" jdbcType="VARCHAR" property="S_Memo"/>
    70. <result column="S_Date" jdbcType="TIMESTAMP" property="S_Date"/>
    71. <association property="t_operatorVO" javaType="com.tjpu.echargeboot.vo.T_OperatorVO">
    72. <result column="O_ID" jdbcType="VARCHAR" property="O_ID"/>
    73. </association>
    74. <association property="t_companyVO" javaType="com.tjpu.echargeboot.vo.T_CompanyVO">
    75. <result column="C_ID" jdbcType="INTEGER" property="C_ID"/>
    76. <result column="C_Name" jdbcType="VARCHAR" property="C_Name"/>
    77. </association>
    78. </resultMap>
    79. <select id="getAllShareStation" resultMap="AllShareStationMap">
    80. SELECT A.*,
    81. B.C_Name
    82. FROM t_station A,
    83. t_company B
    84. where A.S_Type = 2
    85. And A.C_ID = B.C_ID
    86. </select>
    87. <!--查询充电站数量-->
    88. <select id="getAllStationCount" parameterType="string" resultType="int" >
    89. select count(*) AS cn from t_station
    90. <where>
    91. <if test="cdz!=''">
    92. and t_station.S_Name=#{cdz}
    93. </if>
    94. </where>
    95. </select>
    96. <update id="updateStation" parameterType="com.tjpu.echargeboot.DTO.TStationDTO">
    97. update t_station set S_Name=#{S_Name},S_Longitude=#{S_Longitude},
    98. S_Latitude=#{S_Latitude},S_Address=#{S_Address},
    99. O_ID=#{O_ID},C_ID=#{C_ID},S_FR=#{S_FR},
    100. S_RepairTel=#{S_RepairTel},S_CompanyTel=#{S_CompanyTel},
    101. S_ProDetail=#{S_ProDetail} where S_ID=#{S_ID}
    102. </update>
    103. <!--某电站下处于忙状态的电桩个数-->
    104. <select id="getStationBusyPileCount" parameterType="int" resultType="int">
    105. SELECT
    106. count( 1 ) AS cn
    107. FROM
    108. t_station A,
    109. t_chgpile B
    110. WHERE
    111. A.S_ID = #{S_ID}
    112. AND A.S_ID = B.S_ID
    113. AND (
    114. B.CP_State = 2
    115. OR B.CP_State = 3)
    116. </select>
    117. <!--某电站下处于空闲状态的电桩个数-->
    118. <select id="getStationReleasePileCount" parameterType="int" resultType="int">
    119. SELECT
    120. count( 1 ) AS cn
    121. FROM
    122. t_station A,
    123. t_chgpile B
    124. WHERE
    125. A.S_ID = #{S_ID}
    126. AND A.S_ID = B.S_ID
    127. AND B.CP_State =1
    128. </select>
    129. <!--某电站下处于空闲状态的电桩个数-->
    130. <select id="getStationReleasePileCount" parameterType="int" resultType="int">
    131. SELECT
    132. count( 1 ) AS cn
    133. FROM
    134. t_station A,
    135. t_chgpile B
    136. WHERE
    137. A.S_ID = #{S_ID}
    138. AND A.S_ID = B.S_ID
    139. AND B.CP_State =1
    140. </select>
    141. <!--某电站下处于离线状态的电桩个数-->
    142. <select id="getStationOfflinePileCount" parameterType="int" resultType="int">
    143. SELECT
    144. count( 1 ) AS cn
    145. FROM
    146. t_station A,
    147. t_chgpile B
    148. WHERE
    149. A.S_ID =#{S_ID}
    150. AND A.S_ID = B.S_ID
    151. AND (
    152. B.CP_State = 4
    153. OR B.CP_State = 5)
    154. </select>
    155. </mapper>