Mybatis返回值类型为List<String>时,sql语句怎么写

前言:

因为某个需求需要返回访问数据库的返回值是每条记录的同一列,所以就想到了用集合。List<String>.然后就开始操作。。。

代码一开始是这样的

<!--查询所有老师-->
<select id="findTeacherName" resultMap="java.lang.String"  >
  select
  <include refid="Teacher_Name" />
  from teacher
</select>

好像没什么错误,而且项目运行了也没报错。重点是项目没报错,但接着想登录的时候就失败了,虽然登录功能不在同一个XxxMapper.xml。但似乎访问数据库的功能都失败。

这时候就很纠结了,因为也没报错。找了一整天登录功能出现什么问题,还是没解决。

后来想了想,把之前代码删掉,似乎可以了。于是看之前加的上面的代码,看了也没错啊,返回值是java.lang.String。百度也很多说是这个类型,根据之前学的也是一样。

终于。。。发现问题所在了

后来变成这样

<!--查询所有老师-->
<select id="findTeacherName" resultType="java.lang.String"  >
  select
  <include refid="Teacher_Name" />
  from teacher
</select>

红色的才是重点。。。

归根到底还是对框架不够熟悉,而且思考地也不够深入。

特此记录一下

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 MyBatis 的动态 SQL 和 ResultMap 来实现传入参数任意字段和表名,返回 List<Mapper> 的功能。具体步骤如下: 1. 在 mapper.xml 文件中编动态 SQL。例如,以下代码可以根据传入的参数(表名和字段名)动态生成 SQL 语句: ```xml <select id="selectFieldsFromTable" resultMap="MyResultMap"> SELECT <foreach item="column" index="index" collection="fields" separator=","> ${column} </foreach> FROM ${table} </select> <resultMap id="MyResultMap" type="java.util.Map"> <result property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <!-- 其他字段 --> </resultMap> ``` 其中,`fields` 是一个 List<String> 类型的参数,包含要查询的字段名;`table` 是一个 String 类型的参数,表示要查询的表名。`${column}` 和 `${table}` 是 MyBatis 的动态 SQL 占位符,可以在运行被实际的参数值替换。`<resultMap>` 标签定义了查询结果映射的规则,这里使用了一个简单的 Map 类型作为返回值,可以根据实际情况进行修改。 2. 在对应的 Java 接口中定义方法,用于调用 mapper.xml 中的 SQL 语句。例如: ```java public interface MyMapper { List<Map<String, Object>> selectFieldsFromTable(@Param("table") String table, @Param("fields") List<String> fields); } ``` 其中,`@Param` 注解用于指定传入参数的名称,方便在 mapper.xml 中使用。 3. 在调用 mapper 方法,传入相应的参数。例如: ```java List<Map<String, Object>> result = myMapper.selectFieldsFromTable("user", Arrays.asList("id", "name", "age")); ``` 这样就可以根据传入的参数查询指定表中的指定字段,并返回一个 List<Map>,每个 Map 包含一条记录的字段名和对应的值。需要注意的是,由于使用了动态 SQL 和 ResultMap,返回值类型List<Map<String, Object>>,而不是 List<Mapper>。如果需要返回 Mapper 类型的列表,可以在 ResultMap 中指定相应的类型,并将查询结果映射到 Mapper 对象中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值