主页 > 开源代码  > 

框架--Mybatis2

框架--Mybatis2

目录

一.结果处理

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