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>