MyBatis的parameterType传入参数类型和resultType返回结果类型

野性酷女 2024-04-23 03:14 125阅读 0赞

记录:413

场景:MyBatis的parameterType传入参数类型和resultType返回结果类型。

版本:JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。

1.传入参数parameterType是Integer

传入参数类型parameterType:java.lang.Integer。

返回结果类型resultType: java.lang.String。

1.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. String getCity01(Integer cityId);
  4. }

1.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity01" parameterType="java.lang.Integer" resultType="java.lang.String">
  5. select CITY_NAME FROM t_city WHERE CITY_ID=#{cityId}
  6. </select>
  7. </mapper>

2.传入参数parameterType是Long

传入参数类型parameterType: java.lang.Long。

返回结果类型resultType: java.lang.String。

2.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. String getCity02(Long cityId);
  4. }

2.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity02" parameterType="java.lang.Long" resultType="java.lang.String">
  5. select CITY_NAME FROM t_city WHERE CITY_ID=#{cityId}
  6. </select>
  7. </mapper>

3.传入参数parameterType是Double

传入参数类型parameterType: java.lang.Double。

返回结果类型resultType: java.lang.Double。

3.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. Double getCity03(Double gross);
  4. }

3.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity03" parameterType="java.lang.Double" resultType="java.lang.Double">
  5. select LAND_AREA FROM t_city WHERE GROSS=#{gross}
  6. </select>
  7. </mapper>

4.传入参数parameterType是String

传入参数类型parameterType: java.lang.String。

返回结果类型resultType: java.lang.Long。

4.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. Long getCity04(String cityName);
  4. }

4.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity04" parameterType="java.lang.String" resultType="java.lang.Long">
  5. select CITY_ID FROM t_city WHERE CITY_NAME=#{cityName}
  6. </select>
  7. </mapper>

5.传入参数parameterType是List

传入参数类型parameterType: java.util.ArrayList。

返回结果类型resultType: java.lang.Long。

5.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. long[] getCity05(List<Long> cityIdList);
  4. }

5.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity05" parameterType="java.util.ArrayList" resultType="java.lang.Long" >
  5. select POPULATION FROM t_city WHERE CITY_ID IN
  6. <foreach collection="list" item="cityId" open="(" separator="," close=")">
  7. #{cityId}
  8. </foreach>
  9. </select>
  10. </mapper>

6.传入参数parameterType是Long[]

传入参数类型parameterType: long[]。

返回结果类型resultType: java.lang.String。

6.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. List<String> getCity06(Long[] cityIdList);
  4. }

6.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity06" parameterType="long[]" resultType="java.lang.String">
  5. select CITY_NAME FROM t_city WHERE CITY_ID IN
  6. <foreach collection="array" item="cityId" open="(" separator="," close=")">
  7. #{cityId}
  8. </foreach>
  9. </select>
  10. </mapper>

7.传入参数parameterType是Map

传入参数类型parameterType: java.util.Map。

返回结果类型resultType: com.hub.example.domain.CityPO。

7.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. CityPO getCity07(Map<String, Object> cityMap);
  4. }

7.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity07" parameterType="java.util.Map" resultType="com.hub.example.domain.CityPO">
  5. select CITY_ID AS "cityId",
  6. CITY_NAME AS "cityName",
  7. LAND_AREA AS "landArea",
  8. POPULATION AS "population",
  9. GROSS AS "gross",
  10. CITY_DESCRIBE AS "cityDescribe",
  11. DATA_YEAR AS "dataYear",
  12. UPDATE_TIME AS "updateTime"
  13. from t_city
  14. where CITY_ID = #{cityId}
  15. AND CITY_NAME = #{cityName}
  16. </select>
  17. </mapper>

8.传入参数parameterType是CityPO

传入参数类型parameterType: com.hub.example.domain.CityPO。

返回结果类型resultType: java.util.Map。

8.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. Map<String, Object> getCity08(CityPO cityPO);
  4. }

