全国咨询/投诉热线: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

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额