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()关闭会话

  • 相关阅读:
    4.0中的并行计算和多线程详解(一)
    Dojo工具包简介
    javascript中event.keyCode
    iText简介(转)
    ServletContext
    java文件加解密算法
    ResultSet 的相关介绍
    spring的AOP的四种实现方式
    java实现文件zip压缩或者解压缩
    Hibernate查询数据的几种方式以及HQL用法及参数的几种使用方法
  • 原文地址:https://www.cnblogs.com/yuki-l/p/8733608.html
Copyright © 2011-2022 走看看