Mybatis二 SQL映射文件

SQL映射文件

  单条件查询

1. 在ISmbmsUserDao接口添加抽象方法

//根据用户名模糊查询
    List<SmbmsUser> getUserListByName();

2. 在UserMapper.xml里添加SQL

<!--根据用户名模糊查询-->
    <select id="getUserListByName" resultType="SmbmsUser" parameterType="String">
        select * from smbms_user where userName like concat(‘%‘,#{userName},‘$‘)
    </select>

3. 测试类添加方法

//模糊查询
    @Test
    public void testUserListByName(){
        List<SmbmsUser> users = mapper.getUserListByName("李");
        for (SmbmsUser user : users){
            System.out.println(user.getUserName());
        }
    }

  多条件查询

1. 在ISmbmsUserDao接口添加抽象方法

//对象入参查询
    List<SmbmsUser> getUserListByUser(SmbmsUser user);

2. 在UserMapper.xml里添加SQL

<!--以用户类型入参查询-->
    <select id="getUserListByUser" parameterType="SmbmsUser" resultType="Smbmsuser">
        select * from smbms_user
                    where userName like concat(‘%‘,#{userName},‘%‘)
                    and userRole = #{userRole}
    </select>

3. 测试类添加方法

//以封装用户入参
    @Test
    public void testUserListByUser(){
        List<SmbmsUser> userList = new ArrayList<>();
        SmbmsUser user = new SmbmsUser();
        user.setUserName("赵");
        user.setUserRole(3);
        userList = mapper.getUserListByUser(user);
        for (SmbmsUser  user1: userList){
            System.out.println(user1.getUserName());
        }
    }

原文地址:https://www.cnblogs.com/loveyoul9/p/11473941.html

时间: 2024-11-08 12:52:10

Mybatis二 SQL映射文件的相关文章

【二】MyBatis的SQL映射文件 ----- 一对一的关联查询

现在假设数据库中有两张表,一张是班级表,另一张是教师表.一个班级只有一名班主任老师,而一个老师只能担任一个班的班主任,这就是我们所说的一对一关联关系.现在要求,查询班级表的同时也要查询出老师的信息.两张表的数据如下所示: 教师表: 班级表: 创建表的SQL语句如下(MySQL数据库): CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20) ); CREATE TABLE class( c_id

【三】MyBatis的SQL映射文件 ----- 一对多的关联查询

一对多关联查询的解决方案也有两种:嵌套结果和嵌套查询 在上一篇博客中已经讲了一对一的关联查询,在MySQL数据库中已经存在了班级表 class 和教师表 teacher.为了满足一对多关联查询的要求,还需要创建一张学生表 student.这样,在查询班级信息的同时,可以得到教师和学生的信息. 创建 student 表的 SQL 语句如下: CREATE TABLE student( s_id INT PRIMARY KEY AUTO_INCREMENT, s_name VARCHAR(20),

mybatis 中 sql 映射文件 select 标签以及 入 resultMap 标签的应用

1.自定义某个 javabean 的封装规则: 注:可以看到,select 标签中引用了 定义好的 resultMap 的值.resultMap 标签中的 type 为javabean 类型,id 为唯一标识.id 子标签定义主键(这样定义底层会有优化.)column 属性为字段名,property 属性为字段值. 注:可以看到测试结果没有出现问题,说明代码没有错误. 2.自定义某个 javabean 的级联属性封装: a.准备工作:mysql 数据库中,在之前 tbl_employees 表的

MyBatis之sql映射文件

MyBatis的强大之处就在于它的sql映射文件,下面介绍sql映射文件的几个顶级元素配置 1)mapper:映射文件的根元素节点,只有一个namespace(命名空间) * 用于区分不同的mapper,全局唯一 * 绑定dao接口,即面向接口编程, 当,namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整的限定名查找到对应的mapper配置来执行sql语句,应此namespace的命名必须要跟接口同名. 2)cache:配置给定的命名空间的缓存 3)ca

mybatis 的 sql 映射文件增删改查的学习

在 sql 映射文件中配置增删改查的操作:     1.增: 在 sql 映射文件中添加 insert 标签,并且增加对应的 sql 语句.(在之前博文示例的基础上添加)在 对应的接口中添加 对应的方法,方法名与 sql 映射文件中 insert 标签中的 id 属性值一致. 注:可以看到,在测试方法 test03 中更新成功.但是在 openSession 对象需要手动提交事务.(sqlSessionFactory.openSession 方法的得到的 openSession 对象,使用 sq

MyBatis的SQL映射文件

1.使用MyBatis实现条件查询 (1)sql映射文件 mapper:映射文件的根元素节点,只有一个属性namespace,其作用如下: <1>用于区分不同的mapper,全局唯一 <2>绑定DAO接口,即面向接口编程.当namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整限定名查找到对应的mapper配置来执行SQL语句.因此namespace的命名必须要跟接口同名. cache:配置给定命名空间的缓存 cache-ref:从其他命名空间

传参在mybatis的sql映射文件中正确获取

1.单个参数: 非自定义对象 传参:getStuById(Integer id): 取值:#{id} 单个基本类型参数,随便取值都行:#{ok} 对象: 传参:saveStudent(Student student) 取值:#{属性名} 2.多个参数: 传参:getStudentByLastNameAndAge(String lastName,Integer age) 取值:#{参数名}不好使:报错提示可用的参数是[0,1,param1,param2] 可用的取值方式: 1)#{参数索引} #{

Mybatis 的基本要素—SQL 映射文件

MyBatis 真正的强大在于映射语句,相对于它强大的功能,SQL 映射文件的配置却是相当简单.对比 SQL 映射配置和 JDBC 代码,发现使用 SQL 映射文件配置可减少 50% 以上的代码,并且MyBatis 专注于SQL,对于开发人员来说,也可极大限度地进行 SQL 调优,以保证性能. SQL 映射文件的几个顶级元素(按照定义的顺序) ? mapper:映射文件的根元素节点,只有一个属性 namespace(命名空间) . namespace 作用如下 1.用于区别不同的 mapper,

MyBatis -- sql映射文件详解

MyBatis 真正的力量是在映射语句中.和对等功能的jdbc来比价,映射文件节省很多的代码量.MyBatis的构建就是聚焦于sql的. sql映射文件有如下几个顶级元素:(按顺序) cache配置给定命名空间的缓存. cache-ref从其他命名空间引用缓存配置. resultMap最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象. parameterMap已经被废弃了!老式风格的参数映射.内联参数是首选,这个元素可能在将来被移除. sql可以重用的SQL块,也可以被其他