zoukankan      html  css  js  c++  java
  • 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()关闭会话

  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/yuki-l/p/8733608.html
Copyright © 2011-2022 走看看