1、MyBatis的大致流程
通过mybatis的xml文件,获取mybatis的sqlsessionFactory
使用sqlsessionFactory打开一个连接sqlsession
使用sqlsession对象获取mapper文件的实现类代理对象
使用代理对象调用相应的增删改查方法
关闭sqlsession
2、sqlsession
sqlsession代表和数据库的一次会话,用完必须关闭,释放资源
sqlsession和connection一样是非线程安全的,每次使用都要获取新的对象
3、mybatis的全局配置文件
properties标签:
resource属性:引入类路径下的资源
url属性:引入网络路径或者磁盘路径下的资源
取值的时候使用${var}的形式获取peoperties中的内容
settings标签:
重要的设置项,使用setting标签,指定相应的name和value属性为属性赋值
typeAliases标签:
别名处理器:为java类型起别名,方便其他地方引用
子标签typeAlias为对应的指定类起别名,type属性为类型的全类名
默认别名为类名小写,也可以使用alies属性指定别名
子标签package属性:为某个包下的类批量起别名,name属性为要指定包名的全类名
别名不区分大小写
typeHandlers自定义类型处理器:
建立起java对象的数据类型和数据库类型之间的对应关系
plugins标签:插件
Executor执行器
parameterHandler参数处理器
ResltSetHandler结果集处理器
statrmentHandler:sql语句预编译处理器
environments标签:环境标签
default属性:默认环境
environment子标签:配置单个环境,id设置
必须包含transactionManager和dataSource两个标签
transactionManager指定事务管理器:JDBC和MANAGED
dataSource指定数据源的相关配置
databaseIdProvider标签:支持多数据库的sql语句
跟不同数据库厂商的表示,执行不同数据库下的sql语句
4、mapper映射文件
相应的标签直接支持:insert、update、delete、select
mybatis允许直接定义返回值类型为long,int,bealoon,void
mysql可以使用insert标签设置useGeneneratedKesys为true就可以返回自增主键,keyProperty定义主键对应javabean的属性
oracle使用序列维护主键,不能自增的情况下,可以设置insert标签中使用selectKey子标签进行序列查询