Mybatis映射文件

select

查询语句是mybatis中最常用的元素之一,mybatis的基本原则之一是:在每个插入,更新,或删除操作之间,通常会执行多个查询操作。因此,mybatis在查询和结果映射做了相当多的改进。,一个简单查询的select元素是很简单的:

<select id="selectPerson" parameterType="int" resultType="hashmap">
	SELECT * FROM PERSON WHERE ID = #{id}
</select>

这个语句名为selectPerson,接受一个int类型的参数,并返回一个HashMap类型的对象,其中的键是列名,上述map的配置就相当于JDBC中的:

String selectPerson ="SELECT * FROM PERSON WHERE ID=?";
PreparedStatment ps=conn.prepareStatement(selectPerson);
ps.setInt(1,id);//因为SQL语句中使用占位符来代替具体数值,所以需要给SQL语句赋值

在这里插入图片描述
select元素中的属性介绍如下:
在这里插入图片描述下面主要介绍三个属性;

  1. id属性:id属性在命名空间中唯一的标识符,可以被用来引用这条语句,当满足下面三个条件时,系统会为我们自动建立dao的实现类,我们在开发时就无需再写dao的实现类:
    • mybatis的映射配置文件位置必须和dao接口的包结构相同
      在这里插入图片描述

    • 映射配置文件的mapper元素的namspace属性的取值必须是dao接口的全限定类型
      在这里插入图片描述

    • select元素的id属性取值必须是dao接口的方法名
      在这里插入图片描述
      在这里插入图片描述2. resultType属性:该属性表示了所要映射到的实体类

CRUD操作

insert

在这里插入图片描述

update

在这里插入图片描述

delete

在这里插入图片描述

sql

这个元素可以重新用来定义可重用的SQL代码片段,以便在其他语句中使用,例如:

<sql id="table">
	wancontext
</sql>

上面的sql元素将数据库表名为“wancontext”重新起名为“table”,然后通过<included refid=“table” />引用

结果映射

resultMap元素是mybatis中最重要最强大的元素,ResultMap的设计思想是,对简单的语句做到零配置,对于一些复杂一点的语句,只需要描述语句之间的关系就行了

我们在进行结果映射的时候,会遇到一些问题:我们实体类中的字段和数据库表中的列名由于某种因素会不同,那么在进行映射的时候,就有可能会映射失败,为了解决这一个隐患,我们可以在resultMap元素中创建对应的映射关系;

<resultMap id="userResultMap" type="User">
  <id property="id" column="user_id" />
  <result property="username" column="user_name"/>
  <result property="password" column="hashed_password"/>
</resultMap>

然后再引用它的语句中设置resultMap属性就行了(即用resultMap替换resultType)

<select id="selectUsers" resultMap="userResultMap">
  select user_id, user_name, hashed_password
  from some_table
  where id = #{id}
</select>
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页