我们这一篇主要介绍 MyBatis 的核心配置,大家可以一边看官方文档,一边看博客,当然,不管是谁写博客,都是会根据官网的内容去介绍,所以说,看啥不如看官网解释~~~
MyBatis 核心配置链接:https://mybatis.org/mybatis-3/zh/configuration.html
然后我们再上一个图
我们主要也是根据 MyBatis 官网的内容去说,当然,我们主要说一些常用的,不常用的大家可以自己去官网进行看
1. configuration
首先是 configuration,这个是 MyBatis 所有配置的最主要的一个配置,因为我们其他的配置都是需要写在这个标签里面的。
2. properties
这个一般我们用来配置数据源,当然,我们并没有用这个配置,我们是将数据源直接配置到了 environments 中
我们可以修改一下,将这个配置拿出来,配置到别的地方,然后做引入
首先创建一个 config.properties 文件,然后我们将我们的数据库配置拿出来,配置到 这个文件中
这里注意一下,我们需要将这个 & 改变回去,不要写成了 &
然后我们在 mybatis-config.xml 中将这个 config.properties 引入进去
这里我们只要用 ${} 进行引入就好,里面具体的值就是 config.properties 等号左面的值
然后我们再运行上一篇博客写的那个 add 方法,看看能否运行
是 OK 的
3. typeAliases
这个是类型别名,它仅用于 XML 配置,意在降低冗余的全限定类名书写。
当然啊,我们这么配置对是对,但是,有一个很严重的问题,如果我们的实体类太多,我们就需要配置好多好多的这个 typeAlias
为了应对这样的问题,MyBatis 给我们提供了一个很棒的解决方案
一种是使用 package,我们可以直接配置成扫描某个包下面所有的实体,这样我们只需要以后将实体类创建到这个包下面就好
二呢,是使用注解,当然,这个一般我们不怎么用,因为上面配置 package 更方便。
我们来修改一下我们自己的 Demo,然后运行一下
同样,也是 OK 的
4. environments
这个是环境配置,环境是指我们程序所运行的环境,好比有开发环境、测试环境、生产环境等等
这里我们可以修改 environments 的 default,这个 default 对应的是 下面 environment 的 id。我们现在使用的是 development 开发环境
我们可以自己再配置其他的环境,我们再添加一个 测试环境
这样,我们就是使用成 test 环境了。
5. transactionManager
这个是 MyBatis 的事务管理器。
MyBatis 中提供了两种事务管理模式,我们可以看官方文档:
我们自己的项目中使用的类型是 JDBC 。
JDBC 型是让数据库本身去做提交还有回滚
而这个 MANAGED 是让容器去做,好比 JBoss、WebLogic 服务器,当然类似这样的服务器都是收费的,我们用的 Tomcat 虽说是免费的,但是不支持。
所以,我们大部分情况都是使用的 JDBC。
6. dataSource
这个就是数据源配置,当然啦,没有啥好说的,我们主要说一下它里面的这个 type 属性
这个 type 有三种,UNPOOLED、POOLED、JNDI
UNPOOLED 是指数据源的实现会每次请求时打开和关闭连接。也就是说没有数据库连接池,这个也就导致性能会跟不上,小的项目,或者是 demo 可以用用,但是,项目一旦有点并发,这个就可能招架不住了。
POOLED 是支持数据库连接池的。有了数据库连接池,我们可以对于并发量稍微高一点的系统或者项目,都可以按需配置。我们以后会常用这样的模式,后期我们也会引入数据库连接池的。
JNDI 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。总的来说,这个也同样需要 JBoss、或者 WebLogic 这样的商业服务器支持才能发挥作用。
当然啦,总的来说,我们主要记住 POOLED 即可,其他的了解,因为用不到 ~~
7. mappers
这个是 mybatis 的核心,主要是用来配置映射的,将我们的所有接口映射文件配置到 mybatis 中
同样,我们一个项目肯定不止一个 xxxMapper.xml 文件,所以用这样的配置是行不通的,我们可以看官网提供的另外的方式
然后我们来修改一下我们的项目
这样我们以后只要将这些 xml 写在 com.lemon1234.mappers 下面即可
配置文件中我们常用的只有这些,其他的用到的时候我们再来介绍,先熟悉这些
到这里为止,我们的 MyBatis 核心配置介绍 就完成了,东西有点多,大家好好消化一下。
大家可以自己好好查查看,有不懂的可以联系我 QQ:2100363119
欢迎大家访问我的网站:https://www.lemon1234.com
可以的话关注一下我的公众号,就在我网站,每天都有更新~~~,无限资源畅游 Java,感谢~