Mybatis单行多值自带列名的方法

当resultType设置为map时,Mybatis会将查询结果自动转化为键值对,列名作为键,列值作为值。而设置为java.lang.String时,对于单行多列的情况,返回的是列值的列表。原生JDBC操作则需手动遍历并判断列值,可能包含null。Mybatis简化了这一过程。
摘要由CSDN通过智能技术生成
<select id="selectMiddleTable"  resultType="map">
        select ${columns} from  ${tables} WHERE t0.rec_sn = #{resSn}
    </select>
resultType返回类型选择map,mybatis自动会把全表查询结果生成列名+列值的键值对

resultType = java.lang.String
针对是单行多列的情况 会组成List列表

 select a from  ${tables} WHERE t0.rec_sn = #{resSn}

返回值结果就是多个a列的值存储在list集合里

获取相同的内容列名+值
原生代码如下

ResultSet resultSet = pst.executeQuery();
		int columnCount = resultSet.getMetaData().getColumnCount();
		while (resultSet.next()) {
			for (int col = 0; col < columnCount; col++) {
				// 获取列数获取该列的字段名
				String columnName = resultSet.getMetaData().getColumnName(col + 1);
				// 根据字段名获取改行当前字段的数据
				String value = (String) resultSet.getObject(columnName);
				map.put(columnName, value);
			}
		}

mybatis框架map返回值在没有JavaBean的情况下,默认给的是有值的情况
然后原生的是需要自己判断的,会全部遍历所有的列,空值会给null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值