java字段映射配置_Mybatis参数映射和字段映射

一、mybatis的参数映射不同于字段映射,参数映射中的“参数”是指传入sql语句中的参数,而字段映射是指将JDBC的结果集ResultSet数据映射成javaBean。

二、Mybatis的参数映射配置

1、Mybatis的参数映射利用的属性是 :parameterType。

parameterType,将会传入这条语句的参数的类全限定名或别名。这个属性是可选的,因为 MyBatis 可以通过类型处理器(TypeHandler)推断出具体传入语句的参数,默认值为未设置(unset)。

对于大多数的使用场景,都不需要复杂的参数,例如:

select * from people where id=#{id}

insert into people(name, age) values (#{name}, #{age})

2、Mybatis参数映射高级配置

#{property,javaType=int,jdbcType=NUMERIC}

三、Mybatis的字段映射配置

Mybatis中字段映射最强大的还是resultMap元素。它可以让我们从JDBC ResultSets的数据提取中解放出来。

例如下面的映射示例,其实并没有使用resultMap。

select id,name,age from people where id=#{id}

上述语句只是简单的将所有的列映射到HashMap的键上,这由resultType属性指定。虽然通常都够用,但是HashMap不是一个很好的领域模型。我们的程序更多的是使用javaBean或者POJO作为领域模型。Mybatis对两者都提供了支持。看看下面的javaBean:

packagecom.asiainfo.pojo;public classPeople {private intid;privateString name;private intage;public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}

@OverridepublicString toString() {return "People [id=" + id + ", name=" + name + ", age=" + age + "]";

}

}

上面javaBean中的3个属性:id、name和age分别对应select语句中的列名。这样的javaBean映射到ResultSet,就行映射到HashMap一样简单。

select id,name,age from people where id=#{id}

这些情况Mybatis在幕后自动创建了一个ResultMap,基于属性名映射到列到javaBean上。如果列名和属性名没有精确匹配,可以在select语句中使用别名(这是基于SQL特性)来匹配标签,比如:

SELECT

user_id AS id,

user_name AS NAME,

user_age AS age

FROM

people

WHERE

id = #{id}

下面还有一种解决列名不匹配的方式

而在引用它的语句中使用resultMap属性就行了(注意我们去掉了resultType属性),比如:

SELECT

user_id,

user_name,

user_age

FROM

t_users

WHERE

id = #{id}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值