引言
在使用mybatis的时候,查询一个集合返回给前台页面,在有的时候,我们会添加一个常量字段到对象或者集合中,来标识这个对象属于的类型等等情况,当前台进行再次请求的时候携带此变量进行请求.
但是:如果在数据库中并没有这个字段的时候,查询集合我们就需要前台进行这个字段的编写,写死!我们可否直接将其对应的字段返回呢?然后前台直接拿到这个字段进行请求即可?
正文
在进行mybatis查询的时候,我们都知道有ResultMap的结果集,所以我们可以在ResultMap中进行常量列的添加
<resultMap id="otherMap" type="java.util.HashMap"> <id column="user_id" property="userId" jdbcType="INTEGER" /> <result column="phone" property="phone" jdbcType="INTEGER" /> <result column="password" property="password" jdbcType="VARCHAR" /> <result column="head_image" property="headImage" jdbcType="VARCHAR" /> <result column="nick_name" property="nickName" jdbcType="VARCHAR" /> <result column="email" property="email" jdbcType="VARCHAR" /> <result column="typeColume" property="typeColume"/> <!-- 添加的常量列 -- > </resultMap>
既然我们已经添加了这个常量列,那么我们的列肯定是从SQL语句中查询出来的,否则无法找到column对应的列,所以我们在写SQL的时候,必须进行列的添加。
select user.* , 1 as typeColume from user where user.id = #{id}
其中,我们需要的常量的值 1 作为常量列typeColumn的值进行封装到ResultMap中,然后返回到前台页面了!
结果集如下:
{ "password": "123456", "phone": 123456, "typeColume": 1, "id": 1 }
那么问题已经解决了!
写在最后
欢迎转载,请注明来源