Mybatis
Mapper代理开发(可以安装一个MybatisX插件)
- 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
- 设置SQL映射文件的namespace属性为Mapper接口全限定名
- 在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型的返回值类型一致
- 编码:
- 通过SqlSession的getMapper方法获取Mapper接口的代理对象
- 调用对应方法完成sql的执行
- 细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载
6. MybatisX:可以方便使mapper配置文件里的statement与mapper接口里的方法对应(就不用来回翻阅),提高了效率。
参数
- 参数占位符(面试经常问):
- #{}:会将其替换为?,为了防止SQL注入
- &{}:拼sql。会存在SQL注入问题
- 使用时机:
- 参数传递的时候:#{}
- 表名或者列名不固定的情况下:&{} 会存在SQL注入问题(一般不常用)
- 参数类型:parameterType可以省略
- 特殊字符处理:
1. 转义字符:字符少的时候用
2. CDATA区:字符多的时候用 <![CDATA[内容]]>
动态sql
- 多条件的动态条件查询:if标签 where标签
- 单条件的动态条件查询:choose(when,otherwise)choose类似于switch when类似于case otherwise类似于default
- …
注解开发
- 注解开发适用于完成一些简单的功能
- 配置文件完成复杂的功能