原创

Mybatis中Mapper的案例

配置文件中Mapper的引入
<mappers>
    <!--<mapper resource="eendtech/mapper/UserMapper.xml"></mapper>-->
    <mapper resource="mapper/CustomerMapper.xml"></mapper>
</mappers>
以上可以引入我们的Mapper映射文件,当然你也可以用package扫描的方式扫描接口!在此不做过多的解释!以上可以引入我们的Mapper映射文件,当然你也可以用package扫描的方式扫描接口!在此不做过多的解释!
常用元素
<select>元素
例子
<select>元素用于映射查询语句,他可以帮助我们从数据库中读取出数据,并且组装数据给开发人员

使用select查询非常简单,以下是例子

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.edu.cqcet.yd1701.team11.mapper">
 <select id="findCustomerById" resultType="customer" parameterType="Integer">
     SELECT * FROM customer where id = #{id}
 </select>
</mapper>
XML 复制
我们可以采用XML的方式来进行SQL编程,上述语句进行查询用户,它接受了一个Integer参数,
返回一个Customer类型的对象,对此我们可以高度自定义,极大的方便了开发人员



参数说明
属性	说明
id	表示命名空间中唯一的标识符,
常与命名空间组合起来使用,组合后如果不唯一,Mybatis则会抛出异常
parameterType	改属性表示传入SQL语句的参数类型,
可选属性,默认值是unset(表示依赖于驱动)
resultType	从SQL语句中返回的类型,如果是集合类型,
那么返回的应该是集合可以包含的类型而不是集合本身,返回时可以使用resultType或者是resultMap之一
resultMap	表示外部resultMap的命名引用,
返回时可以使用resultType或者是resultMap之一
flushCache	表示在调用SQL语句之后,是否徐亚奥Mybatis清空之前查询的本地缓存和二级缓存,
类型是布尔类型,默认值以为false,如果设置成true那么则表示任何时候只要SQL语句被调用,
都会清空本地缓存和二级缓存
useCache	用于控制二级缓存的开启和关闭,
类型为布尔类型,默认为true表示将查询结果存入二级缓存之中
timeout	用于设置超时参数,单位为秒,超时时将异常抛出
fetchSize	获取记录的总条数设定,默认是unset
statementType	用于设置Mybatis使用哪个JDBC的Statement工作,
默认为PREPARED其他还有STATEMENT或者是CALLABLE分别对应PreparedStatement/Statement/CallableStatement
resultSetType	表示结果集的类型,其值可以设置为FORWARD_ONLY,SCROLL_SENSITIVE,
或者是SCROLL_INSENSITIVE,默认是unset
<insert>元素
介绍
<insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,会返回一个表示插入记录数的整数

<insert id="addCustomer" parameterType="cn.edu.cqcet.yd1701.team11.po.Customer" keyProperty="id" useGeneratedKeys="true">
insert into customer (userName,jobs,phone) values (#{userName},#{jobs},#{phone})
</insert>
XML 复制
参数说明
属性	说明
keyProperty	(仅对insert和update有用)此属性的作用是将插入或者更新操作时的返回值赋值给PO类的某个属性,
通常会设置为主键对应的属性,如果需要设置联合主键,可以再多个值之间用逗号隔开
keyColumn	(仅对insert和update有用)此属性用于设置第几列是主键,
当主键列不是表中的第一列时需要设置,在需要主键联合时,值可以使用逗号隔开
useGeneratedKeys	(仅对insert和update有用)
此属性会使Mybatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键,
如MYSQL何SQL SERVER等自动递增的字段,其默认值为false


<update>元素和<delete>元素
和上述两种元素用法差不多,在此不做过多说明



<sql>元素
在一个映射文件中,通常需要定义多条SQL语句,
这些SQL语句的组成可能有一部分是相同(如多条select语句中都查询相同的id,username,jobs字段)
如果每一个SQL语句都重写一边相同SQL语句部分,
势必会增加代码量,导致语句的耦合,Mybatis中提供<sql>元素来解决上述的问题
<sql>元素的作用就是定义可重用的SQL代码,比如我需要定义查询的字段,那么可以用以下方式

<sql id="customerColumns">
id,userName,jobs,phone
</sql>
XML 复制
然后我们可以通过<include>的refid属性引用自定义的代码片段

<include refid="customerColumns"/>
XML 复制
后端
  • 泽泽泽
  • 2020-11-05 11:40:31.726

评论区