mybatis_个人总结
在使用mybatis框架开发数据访问层的过程中,我在这段时间遇到很多细节问题困住我,在这里我来分享一下我遇到的坑,希望能帮到大家。
一、mybatis动态代理方式开发的规范:
1、注意在mybatis映射配置文件中的namespace属性的值必须是mapper接口的全路径名称。
2、注意映射文件中的标签上的id的值必须和mapper 接口中的方法名称保持一致。
3、要求映射文件中传入参数的数据类型必须和mapper接口中方法上形参的数据类型保持一致。
4、要求映射文件中输出参数的数据类型必须和mapper接口中方法的返回值的数据类型保持一致。
二、使用mybatis映射文件中#{}、${}俩个符号的注意点:
1、#{},表示占位符,起到占位的作用。
如果映射文件中输入参数的数据类型是简单类型(String、double、Integer、boolean等)的数据类型时,那么占位符中的变量名称随意起。
如果映射文件中输入类型的的数据类型是pojo类型时,那么占位符中的变量名称必须是pojo对象的属性名称,如果pojo对象中的属性包含了其他对象时,则变量名称必须是属性.属性.属性......。
2、${},表示拼接符,起到字符串原样拼接的作用。
如果映射文件中的输入参数的数据类型是简单类型(String、double、Integer、boolean等)的数据类型时,那么拼接符中的变量名称必须是value。
如果映射文件中输入类型的的数据类型是pojo类型时,那么占位符中的变量名称必须是pojo对象的属性名称,如果pojo对象中的属性包含了其他对象时,则变量名称必须是属性.属性.属性......。
3、在开发中如果使用拼接符${}时,一定要注意该符号有SQL注入的风险,必须避免该问题,能替代就替代。
1 <if test="custName!=null and custName!=''">
2 <!-- 【注意:这里尽量使用#{}占位符,是为了防止sql注入的问题】 -->
3 <!-- and cust_name like '%${custName}%' -->
4 and cust_name like "%"#{custName}"%"
5 </if>
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android 系统服务TelecomService启动过程原理分析
- Android圆角头像工具类详解
- Android实现系统消息推送
- Android仿微信QQ聊天顶起输入法不顶起标题栏的问题
- Android实现倒计时的按钮效果
- 腾讯位置服务实现轨迹回放
- 有一种遗憾,是跑程序却没用上_______
- Android使用注解代替枚举节省系统内存开销的方法
- Android实现自定义验证码输入框效果(实例代码)
- flutter 实现多布局列表的示例代码
- flutter TextField换行自适应的实现
- 如何造个android Flow流式响应的轮子
- Flutter混合开发详解
- Android 单双击实现的方法步骤
- Android多渠道打包时获取当前渠道的方法