• mybatis知识小计


    1、#{}和${}的区别是什么?

    ${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。$将传入的数据直接显示生成在sql中不防注入。$方式一般用于传入数据库对象,例如传入表名. ;排序时使用order by 动态参数时需要注意,用$而不是#

    #{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值。会解析为字符串防注入。

    #{}是预编译处理,${}是字符串替换。
    Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
    Mybatis在处理${}时,就是把${}替换成变量的值。
    使用#{}可以有效的防止SQL注入,提高系统安全性。

    MyBatis,collection标签和association标签区别

    比如同时有A.java和B.java两个类,A.java如下:
    public class A{
    private B b1;
    private List<B> b2;
    }
    在映射b1属性时用association标签, 映射b2时用collection标签,分别是一对一,一对多的关系


    JavaType和ofType
     JavaType和ofType都是用来指定对象类型的,但是JavaType是用来指定pojo中属性的类型,而ofType指定的是映射到list集合属性中pojo的类型
    publicclass User {
        privateint id;
        privateString username;
        privateString mobile;
        privateList<Post>posts;
    }
    javatype指定的是user对象的属性的类型(例如id,posts),而oftype指定的是映射到list集合属性中pojo的类型(本例指的是post类型)
     
     
     
    MyBatis编程步骤是什么样的?
    ① 创建SqlSessionFactory
    ② 通过SqlSessionFactory创建SqlSession
    ③ 通过sqlsession执行数据库操作
    ④ 调用session.commit()提交事务
    ⑤ 调用session.close()关闭会话

  • 相关阅读:
    Pycharm 2016 注册码
    在mac上搭建python环境
    Carthage 的使用
    生成唯一的随机字符串
    utf-8 转码--网址转码
    让自己的项目支持 Carthage
    系统自带的语音合成
    个性化 UIAlertController
    cocoaPods 创建自己的依赖库
    appleDoc 使用
  • 原文地址:https://www.cnblogs.com/yuki-l/p/8733608.html
Copyright © 2020-2023  润新知