MyBatis框架的映射文件与核心文件


前言

MyBatis的映射文件与核心文件内为我们提供很多的标签,可以帮助我们实现复杂的数据库操作,并且可以简化代码,增加可读性


一、映射文件

1.动态SQL语句
1.1、if
根据实体的不同取值,通过if可以帮助我们实现使用不同的SQL语句来查询

   <select id="findByCondition" resultType="user" parameterType="user">
        select * from user1
        <where>
            <if test="id!=0">
                and id=#{id}
            </if>
            <if test="username!=null">
                and username=#{username}
            </if><if test="password!=null">
                and password=#{password}
            </if>
        </where>
    </select>

2.foreach
在这里插入图片描述

  <select id="findByIds" parameterType="list" resultType="user">
        select * from user1
        <where>
            <foreach collection="list" open="id in (" close=")" item="id" separator=",">
                #{id}
            </foreach>
        </where>
    </select>

在这里插入图片描述

2.sql片段抽取
利用sql标签将相同的sql语句抽取出来,方便后续的一些修改。

  <sql id="selectUser" >
        select * from user1
    </sql>

利用include标签进行引用

<include refid="selectUser"></include>

3.映射文件常用配置
在这里插入图片描述

二、核心文件配置

1.typeHandlers
在这里插入图片描述
在这里插入图片描述
2.plugins标签——插件标签
在这里插入图片描述
1.导入坐标

  <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>

2.在核心文件中进行插件的配置

 <plugins>
        <!-- com.github.pagehelper为PageHelper类所在包名 -->
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!-- 使用MySQL方言的分页 -->
            <property name="helperDialect" value="mysql"/><!--如果使用mysql,这里value为mysql-->
            <property name="pageSizeZero" value="true"/>
        </plugin>
    </plugins>

3.分页参数的设定

public class MyBatisTest {
    @Test
    public void test1() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //设置分页参数
        PageHelper.startPage(1,3);
        //mapper类调用方法实现查询
        List<User> userList = mapper.findAll();
        for (User user : userList) {
            System.out.println(user);
        }
    }

注意:映射文件中的sql语句不发生任何变化,只需要在调用方法进行查询前,利用pageHelper来进行分页的参数设定即可。

获得分页相关的参数:
在这里插入图片描述

核心文件常用标签
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值