创建maven项目进行的mybatis相关知识学习,包括:
mybatis全局配置
mybatis映射文件配置与增删改查
mybatis映射文件select、resoultmap、association、collection、discriminator标签
mybatis返回类型封装、自定义映射规则、关联查询、级联封装、分步查询、延迟加载
#说明见代码中注释
项目结构如图:
mybatis-config
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
引入properties配置文件内容
resource:引入类路径下资源
url:引入网络路径或磁盘路径资源
-->
<properties resource="dbcconfig.properties"></properties>
<!--设置每一个项设置值
name:项名
value:值-->
<!--开启驼峰命名-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--懒加载,所有值在使用时被检索-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--关闭时检索的内容中被使用的部分在调用时才被加载-->
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
<!--typeAliases为某个java类起别名(别名不区分大小写)
在类中可以使用@Alias("")注解起别名
默认全小写,
alias:指定新别名-->
<typeAliases>
<typeAlias type="com.model.User" alias="usr"/>
<!--批量起别名
package为某个包下所有类批量起名
name:指定包名,为当前包以及下面所有的后代包的每一个类都起一个默认包名(别名为类名小写)-->
<!--<package name="com.model"/>-->
</typeAliases>
<environments default="development">
<!--配置环境default指定某种环境
environment配置具体环境必须有两个标签id表示当前环境标识
transactionManager:事务管理器
type:事务管理器类型;JDBC(JdbcTransactionFactory)|MANAGED(ManagedTransactionFactory)
dataSource:数据源
type:数据源类型;UNPOOLED(UnpooledDataSourceFactory)|POOLED(PooledDataSourceFactory)|JNDI(JndiDataSourceFactory)
默认为POOLED
自定义数据源:实现DataSourceFactory接口-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--mapper:注册SQL映射文件
注册配置文件
resource:引用类路径下的sql映射文件
url(完全限定资源定位符):引用网络或磁盘路径下的sql映射
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
注册接口
class:使用映射器接口实现类的完全限定类名
需求1)有sql映射文件.xml,并且与接口放在同一目录下
2)没有sql映射文件,所有sql用注解写在接口上(不推荐)
package:批量注册-->
<mapper resource="mapper.xml"/>
<mapper resource="jobmapper.xml"/>
</mappers>
</configuration>
mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.or