mybatis-config.xml文件讲解

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"" target="_blank">http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!--放在最上边-->

<!--属性类 java.util.properties 是一个Map集合。key和value都是string-->

<!--在properties标签中可以配置很多属性

这是其中的一个属性<property name="属性名" value="属性值"/>

<property name="driver" value="com.mysql.cj.jdbc.Driver"/>也可以链接db.properties文件

从绝对路径加载资源 绝对路径怎么写 ? file:///路径

<properties url="file:///d:/....."

-->

<properties resource="db.properties"></properties>

<!--开启mybatis对标准日志的实现-->

<!--<settings>-->

<!-- <setting name="logImpl" value="STDOUT_LOGGING"/>-->

<!--<setting name="logImpl" value="SLF4J"/>-->

<!--</settings>-->

<!--读取properties文件-->

<!--配置连接数据库环境 default默认环境 -->

<!--默认环境是什么意识?当你使用mybatis创建sqlSessionFactory对象的·时候,没有指定到环境,默认使用那个环境-->

<environments default="powernodeDB">

<!--一般一个数据库会对应一个sqlSessionFactory对象-->

<!--一个环境-->

<!--连接数据库的某个环境-->

<environment id="powernodeDB">

<!--事务管理-->

<transactionManager type="JDBC"/>

<!--数据源-->

<dataSource type="POOLED">

<!--设置连接数据库的驱动-->

<property name="driver" value="${driver}"/>

<!--设置连接数据库的url-->

<property name="url" value="${url}"/>

<!--设置连接数据库的用户名-->

<property name="username" value="${username}"/>

<!--设置连接数据库的密码-->

<property name="password" value="${password}"/>

<!--提醒:正在使用连接池的话,池中有很多参数可以设置的,设置好参数,可以让连接池发挥更好,事半功倍的效果-->

<!--具体连接池当中的参数如何配置呢?需要反复的根据当前的业务情况测试-->

<!--poolMaximumActiveConnections:连接池当中最多的正在使用链接对象的上限,最多有多少个链接可以活动。默认值10-->

<property name="poolMaximumActiveConnections" value="10"/>

<!--每隔2秒打印日志 并尝试获取链接对象-->

<property name="poolTimeToWait" value="2000"/>

<!--强行让某个链接空闲,超时时间的测试-->

<property name="poolMaximumCheckoutTime" value="10000"/>

<!--假设最多的连接数量是: 10个 // poolMaximumIdleConnections最多的空闲数量

最多空闲的数量是: 5个。

假设目前已经空闲5个了。马上第6个要空闲了

假设第6个空闲下来了。此时连接池为了保证最多空闲的数量5个,会真正关闭多余的空闲的连接对象.-->

<property name="poolMaximumIdleConnections" value="5"/>

</dataSource>

</environment>

<!--这是mybatis的另一个环境,也就是链接数据库是另一个数据库-->

<!--连接数据库的某个环境-->

<environment id="mybatisDB">

<!--transactionManager标签

1.作用 配置事务管理 指定mybatis具体用什么方式管理事务

2.type用两个值 第一个JDBC使用原生的JDBC代码管理事务

conn.setAutoCommit(false)

....

第二个MANAGED :-mybatis不在负责事务管理,将事务管理交给其他的JEE(javaEE)例如spring

3大小写无所谓 但不能写其他值 只能二选一

4.在mybatis提供一个事务管理器接口 Transaction

该接口两个实现类

JdbcTransaction

ManagedTransaction

如果type="JDBC",那么底层会实例化JdbcTransaction对象

如果type="MANAGED"那么底层会实例化ManagedTransaction对象

-->

<transactionManager type="JDBC"/>

<!--

dataSource 被称为 数据源,

1.作用是什么? 为程序提供Connection对象,(但凡是给程序员提供Connection对象的,都叫做数据源)

2.数据源实际上是一套规范。JDK中有这套规范 javax.sql.DataSource (这个数据源规范,这套接口实际上是JDK规定的)

3.我们自己也可以编写数据源组件,只要实现javax.sql.DataSource接口就行了,实现接口当中所有的方法,这样就有了自己的数据源

比如你可以写一个属于自己的数据库连接池(数据库连接池是提供链接对象的,所有的数据库据连接池就是一个数据库 )

4.常见的数据源有那些呢【常见的数据库连接池有哪些?】

阿里巴巴的德鲁伊连接池 druid

c3p0 dbcp

<dataSource type="指定数据源的类型就是指定使用那个数据库连接池...">

5.type用来指定数据源的类型,就是指定具体使用什么方式来获取Connection对象,

type有三个值可选,必须三选一 UNPOOLED|POOLED|JNDI

UNPOOLED:不使用数据库连接池技术。每一次请求过来之后,都是创建新的Connection对象

POOLED:使用mybatis自己实现的数据库连接池

JNDI:集成其他第三方的数据库连接池 实际上是一套规范。谁实现了这套规范?大部分web容器都实现了这套规范

例如:tomcat jetty websphere这些服务器都实现了规范

JNDI是:java命名目录接口 tomcat服务器实现了这一规范

-->

<dataSource type="POOLED">

<!--设置连接数据库的驱动-->

<property name="driver" value="${driver}"/>

<!--设置连接数据库的url-->

<property name="url" value="${url1}"/>

<!--设置连接数据库的用户名-->

<property name="username" value="${username}"/>

<!--设置连接数据库的密码-->

<property name="password" value="${password}"/>

</dataSource>

</environment>

</environments>

<!--引入映射文件-->

<mappers>

<!--mapper resource="UserMapper.xml"/-->

<!--以后凡是遇到resource这个单词,大部分情况下,这种加载资源就是从类的根目录下开始加载的。-->

<mapper resource="CarMapper.xml"/>

<!--url 从绝对路径当中加载资源 语法格式<mapper url="file///:d/CarMapper.xml"/> 不建议-->

</mappers>

</configuration>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值