2.创建SqlSession对象和关闭SqlSession
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
· 3.SqlSession对象
作用:用于持久化操作的对象,类似于JDBC中的connection,提供了面向数据库执行SQL命令所需的所有方法,
生命周期和作用域:对应着一次数据库会话,若关闭的SqlSession会话,就需要重新创建它。
注意:每个线程都有自己的SqlSession实例,所以不能被共享,是线程非安全的,最佳作用域范围是request作用域或者方法体作用域。
使用方式:1.直接执行已映射的Sql语句,例如:直接调用selectList方法执行查询。
2.基于mapper接口方式操作数据。例子:Sqlsession.getMapper(接口名.class).执行的方法(参数);
二、核心配置文件
核心配置文件的一些基本的元素,需注意,元素节点有相应的先后顺序。如下图:
----configuration元素为整个xml配置文件的根节点,相当于总管。
1.properties元素:外部化、可替代的属性。
(1)通过外部指定的方式:<properties resource="database.properties">引入database.properties文件。
(2)直接配置xml文件。
<properties>
<property name = "xx" value = "xx">......
</properties>
补充:如果以上的两种方式同时使用的话,外部引入优先级高于property子节点配置的值。
2.settings元素:设置重要的选项,用于设置和改变MyBatis运行中的行为。
设置项 描述 允许值 默认值cacheEnabled 对在此配置文件下的所有cache进行全局性开/关设置 true | false true
lazyLoadingEnabled 全局设置懒加载,设置为false,则所有相关联的都会被初始化加载 true | false true
autoMappingBehavior MyBatis对于resultMap自动映射的自动匹配级别 NONE | PARTIAL | FULL PARTAL
autoMappingBehavior的三个允许值:
NONE 表示取消自动映射;PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。 FULL 会自动映射任意复杂的结果集(无论是否嵌套)。
3.typeAliases元素:配置类型别名,减少输入多余的完整类名,以简化操作。
更简化的写法:通过package的name属性直接指定包名,MyBatis会自动扫描指定包下的JavaBean,并默认设置别名(javabean的非限定类名)
4.environments元素:配置多套运行环境,可讲SQL映射应用到不同数据库环境上.
(1)默认的运行ID:通过default属性来指定当前的运行环境ID。对于环境ID的命名要确保唯一。
(2)transactionManager事务管理器:类型分为JDBC和MANAGED,直接使用JDBC的提交和回滚功能。
一、使用JDBC的事务管理机制:即利用java.sql.Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())等
二、使用MANAGED的事务管理机制:这种机制MyBatis自身不会去实现事务管理,而是让程序的容器如(JBOSS,Weblogic)来实现对事务的管理
(3)dataSource元素使用标准的JDBC数据源接口配置JDBC连接对象的资源。
1.UNPOOLED:为每一个数据库操作创建一个新的连接,并关闭它,该方式只适用于只有小规模数量并发用户的简单应用程序上。
2.POOLED:创建一个数据库连接池,池中的一个连接将会被用作数据库操作,一旦完成,会将此连接返回给连接池,经常使用此种方式。
3.JNDI:从在应用服务器配置好的JNDI数据源datasource获取数据库连接,在生产环境中,优先考虑此方式。
5.mapper元素:映射器,用来定义SQL的映射语句,只需告诉MyBatis去哪里找这个SQL语句,
(1)使用类资源路径获取资源。
<mappers>
<mapper resource="cn/smbms/dao/user/UserMapper.xml" />
</mappers>
(2)使用URL获取资源。
<mappers>
<mapper url="file:///E:/sqlmappers/UserMapper.xml" />
</mappers>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------