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

 

posted @ 2020-06-16 02:07  大青蛙大声道  阅读(62)  评论(0)    收藏  举报