8.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity08" parameterType="com.hub.example.domain.CityPO" resultType="java.util.Map">
  5. select CITY_ID AS "cityId",
  6. CITY_NAME AS "cityName",
  7. LAND_AREA AS "landArea",
  8. POPULATION AS "population",
  9. GROSS AS "gross",
  10. CITY_DESCRIBE AS "cityDescribe",
  11. DATA_YEAR AS "dataYear",
  12. UPDATE_TIME AS "updateTime"
  13. from t_city
  14. where CITY_ID = #{cityId}
  15. AND CITY_NAME = #{cityName}
  16. </select>
  17. </mapper>

9.传入参数parameterType是Date

传入参数类型parameterType: java.util.Date。

返回结果类型resultType: java.lang.String。

9.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. String getCity09(Date date);
  4. }

9.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity09" parameterType="java.util.Date" resultType="java.lang.String">
  5. select CITY_NAME
  6. FROM t_city
  7. where UPDATE_TIME = #{date}
  8. </select>
  9. </mapper>

10.传入参数parameterType是List

传入参数类型parameterType: java.util.ArrayList。

返回结果类型resultType: com.hub.example.domain.CityPO。

10.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. List<CityPO> getCity10(List<Long> paraList);
  4. }

10.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity10" parameterType="java.util.ArrayList" resultType="com.hub.example.domain.CityPO">
  5. select CITY_ID AS "cityId",
  6. CITY_NAME AS "cityName",
  7. LAND_AREA AS "landArea",
  8. POPULATION AS "population",
  9. GROSS AS "gross",
  10. CITY_DESCRIBE AS "cityDescribe",
  11. DATA_YEAR AS "dataYear",
  12. UPDATE_TIME AS "updateTime"
  13. from t_city
  14. WHERE CITY_ID IN
  15. <foreach collection="list" item="cityId" open="(" separator="," close=")">
  16. #{cityId}
  17. </foreach>
  18. </select>
  19. </mapper>

11.传入参数parameterType是List

传入参数类型parameterType: java.util.ArrayList。

返回结果类型resultType: java.util.Map。

11.1Mapper接口代码

  1. @Repository
  2. public interface CityTypeMapper {
  3. List<Map<String, Object>> getCity11(List<Long> paraList);
  4. }

11.2XML代码

  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.hub.example.mapper.CityTypeMapper">
  4. <select id="getCity11" parameterType="java.util.ArrayList" resultType="java.util.Map">
  5. select CITY_ID AS "cityId",
  6. CITY_NAME AS "cityName",
  7. LAND_AREA AS "landArea",
  8. POPULATION AS "population",
  9. GROSS AS "gross",
  10. CITY_DESCRIBE AS "cityDescribe",
  11. DATA_YEAR AS "dataYear",
  12. UPDATE_TIME AS "updateTime"
  13. from t_city
  14. WHERE CITY_ID IN
  15. <foreach collection="list" item="cityId" open="(" separator="," close=")">
  16. #{cityId}
  17. </foreach>
  18. </select>
  19. </mapper>

12.测试代码

