优秀的编程知识分享平台

网站首页 > 技术文章 正文

mybatis学习笔记1(mybatis入门案例)

nanyue 2024-10-16 11:09:26 技术文章 55 ℃

mybatis作为持久层框架,已经在各企业使用较为广泛,发一部分笔记,欢迎笔友一起探讨

1. DAO Data Access Object 数据访问对象

2. myBatis:支持普通的sql查询,存储过程和和高级映射的优秀持久层框架

3. trim的作用

trim元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是prefixOverrides和suffixOverrides;正因为trim有这样的功能,所以我们也可以非常简单的利用trim来代替where元素的功能

4. choose ..when..otherwise 相当于java中的switch,执行了一个就停止了,默认执行default里面的

5.where (主要是用来简化sql语句中where条件判断的,能智能的处理 and or 条件

6.if 做条件判断,字段拼接

7.set元素主要是用在更新操作的时候,它的主要功能和where元素其实是差不多的,主要是在包含的语句前输出一个set,然后如果包含的语句是以逗号结束的话将会把该逗号忽略,如果set包含的内容为空的话则会出错。有了set元素我们就可以动态的更新那些修改了的字段

8.foreach主要用在构建in条件中,它可以在sql语句中进行一个迭代集合。foreach元素的属性主要有item,index,collection,open,separator,close,例

<select id="dynamicForeachTest" resultType="Blog">

select * from t_blog where id in

<foreach collection="list" index="index" item="item" open="(" separator="," close=")">

#{item}

</foreach>

</select>

上述的collection的值为list,对应的Mapper是这样的

public List<Blog> dynamicForeachTest(List<Integer> ids);

如果collection的值是array,则参数类型是array

9.<![CDATA[ ]]>标记避免Sql中与xml规范相冲突的字符串对xml映射文件的合法性造成影响

10.rownum和rowid都是伪列,但是两者的根本是不同的,rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownum不同,但是rowid是物理结构上的,在每条记录insert到数据库中时都会有一个唯一的物理记录

11.mybatis中in的用法,${}是直接插入一个不做任何修改的字符串到SQL语句中

${}和#{}最简单的区别就是${}解析穿过来的参数值不带单引号,#{}解析传过来参数带单引号

yyyy-mm-dd hh24:mi:ss.ff 年-月-日 时:分:秒.毫秒

12.创建同义词:

create synonym V_PHAM_INFO_AREA_DESP for DMS.V_PHAM_INFO_AREA_DESP ;

是为了在不同用户中也可以访问

13 #{} 和${}的区别

#{} 是编译SQL语句再取值,能够很大方式防止SQL注入

${} 是取值后编译SQL语句,无法防止SQL在注入,一般用于传入数据库对象,例如传入表名

一般能用#{}的就别用${}


最近发表
标签列表