04-Mybatis

文章介绍了Mybatis的基本查询操作,包括设置主配置文件、结果集与实体类的封装、条件查询和模糊查询。同时,展示了Mybatis如何进行动态SQL操作,如动态更新员工信息和批量删除员工的示例。
摘要由CSDN通过智能技术生成

一、Mybatis查询

1. 准备工作

在目前的数据库中添加一张数据表
导入工程
导入sqlMapConfig(mybatis的主配置文件)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!--全局配置项的开关-->
    <settings>
        <!--在控制台输出发送的sql日志-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!--开启驼峰映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <!--环境-->
    <environments default="development">
        <environment id="development">
            <!--事务管理器-->
            <transactionManager type="JDBC"/>

            <!--数据源(数据库连接池)-->
            <dataSource type="POOLED">
                <!--数据库连接驱动-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--数据库连接地址-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <!--用户名-->
                <property name="username" value="root"/>
                <!--密码-->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--接口所在包-->
    <mappers>
        <package name="com.itheima.mapper"/>
    </mappers>
</configuration>

2. 结果封装

执行查询sql是会有结果集返回来的,mybatis会将结果封装到我们指定的实体类
实体类属性名 和 数据库查询结果集中名称一致的字段,mybatis会自动封装
实体类属性名 和 数据库查询结果集中名称不一致的字段,不能自动封装,需要我们手动处理
查询所有:

@Select("select * from emp")
List<Emp> findAll();

 测试:

@Test
    public void testFindAll(){
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        List<Emp> all = mapper.findAll();
        all.forEach(System.out::println);
    }

3. 条件查询

sql语句:

select * from emp where name = '张三丰' and gender = 1 and entrydate between '2010-01-01' and ''2020-01-01;

接口方法:

@Select * from emp where name = #{name} and gender = #{gender} and entrydate between #{begin} and #{end}
List<Emp> findList(@Param("name") String name,@Param("gender") Short gender,@Param("begin") LocalDate begin,@Param("end") LocalDate end)

@Param 标注在方法参数的前面,用于声明在参数在#{}中的名字(Springboot不用添加)

4. 模糊查询

sql语句:

select *  from emp where name like '%张%' and gender = 1 and entrydate between '2010-01-01' and '2020-01-01 ';

接口方法:

@Select("select * from emp where name like concat('%',#{name},'%') and gender = #{gender} and entrydate between #{begin} and #{end}")
List<Emp> findList(@Param("name") String name, @Param("gender") Short gender,@Param("begin") LocalDate begin, @Param("end") LocalDate end);

二、Mybatis动态Sql

动态更新员工信息

<update id="updateEmp">
        update emp
            <set>
                <if test="username != null and username !=''">
                    username = #{username},
                </if>
                <if test="name != null and name !=''">
                    name = #{name},
                </if>
                <if test="gender != null">
                    gender = #{gender},
                </if>
                <if test="createTime != null">
                    create_time = #{createTime}
                </if>
            </set>
        where id = #{id}
    </update>

批量删除员工

<delete id="deleteByIds">
    delete from emp where id in
    <foreach collection="ids" item="id" separator="," open="(" close=")">
        #{id}
    </foreach>
</delete>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值