• Mybatis


     Mybatis流程图

    SqlSessionFactory对象

      可以理解为会话工厂,在整个项目中共享,是线程安全的。通过openSession方法创建SqlSession对象,该方法存在很多重载方式可以有参数可以无参数。

    SqlSession

      可以通过会话工厂产生,线程不安全。用来执行SQL,提供了丰富的方法来完成数据库的操作。

      Mybatis不会自动提交事务,需要手动提交。

      提交方式有两种:openSession(true)或者session.commit()

    1》 关于config配置

      文件名可以随意命名,习惯名称sqlMapConfig.xml

      主要配置3个内容:事务管理器,数据源信息,映射文件

     2》UserMapper.xml

      文件名可以随意命名,习惯的方式是: POJO对象名+Mapper.xml

      用来描述对应对象的信息,写大量表操作的SQL语句

      通过#{value}来获取值,value写的是属性的名字。

      命名空间namespace作为该映射文件的唯一标志

      映射文件里的配置要和代码中匹配,比如返回值类型,参数类型等等

       特殊:

      当SQL中有特殊字符<mybatis不能正常解析时,用<![CDATA[??]]>括起来就解决了

      <![CDATA[ and age<=#{age} ]]>

      

      两种方式都可以获取参数的值。

      推荐能用#不用$:

        •      #{  }   (推荐!)
    1. 相当于JDBC中的PreparedStatement 是经过预编译的,是安全的
    2. 会为参数自动拼接引号。
    3. 执行SQL效果:select * from user where userId=”1”  and pwd=”2”
        •      ${   }:
    1. 相当于JDBC中的Statement ,未经过预编译,仅仅是取变量的值,是非安全的,存在SQL注入。

        执行SQL效果:select * from user where userId=1  and pwd=2

     mybatis运行过程

      先创建工厂来解析config文件,工厂来创建会话,通过session会话来执行mapper中对应的sql语句,最后将结果赋予给对应的

  • 相关阅读:
    在线免费生成IntelliJ IDEA 15.0注册码
    SQL logic error or missing database
    angularJs 动态添加upload
    正则表达式 用于验证数字组合(数字之间以逗号分隔)
    angularJs select ng-options 绑定int型的时候绑定失效的坑
    BigDecimal类处理高精度计算
    HttpClient
    activeMQ
    基于SpringMvc图片上传
    SpringMvc实现日期转换
  • 原文地址:https://www.cnblogs.com/xiaoshazi/p/13138856.html
Copyright © 2020-2023  润新知