使用 MyBatis 原生功能

  • 使用 MyBatis 原生功能

我们使用 MyBatis-Flex 作为 MyBatis 的增强框架进行代码开发,并不会影响原有的 MyBatis 的任何功能

  • 使用 @Select 等 MyBatis 原生注解

MyBatis 提供了 @Insert 、@Delete 、@Update 、@Select 4 个注解,用于对 Mapper 的方法进行配置,用于原生编写原生 SQL 进行增删改查, 在 MyBatis-Flex 我们一样可以使用这些注解。例如:

java

public interface MyAccountMapper extends BaseMapper<Account> {    @Select("select * from tb_account where id = #{id}")    Account selectById(@Param("id") Object id);}

@Insert 、@Delete 、@Update 等注解也是一样的,也就是说,原有的 MyBatis 功能如何使用,在 MyBatis-Flex 就如何使用。

@InsertProvider、@DeleteProvider、@UpdateProvider、@SelectProvider 等还是和原生 MyBatis 一样的用法。

  • 使用 xml 的方式

全称为Extensible Markup Language 可扩展标记语言。一般作为配置文件,可在网络中传输。

和html的区别是,它的语法规定更加严格,同时,xml中的标签都是自定义的,而html中的标签是预定义的。

xml一般用来存储数据,而html一般用来展示数据。

xml文档的第一行必须为形如<?xml 属性列表 ?>的文档声明。必须要有一个根标签,标签必须正确关闭。同时和html不同xml的标签区分大小写。属性值必须使用单双引号包裹。

                        

配置完成后,我们就可以编写自己的 xml 和 mapper 代码了,如下所示:

<?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="com.test.mapper.StudentMapper">

    <!--根据id查询-->

    <select id="selectById" parameterType="java.lang.Integer" resultType="com.test.po.Student">

        select * from student where id= #{id}

    </select>

    <!--登录-->

    <select id="login"  parameterType="java.lang.String" resultType="com.test.po.Student">

        select * from student where username= #{username} and password = #{password}

    </select>

    <!-- 分页 -->

    <select id="selectByName" resultType="com.test.po.Student">

        select * from `student` ${qwSql} limit ${pageNumber}, ${pageSize}

    </select>

    <select id="selectByName_COUNT" resultType="long">

        select count(*) from `student` ${qwSql}

    </select>

</mapper>

public interface StudentMapper extends BaseMapper<Student> {

    //根剧用户编号查询用户

    Student selectById( Integer id);

    //登录

    Student login( String username, String password);

    //分页

    Page<Student> selectByName(Integer pageNumber, Integer pageSize);

    Long selectByName_COUNT(QueryWrapper qwSql);

  • XML 分页

XML 分页是 MyBatis-Flex 在 v1.5.5 开始提供的一个 XML 分页解决方案,方便用户在使用 XML 时,对数据进行分页查询。

示例代码如下:

        QueryWrapper qw = QueryWrapper.create()

                .where(Student::getAge).eq(14)

                .and(Student::getId).ge(1);

        Page<Student> peoplePage = studentMapper

          .xmlPaginate("selectByName", Page.of(1, 2), qw);

        System.out.println(peoplePage);

XML 代码如下:

<!-- 分页 -->

    <select id="selectByName" resultType="com.test.po.Student">

        select * from `student` ${qwSql} limit ${pageNumber}, ${pageSize}

    </select>

    <select id="selectByName_COUNT" resultType="long">

        select count(*) from `student` ${qwSql}

    </select>

其执行的 SQL 如下:

sql

-- 查询数据量select count(*) from `student`  WHERE `age` = 14 AND `id` >= 0-- 查询数据select * from `student`  WHERE `age` = 14 AND `id` >= 0 limit 0, 10

  • 功能

  • 查询:

结果:

登入

结果:

分页查询

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值