只是各人都这么定名,而位置,将该设置文件放到 resources 类的根路径下,移植性更好,使用起来也是更加的方便一些。
mybatis-confg.xml ,也就是MyBatis 的核心设置文件,主要设置毗连数据库的信息等(**一般一个数据库,对应一个这个MyBatis 的核心设置文件),同样的与之对应的通过 mybatis-config.xml 核心设置文件' 所创建的对象:SqlSession FactoryBuilder,SqlSessionFactory 也是一个数据库相对应上一个对象。MyBatis 核心设置文件的标签,属性的简单说明:如下:
- JDBC:使用 JDBC 原生的事务管理机制,底层管理:事务开启conn.setAutoCommit(false);...处置处罚业务,事务提交 conn.commit( )
- MANAGED:交给其他容器来管理事务,好比:WebLogic,JBOSS,Spring等第三方框架进行事务的管理控制,如果没有设置第三方的框架管理的话,则就没有事务上的控制的了,没有事务(就是只要执行一条DML语句,则提交一次)
MyBatis 核心设置,可以设置的内容,细节是比力多的,上述只是写明了一些比力常用的,一些设置,更多内容各人可以移步至:✏️✏️✏️https://mybatis.net.cn/configuration.html ,了解更多细节,设置。
- UNPOOLED:采取传统的获取毗连的方式,虽然也实现了 javax.sql.DataSource 接口,但是并没有使用池的思想。
- property 属性下可以设置:
复制代码
- driver 这是JDBC驱动的Java类全限定名
- url 这是数据库的JDBC URL 地址
- usarname 登录数据库的用户名
- password 登录数据库的密码
- defaultTransactionlsolationLevel 默认的连接事务隔离级别
- defaultNetworkTimeout 等待数据库操作完成的默认网络超时实际(单位:毫秒)
- POOLED:采取传统的 javax.sql.DataSource 规范中的毗连池,MyBatis 中有针对规范的实现。
- 在 POOlED 中的设置下的,property 可以是(除了包罗 UNPOOLED中之外):
复制代码
- poolMazimunmActiveConnections 在任意时间可存在的活动(正在使用)连接数量,默认值 10
- poolMaximumldleConnections 任意时间可能存在的空闲连接数。
- 其它...
- JNDI:采取服务器提供的JNDI技能实现,来获取DataSource 对象,不同的服务器所能拿到 DataSource 是不一样,如果不是 web 大概 maven 的 war 工程,JNDI 是不能使用的。
- 在JNDI 下的 property 属性设置,只有两个值:
简单的说就是:就是 Web容器(好比Tomcat)当中上面我们使用了数据库毗连池,我们JNDI就只需要获取到Tomcat(这层我们使用的数据库毗连池)就可以了,不需要再额外的去,搞个数据库毗连池。复制代码
- initial_context 这个属性用来在 InitialContext 中寻找上下文(即,initialContext.lookup(initial_context))这是个可选属性,如果忽略,那么将会直接从 InitialContext 中寻找 data_source 属性。
- data_source 这是引用数据源实例位置的上下文路径。提供了 initial_context 配置时会在其返回的上下文中进行查找,没有提供时则直接在 InitialContext 中查找。
- mappers:在mappers 标签中可以设置多个 SQL 映射文件的路径。
- mapper:设置某个 SQL 映射文件的路径
- resource 属性:使用相对于类路径的资源引用方式
- url 属性:使用完全限定资源定位符(URL)方式
默认环境是什么意思,当你使用mybatis创建 sqlSessionFactory 对象的时候,没有指定环境的话,默认使用的就是,这里 default 指定的数据库的环境-
其中的一个环境,毗连的数据库是 mybatis
一般一个数据库会对应上一个SqlSessionFactory对象
一个环境environment 对对应上一个SqlSessionFactory对象
大小写无所谓,不区分大小写,但是不能不写其他值,只能是二选一( jdbc;managed)
- 第一个:JDBC: 使用原生的JDBC代码来管理事务
conn.seAutoCommit( false )
...事务
conn.commit( );
- 第二个:MANAGED
mybatis 不再负责事务的管理,将事务管理交给其它的JEE(JavaEE)容器来管理。 例如:spring
5. dataSource 标签
- 如果type="JDBC",那么底层会实例化JdbcTransaction对象
- 如果type="MANAGED",那么底层会实例化ManagedTransaction对象
为程序员提供Connection对象,(但凡是给程序员提供 Connection毗连对象的,都叫做数据源)我们本身也可以编写数据源组件,只要实现 javax.sql.DataSource接口就行了,
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |