教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

MyBatis的基本使用

更新时间:2018年12月13日14时49分 来源:传智播客 浏览次数:

一:MyBatis整体架构

  

二:配置文件详解

  1.配置文件

  全局配置文件:mybatis-config.xml作用:配置数据源,引入映射文件

  映射文件:XxMapper.xml 作用:配置sql语句、参数、结果集封装类型等

  2.SqlSessionFactory作用:获取SqlSession

  通过new SqlSessionFactoryBuilder().build(inputStream)来构建,inputStream:读取配置文件的IO流

  3.SqlSession作用:执行CRUD操作

  4.Executor

  执行器,SqlSession通过调用它来完成具体的CRUD它是一个接口,提供了两种实现:缓存的实现、数据库的实现

  5.Mapped Statement

  在映射文件里面配置,包含3部分内容:

  具体的sql,sql执行所需的参数类型,sql执行结果的封装类型

  参数类型和结果集封装类型包括3种:

  HashMap,基本数据类型,pojo

  6.xxxMapper.xml映射文件

  名称空间必须改成UserMapper接口的全路径,StatementId必须和接口方法名一致,结果集的封装类型已经和方法的返回类型一致

  7.mybatisconfig.xml配置文件

  讲究严格的顺序,具体顺序遵循文档的顺序:

  

  

  

  8.settings参数:

  

  9.类型别名

  1.typeAlias

  <typeAliases>

           <!-- 类型别名:type-pojo类的全路径,alias-别名名称(可随便写,推荐和类名一致) -->
           <typeAlias type="cn.itcast.mybatis.pojo.User" alias="user" />
      </typeAliases>

  2.package

  3.typeHandlers

  4.environments

  1.default

  2.build

  5.Mappers 映射

  1.resource

  2.file

  3.class

  4.package

  6.CRUD标签

  1.insert :

  useGeneratedKeys : 开启主键的回显 , true & false

  keyColumn : 主键的列名

  keyProperty : 主键对应的属性名

  2.update

  3.select

  4.delete

  7.parameterType 参数

  parameterType有三种类型的输入参数:

  1.基本数据类型

  2.hashMap

  3.pojo包装类

  hashMap类型通过#{key}或者${key},复杂类型通过${key.属性名}或者#{key.属性名}

  接收参数两种方式:

  1.#{} : 预编译

  2.${} : 非预编译 sql拼接,不能防止sql注入

  ${}用法:

  使用${} 去接收参数信息,在一个参数时,默认情况下必须使用${value}获取参数值,

  #{}用法:

  #{} 只是表示占位,与参数的名字无关,如果只有一个参数,可以使用任意参数名接收参数值,会自动对应。

  推荐使用@Param注解指定参数名:

  #{参数名},${参数名}

  #{}接收多个参数:

  1.默认规则获取参数{0,1,param1,param2}

  2.使用@Param注解指定参数名

  如果没指定参数名,用#{0},#{1}或者#{param1},#{param2}

  注意:

  1.单个参数时,#{}与参数名无关的。

  2.多个参数时,#{} ${}与参数名(@Param)有关。

  什么时候需要加@Param注解?什么时候不加?

  单个参数不加,多个参数加

  终极解决方案:都加。

  8.ResultMap 自定义映射

  type : 结果集的封装类型 , id : 唯一标识 , autoMapping : 开启自动匹配,如果开启了驼峰匹配,就以驼峰匹配形式

  id : 指定主键映射 ,不要省略,提高性能

  result : 其他非主键字段 , column : 表中的字段名 , property : 对应实体类属性名



作者:传智播客JavaEE培训学院

首发:http://java.itcast.cn

0 分享到:
和我们在线交谈!