MyBatis(二)

MyBatis(二)

CRUD

  • id:对应的namespace中的方法名
  • resultType:SQL语句中的返回值类型
  • parameterType:参数类型,基本类型可以省略
  • {}:在SQL语句中表示参数

    • 只要一个基本类型参数可以直接取到,对象的属性可以直接使用,map也可以直接使用键值
  • 增删改必须要提交事务sqlSession.commit();

配置解析

核心配置文件

  • 官方建议文件名:mybatis-comfig.xml
  • 文件中的标签有顺序要求:
    • properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?
  • 环境配置(environments):
    • 尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境
    • 默认事务管理器:JDBC
    • 默认数据源类型:POOLED
  • 属性(properties):
    • 可以通过properties来引用配置文件,resource设置文件地址
    • 配置文件中属性可以用${}来引用
    • 可以用property标签增加新的属性,name相同优先使用外部配置文件
  • 类型别名(typeAliases):
    • <typeAlias type="全限定名" alias="别名" />
    • <package name="包名"/>,扫描包下的JavaBean,默认以首字母小写的类名作为别名
      • 可以在类前用注解@Alias("别名")自定义别名
      • 默认别名中,基本类型要加下划线,如_int,而int表示的是封装类Integer
  • 设置(settings):
    • catchEnabled:开启缓存
    • lazyLoadingEnabled:延迟加载
    • useGeneralKeys:允许JDBC自动生成主键,需要驱动支持
    • mapUnderscoreToCamelCase:是否开启自动驼峰命名映射,如数据库中为last_name,可以映射到lastName类
    • logImpl:指定MyBatis所用日志的具体实现
  • 映射器(mappers):
    • <mapper resource="xxx.xml"指定资源目录
    • <mapper class="com.xxx.Class"使用接口实现类的完全限定类名
      • 接口和Mapper配置文件必须同名,且在同一个包下
    • <package name="xxx">将包内的映射器接口实现全部注册为映射器
      • 同上

ResultMap

  • 结果集映射
  • 解决属性名和字段名不一致的问题
<resultMap id="结果集映射id" type="类名">
    <result column="列名" property="属性名" />、
    ...
</resultMap>

<select id="getUserList" resultMap="结果集映射id">
    ...
</select>
posted @ 2021-01-30 21:07  一天到晚睡觉的鱼  阅读(55)  评论(0)    收藏  举报