Mybatis 框架(XML的基本使用 二 )

select的用法

先写个根据用户id 查询用户信息的简单方法。在 创建一个数据包dc.com.mapper,并在dc.com.mapper包中创建UserMapper接口,并在接口中添加一个selectById 方法,代码如下。

package dc.com.mapper;
import dc.com.entity.Users;
public interface UsersMapper {
    Users selectById(long id);
}

然后在resources目录中创建dc.com.mapper目录,在mapper目录中创建对应UserMapper.xml 文件,并添加如下的<resultMap >和< 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="qin.com.mapper.UsersMapper">

    <resultMap id="userBean" type="Users">

        <id property="id" column="id"></id>

        <result property="name" column="name"></result>

        <result property="pass" column="pass"></result>

    </resultMap>

    <select id="selectById" resultMap="userBean">
        select id,name,pass from users where id=#{id}
    </select>
</mapper>

 

前面创建接口和 XML 时提到过,接口和 XML 是通过将 name space 的值设置为接口的全限定名称来进行关联的,那么接口中方法和 XML 又是怎么关联的呢?

可以发现,XML中的 select 标签的 id 属性值和定义的接口方法名是一样的MyBatis 就是通过这种方式将接口方法和 XML 定义的 SQL 语句关联到一起的,如果接口方法没有和XML中的id属性值相对应,启动程序便会报错。映射 XML和接口的命名需要符合如下规则。 

1、当只使用 XML 而不使用接口的时候 namespace 的值可以设置为任意不重复的名称。

2、标签的 id 属性值在任何时候都不能出现英文句号“.”,并且同一个命名空间下不能出现重复的id

  3 因为接口方法是可以重载的,所以接口中可以出现多个同名但参数不同的方法,但是xml的id 的值不能重复,因而接口中的所有同名方法会对应着 XML 中的同 id 的方法。最常见的用法就是,同名方法中其中一个方法增加 RowBound 类型的参数用于实现分页查询。 

明白上述两者之间的关系后,通过UsersMapper.xml 先来了解一下 XML 些标签和属性的作用。

select 映射查询语句使用的标签。

1、 id :命名空间中的唯标识符,可用来代表这条语句。

2、resultMap :用于设置返回值的类型和映射关系

3、select 标签中的 select id,name,pass from users where id= #{id }是查询语句 。

4、#{id} : MyBatis SQL 中使用预编译参数的一种方式,大括号中的 id 是传入的参数名。

5、在上面的 elect 中,使用 resultMap 设置返回值的类型,这里的 userMap 就是上面<resultMap 中的 id 属性值,通过 id 引用需要的<resultMap >。

现在继续在UsersMapper.java接口中增加如下的方法。

package dc.com.mapper;

import dc.com.entity.Users;

import java.util.List;

public interface UsersMapper {

    Users selectById(long id);

    List<Users> selectAll();

}

接下来在UsersMapper.xml中添加如下代码。

select id,name,pass from users

 

完整代码如下。

<?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="qin.com.mapper.UsersMapper"> 

    <resultMap id="userBean" type="Users"> 

        <id property="id" column="id"></id> 

        <result property="name" column="name"></result> 

        <result property="pass" column="pass"></result> 

    </resultMap> 

    <select id="selectById" resultMap="userBean">

        select id,name,pass from users where id=#{id}

    </select>

    <select id="selectAll" resultMap="userBean">

        select id,name,pass from users

    </select>

</mapper>

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值