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语句,最后将结果赋予给对应的

原文地址:https://www.cnblogs.com/xiaoshazi/p/13138856.html