前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatis查询功能(一)

MyBatis查询功能(一)

原创
作者头像
堕落飞鸟
发布2023-05-15 13:29:19
3120
发布2023-05-15 13:29:19
举报
文章被收录于专栏:飞鸟的专栏

一、查询语句

在MyBatis中,查询语句通常是通过select元素来定义的,例如:

代码语言:javascript
复制
<select id="getUserById" parameterType="int" resultType="User">
    select * from user where id = #{id}
</select>

在上面的代码中,select元素用于定义查询语句,其中id属性表示查询语句的唯一标识符,parameterType属性表示参数类型,resultType属性表示结果类型。查询语句的具体内容在select元素的文本节点中定义。

二、查询方式

在MyBatis中,查询方式有多种,其中常见的方式如下:

查询单个结果

查询单个结果通常使用selectOne方法,例如:

代码语言:javascript
复制
User user = sqlSession.selectOne("getUserById", 1);

在上面的代码中,使用selectOne方法查询id为1的用户信息。

查询多个结果

查询多个结果通常使用selectList方法,例如:

代码语言:javascript
复制
List<User> userList = sqlSession.selectList("getUserListByName", "Tom");

在上面的代码中,使用selectList方法查询名字为Tom的所有用户信息。

分页查询

分页查询通常使用limit语句来实现,例如:

代码语言:javascript
复制
<select id="getUserListByPage" parameterType="map" resultType="User">
    select * from user limit #{startIndex}, #{pageSize}
</select>

在上面的代码中,使用limit语句实现分页查询。

动态查询

动态查询通常使用if、choose、when和otherwise等元素来实现,例如:

代码语言:javascript
复制
<select id="getUserListByCondition" parameterType="map" resultType="User">
    select * from user
    <where>
        <if test="name != null and name != ''">
            and name like '%${name}%'
        </if>
        <if test="gender != null and gender != ''">
            and gender = #{gender}
        </if>
    </where>
</select>

在上面的代码中,使用if元素实现动态查询。

嵌套查询

嵌套查询通常使用select元素来实现,例如:

代码语言:javascript
复制
<select id="getUserById" parameterType="int" resultType="User">
    select * from user where id = #{id}
</select>

<select id="getOrderListByUserId" parameterType="int" resultType="Order">
    select * from order where user_id = #{userId}
</select>

<select id="getUserAndOrderList" parameterType="int" resultType="User">
    select * from user where id = #{id};
    select * from order where user_id = #{id}
</select>

在上面的代码中,getUserById和getOrderListByUserId都是普通查询语句,getUserAndOrderList使用了嵌套查询,查询用户和用户的订单列表。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、查询语句
  • 二、查询方式
    • 查询单个结果
      • 查询多个结果
        • 分页查询
          • 动态查询
            • 嵌套查询
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档