12.1代码

  1. @Slf4j
  2. @RestController
  3. @RequestMapping("/hub/example/cityType")
  4. public class CityTypeController {
  5. @Autowired
  6. private CityTypeMapper cityTypeMapper;
  7. @GetMapping("/load01")
  8. public Object load01() {
  9. log.info("测试开始...");
  10. // 1.parameterType: java.lang.Integer; resultType: java.lang.String
  11. String cityName01 = cityTypeMapper.getCity01(2);
  12. // 2.parameterType: java.lang.Long; resultType: java.lang.String
  13. String cityName02 = cityTypeMapper.getCity02(1L);
  14. // 3.parameterType: java.lang.Double; resultType: java.lang.Double
  15. double landArea = cityTypeMapper.getCity03(1.81D);
  16. // 4.parameterType: java.lang.String; resultType: java.lang.Long
  17. long cityId = cityTypeMapper.getCity04("苏州");
  18. List<Long> paraList01 = Arrays.asList(1L, 2L);
  19. // 5.parameterType: java.util.ArrayList; resultType: java.lang.Long
  20. long[] population = cityTypeMapper.getCity05(paraList01);
  21. // 6.parameterType: long[]; resultType: java.lang.String
  22. Long[] paraList02 = new Long[]{1L, 2L};
  23. List<String> cityNameList = cityTypeMapper.getCity06(paraList02);
  24. // 7.parameterType: java.util.Map; resultType: com.hub.example.domain.CityPO
  25. Map<String, Object> map = new HashMap<>();
  26. map.put("cityId", 3L);
  27. map.put("cityName", "苏州");
  28. CityPO cityPO = cityTypeMapper.getCity07(map);
  29. // 8.parameterType: com.hub.example.domain.CityPO; resultType: java.util.Map
  30. CityPO cityPO02 = CityPO.builder().cityId(3L).cityName("苏州").build();
  31. Map<String, Object> map02 = cityTypeMapper.getCity08(cityPO02);
  32. // 9.parameterType: java.util.Date; resultType: java.lang.String
  33. Date date = DateUtil.parse("2023-03-10 05:39:16", "yyyy-MM-dd HH:mm:ss");
  34. String time = cityTypeMapper.getCity09(date);
  35. // 10.parameterType: java.util.ArrayList; resultType: com.hub.example.domain.CityPO
  36. List<Long> paraList = Arrays.asList(1L, 2L, 3L);
  37. List<CityPO> list01 = cityTypeMapper.getCity10(paraList);
  38. // 11.parameterType: java.util.ArrayList; resultType: java.util.Map
  39. List<Long> paraList03 = Arrays.asList(1L, 2L, 3L);
  40. List<Map<String, Object>> list02 = cityTypeMapper.getCity11(paraList03);
  41. log.info("测试结束...");
  42. return "执行成功";
  43. }
  44. }

12.2测试请求

URL01: http://127.0.0.1:18080/hub-example/hub/example/cityType/load01

13.基础支撑

13.1实体对象

  1. @Data
  2. @Builder
  3. @NoArgsConstructor
  4. @AllArgsConstructor
  5. public class CityPO implements Serializable {
  6. private Long cityId;
  7. private String cityName;
  8. private Double landArea;
  9. private Long population;
  10. private Double gross;
  11. private String cityDescribe;
  12. private String dataYear;
  13. private Date updateTime;
  14. }

13.2建表语句

  1. CREATE TABLE t_city (
  2. CITY_ID BIGINT(16) NOT NULL COMMENT '唯一标识',
  3. CITY_NAME VARCHAR(64) COLLATE utf8_bin NOT NULL COMMENT '城市名',
  4. LAND_AREA DOUBLE DEFAULT NULL COMMENT '城市面积',
  5. POPULATION BIGINT(16) DEFAULT NULL COMMENT '城市人口',
  6. GROSS DOUBLE DEFAULT NULL COMMENT '生产总值',
  7. CITY_DESCRIBE VARCHAR(512) COLLATE utf8_bin DEFAULT NULL COMMENT '城市描述',
  8. DATA_YEAR VARCHAR(16) COLLATE utf8_bin DEFAULT NULL COMMENT '数据年份',
  9. UPDATE_TIME DATETIME DEFAULT NULL COMMENT '更新时间'
  10. ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='城市信息表';

13.3引入MyBatis依赖

使用mybatis-spring-boot-starter方式引入mybatis,对应mybatis-3.5.9和mybatis-spring-2.0.7核心依赖。

  1. <dependency>
  2. <groupId>org.mybatis.spring.boot</groupId>
  3. <artifactId>mybatis-spring-boot-starter</artifactId>
  4. <version>2.2.2</version>
  5. </dependency>

以上,感谢。

2023年4月17日

发表评论

表情:
评论列表 (有 0 条评论,125人围观)

还没有评论,来说两句吧...

相关阅读