框架--Mybatis2
- 开源代码
- 2025-08-29 23:21:01

目录
一.结果处理
1.#{} 和${}区别
区别:
(1)底层实现不同
(2)使用场景不同
2.特殊处理定义resultMap
二.多表关联处理结果集
1.多表查询
1)准备工作
2)根据id查一个学生
(1)关联查询方式1:
(2)关联查询方式2:嵌套查询
3)查多个学生
(1)根据专业id查询学生信息
(2)查询每个专业下的学生
①关联查询方式1:
②关联查询方式2:分两次查询
2.注解方式
三.Mybatis 动态SQL
1.if元素
2. 元素
3.trim 元素
4.Choose 元素
5.Set 元素
修改老师表中部分信息
6.foreach 元素
批量删除表中信息
动态传递列名
一.结果处理 1.#{} 和${}区别
${}代码案例:根据密码降序排列
(1)AdminDao中:
(2)AdminMapper中:
(3)test:
区别: (1)底层实现不同#{ } 采用预编译方法,防止sql注入更加安全
${ } 采用字符串拼接,直接将值拼接到sql中
(2)使用场景不同#{ } 一般用于向sql中的列传递
${ } 一般用于向sql动态传递列名 例如:排序时order by后面的列名是可以改变的
2.特殊处理定义resultMap<resultMap id="adminResultMap" type="Admin"> <id column="id" property="id"/> <result property="account" column="account" /> <result property="password" column="password" /> </resultMap> (1). resutlMap 的 id 属性是resutlMap的唯一标识,本例中定义为“adminResultMap” (2). resutlMap 的 type 属性是映射的POJO类型 (3). id 标签映射主键,result标签映射非主键 (4). property 设置对象属性名称,column映射查询结果的列名称
案例代码:
①AdminDao:
②
③
④结果:
⑤总结:此案例是因为列名(adminid)与属性名(id)不同导致无法获得id,引入resultMap。多用于多表查询。
二.多表关联处理结果集 1.多表查询 1)准备工作(1)创建表格
(2)创建模型类
(3)创建StudentMapper和StudentDao
(4)配置StudentMapper地址
2)根据id查一个学生以下两种方式掌握一种即可
(1)关联查询方式1:直接通过表关联查询出我们需要的数据
获取信息:
System.out.println(student.getId()); System.out.println(student.getName()); System.out.println(student.getMajor().getName()); (2)关联查询方式2:嵌套查询先查询主表(学生表),通过主表中的外键,再通过外键查询关联的另一个表中数据
3)查多个学生 (1)根据专业id查询学生信息名字对应关系:
(2)查询每个专业下的学生 ①关联查询方式1:查询所有专业,以及各专业下学生的信息
②关联查询方式2:分两次查询分页采用这种方法
2.注解方式@Insert : 插入sql , 和xml insert sql语法完全一样
@Select : 查询sql, 和xmlselect sql语法完全一样
@Update : 更新sql, 和xmlupdatesql语法完全一样
@Delete : 删除sql, 和xmldelete sql语法完全一样
@Param : 入参
@Results : 设置结果集合
@Result : 结果
三.Mybatis 动态SQL动态SQL,可以在sql中添加逻辑判断。
思考:如果上面的这条sql语句中没有默认的 type=1会是什么样子的。
1.if元素test属性条件成立,执行if标签体,不成立就不执行
查询条件:
2.<where>元素where标签,当where标签中if语句有条件成立时,就会动态添加where关键字,还可以删除where后面紧跟着的关键字 ,例如and、or
3.trim 元素trim 当条件判断成立时,可以自定义前缀关键字和后缀关键字
4.Choose 元素 5.Set 元素Set 元素可以把最后一个逗号去掉
修改老师表中部分信息另一种方法:
6.foreach 元素 批量删除表中信息 动态传递列名框架--Mybatis2由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“框架--Mybatis2”
上一篇
创建三个节点