MyBatis中的CRUD

MyBatis中的CRUD

parameterType(输入类型)

1.传递简单类型

<select id="findUserById" resultType="com.study.mybatis.domain.User" parameterType="java.lang.Integer">
        SELECT * FROM user WHERE id=#{id};
    </select>

2.传递poji对象

MyBatis使用ognl表达式解析对象的字段, #{}${} 括号中的值为pojo属性值

OGNL表达式

Object Graphic Navigation Language - 对象图导航语言

通过对象的取值方法来获取数据

在写法上把get给省略了

比如获取用户的名称

类中写法: user.getUsername();

OGNL写法: user.username

mybatis中能直接写username是因为在parameterType中已经提供了属性所属的类, 所有此时不需要写对象名

传递pojo包装对象

开发中通过pojo传递查询条件, 查询条件是综合的查询条件, 包括不同类的查询条件, 这时可以使用包装对象传递输入参数.

包装类

public class QueryVo {

    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

配置parameterType为包装类

<!-- 根据QueryVo 的条件查询用户 -->
<select id="findUserByVo" parameterType="com.study.mybatis.domain.QueryVo" resultType="com.study.mybatis.domain.User">
    SELECT * FROM user WHERE username LIKE ${user.username};
</select>

resultType(输出类型)

1.输出简单类型

<!-- 查询总用户数 聚合函数 -->
<select id="findTotal" resultType="com.study.mybatis.domain.User">
    SELECT * FROM user WHERE username=#{username};
</select>

2.输出pojo对象

<!-- 查询总用户数 聚合函数 -->
<select id="findTotal" resultType="java.lang.Integer">
    SELECT COUNT(id) FROM user;
</select>

3.输出pojo列表

<!-- 查询所有用户 -->
<select id="findAll" resultType="com.study.mybatis.domain.User">
    SELECT * FROM user;
</select>

4.resultMap结果类型

解决实体类中属性名和字段名不一致问题

<!-- 配置 查询结果的列名和实体类的属性名的对应关系 -->
<resultMap id="userMap" type="com.study.mybatis.domain.User">
    <!-- 主键字段的对应 -->
    <id property="uid" column="id"/>
    <!-- 非主键字段的对应 -->
    <result property="uName" column="username"/>
    <result property="uAddress" column="address"/>
    <result property="uSex" column="sex"/>
    <result property="uBirthday" column="birthday"/>
</resultMap>

应用resultMap

<!-- 查询所有用户 -->
<select id="findAll" resultMap="userMap">
    SELECT * FROM user;
</select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值