入“坑”mybatis后如何挣脱? (2)

用于配置数据的环境。可配置多个数据库环境,但是SqlSessionFactory只能选择一个去使用。如下:

<environments default="development"> <environment> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property value="${driver}"/> <property value="${url}"/> <property value="${username}"/> <property value="${password}"/> </dataSource> </environment> <environment> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property value="${driver}"/> <property value="${url}"/> <property value="${username}"/> <property value="${password}"/> </dataSource> </environment> </environments>

可以在不同的环境下切换不同的数据环境,只需要修改environments标签中的default属性对应不同环境下的id属性,比如development和test不同的环境。

事务管理器(transactionManager)

在mybatis中有两种不同的事务管理器,即type="JDBC"或者type="MANAGED"

JDBC的事务类型是直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。

MANAGED的事务类型配置几乎没有做什么,从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期。

数据源(dataSource)

主要有三种数据源类型,即type="[UNPOOLED|POOLED|JNDI]"。

UNPOOLED的数据源类型是不使用连接池,每次请求时都会打开和关闭连接,显然这样的连接数据源类型效率不高。

POOLED的数据源类型是使用连接池的概念,每次请求可以直接从“池”子里拿出活跃的连接,避免了重复的创建连接,提高效率。

JNDI的数据源类型实现是为了能让在 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。

mappers映射器

定义映射的路径,告诉mybatis去哪里找对应的语句。我们可以是使用类路径的资源引用方式(推荐使用):

<!-- 使用相对于类路径的资源引用 --> <mappers> <mapper resource="com/wkx/dao/AuthorMapper.xml"/> </mappers>

可以通过使用完全限定资源定位符(URL)的方式(方式二):

<!-- 使用完全限定资源定位符(URL) --> <mappers> <mapper url="file:///E:/UserMapper.xml"/> </mappers>

可以通过映射器接口实现类的完全限定类名的方式(方式三):

<!-- 使用映射器接口实现类的完全限定类名 --> <mappers> <mapper/> </mappers>

可以包的形式将映射器接口全部注册为映射器的方式(方式四):

<mappers> <package/> </mappers>

注意:方式三和方式四使用需要具备两个条件,一个是接口和Mapper的名称一致,比如UserMapper.java接口和UserMapper.xml必须都是UserMapper,也就是一致的。另一个是接口和Mapper的包名一致。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxgwy.html