欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Mybatis中实体类属性与数据列表间映射方法介绍

时间:2021-02-16 10:46:04|栏目:JAVA代码|点击:

Mybatis不像Hibernate中那么自动化,通过@Column注解或者直接使用实体类的属性名作为数据列名,而是需要自己指定实体类属性和

数据表中列名之间的映射关系,这一点让用惯了Hibernate的人很不习惯,所幸经过探索找到了建立映射关系的三种办法,其中总也有比较 简单的。

首先先定义一个实体类,如下:

public class User implements Serializable {
  private Integer userId;
  private String userName;
  ......
}

1. 通过XML映射文件中的resultMap

这种方式是最常见的,类似如下:

<mapper namespace="data.UserMapper">
  <resultMap type="data.User" id="userResultMap">
    <!-- 用id属性来映射主键字段 -->
    <id property="id" column="user_id"/>
    <!-- 用result属性来映射非主键字段 -->
    <result property="userName" column="user_name"/>
  </resultMap>
</mapper>

通过里面的id标签和result标签来建立映射关系,由property和column分别指定实体类属性和数据表的列名。

2. 通过注解@Results和@Result

这两个注解是与XML文件中的标签相对应的:

@Results对应resultMap
@Result对应result

这两个注解是应用在方法的级别上的,也就是在mapper方法上,如下:

@Select("select * from t_user where user_name = #{userName}")
@Results(
    @Result(property = "userId", column = "user_id"),
    @Result(property = "userName", column = "user_name")
)
User getUserByName(@Param("userName") String userName);

缺点:

由于注解是针对方法的,对于Mapper中的每个操作数据库的方法都必须有相同的注解完成映射关系的建立,导致很多的配置是重复的;

如果要避免配置重复的问题,可以采用在XML配置文件中配置这个resultMap,然后再@Result中通过id属性引用这个resultMap,

但是这样感觉很麻烦(由于使用了两种配置方式),不如直接使用基于XML的resultMap配置方式;

3. 通过属性配置完成映射

使用者最陌生的是通过配置属性来完成映射,Mybatis给我们提供了一种映射方式,如果属性的命名是遵从驼峰命名法的,数据列名遵从下划线命名,

那么可以使用这种方式,类似如下:

userName对应user_name;
userId对应user_id;

配置代码如下:

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
Configuration configuration = new Configuration();
configuration.setMapUnderscoreToCamelCase(true);
sqlSessionFactoryBean.setConfiguration(configuration);

4. 通过使用在SQL语句中定义别名完成映射

这种方式最直接,直接在SQL语句中建立别名来完成映射,如下:

@Select("select user_name as userName, user_id as userId from t_user where user_name = #{userName}")
User getUserByName(@Param("userName") String userName);

总结

海滨消消乐app for android v1.13 安卓版

https://www.jb51.net/game/578587.html

一起来飞车app for android v1.5.1 安卓版

https://www.jb51.net/game/578688.html

上一篇:IntelliJ IDEA中代码一键生成方法

栏    目:JAVA代码

下一篇:Java使用NIO包实现Socket通信的实例代码

本文标题:Mybatis中实体类属性与数据列表间映射方法介绍

本文地址:http://www.codeinn.net/misctech/64285.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有