[JAVA]MyBatis环境配置介绍
什么是MyBatis环境配置?
MyBatis是基于JDBC对数据库进行操作,在我们进行数据操作时,我们需要告诉MyBatis我们连接哪个数据库,ip地址,数据库名称,用户名密码等。以此来进行环境配置。
首先,MyBatis使用xml形式来保存了环境配置信息,在本章中描述配置的文件名叫mybatis-config-xml,在核心配置文件中:
- MyBatis采用XML格式配置数据库环境信息
- MyBatis环境配置标签<environment>
- environment包含数据库驱动,URL,用户名和密码
mybatis-config.xml
<!--配置环境,不同的环境不同的id名字>
<environment id="dev">
<!--采用JDBC方式对数据库事务进行commit/rollback-->
<transactionManager type ="JDBC"></transactionManager>
<!--采用连接池方式管理数据库连接-->
<dataSource type ="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db"/>
<property name="usename" value="root"/>
<property name="possword" value="root"/>
</dataSource>
</environment>
通过这样的配置,告诉了MyBatis我们创建了一个环境名为dev,指向了本地3306的db数据库,用户名和密码为root,作为数据库的事务采用JDBC的方式进行提交和回滚,而所有的数据库连接被MyBatis使用数据库连接池进行有效的管理,我们在IDEA中代码演示如何使用此案例
配置MyBatis的前置工作,首先在pom.xml增加依赖
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
</dependencies>
这里有个小问题,作为Maven来说,他的中央仓库是在国外服务器上,有时候下载比较困难,会导致无法正常下载,为了解决这个问题,我们可以在pom.xml中增加repositories仓库和repository标签,将下载的服务器指向国内阿里云镜像上
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
将这个地址 加入以后,我们任何新产生的依赖都默认会从这个镜像仓库优先下载,如果镜像仓库没有的话,才从远程仓库下载,这样极大的提高了我们Maven的下载速度
因为我们用MySQL作为底层的数据库,MySQL的JDBC驱动我们需要对其引入
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
此时查看IDEA左侧目录,可以看到上述pom.xml添加的两项依赖下载成功
把pom.xml写好以后,我们需要思考涉及到数据库的增删改查工作,我们就需要有对应的数据库和演示用的表才行,作为IDEA来说,它提供了一个便捷的工具可以直接作为MySQL客户端来使用
我们可以看到IDEA的右侧有Database标签,点击后会出现这个界面
这个面板就是IDEA为我们内置的数据库客户端,我们点击+号,在下拉列表中找到Data Source数据源,右侧找到MySQL
在弹出的面板中 ,我们可以输入数据库连接的信息,输入用户名,密码等
点击OK后,在原有的Database 面板中就会出现Localhost这个选项,展开后就发现我们对应的数据库,我们现在需要创建一个全新的数据库以及导入初始化的表
我们右键点击tables, 选择Run SQL Script..(代表运行SQL脚本),然后在我们源代码下找到准备好的sql脚本
运行这条SQL语句,短暂的等待后SQL脚本就被执行成功,同时在原有的数据库tables上增加了一条babytun的数据库,展开以后它有五张表
双击查看t_goods_param表内容
加入依赖和JDBC驱动,并且有了可演示的数据表后,我们就可以进入环境配置的阶段。
配置MyBatis
在resources目录下,我们要创建一个新的File文件,文件名命名为mybatis-config.xml
在这个xml文件中,我们首先要增加他的xml声明部分
<?xml version="1.0" encoding="UTF-8" ?>
其次我们要增加mybatis文档约束
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Cogfig 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
在configuration标签中写入环境配置
mybatis-config.xml
<configuration>
//--设置默认指向的数据库
<environments default="dev">
//--配置环境,不同的环境不同的id名字
<environment id="dev">
//采用JDBC方式对数据库的事务进行commit/rollback管理
<transactionManager type="JDBC "></transactionManager>
//采用连接池方式管理数据库连接
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/babytun?useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
</configuration>
以上是Mybatis配置环境的主要方法,另外我们还要学习基于数据库的环境来创建SqlSessionFactory来验证环境配置是否正确。
那什么是SqlSessionFactory?
1.它是MyBatis框架中的一个核心工厂类,主要的作用是用于创建SqlSession对象。就像一个工厂,负责生产出可以用于操作数据库的“工具”(既SqlSession)
2.是MyBatis初始化工作的关键,本质上是加载配置文件来完成对于MyBatis的初始化。比如在MyBatis的配置文件(mybatis-config.xml)中,会定义数据库连接的相关参数(如数据库的URL,用户名,密码,数据库驱动等),还有映射文件(mapper.xml)的位置等信息,SqlSessionFactory会读取这些配置信息,解析它们,并根据这些配置来创建SqlSession对象
3.在我们平时使用时,SqlSessionFactory本质上是加载配置文件来完成对于MyBatis初始化工作,初次以外,数据库表的增删改查相关工作由SqlSession对象来完成
SqlSession对象有哪些特性呢?
1.SqlSession是MyBatis操作数据库的核心对象
在MyBatis框架中,SqlSession处于关键的位置,就像是一个连接MyBatis和数据库操作的桥梁。SqlSession使用JDBC方式与数据库交互
2.JDBC(Java Database Connectivity)是Java语言中用于连接数据库的标准接口。
SqlSession在底层是基于JDBC来实现与数据库的交互的,当我们通过SqlSession执行一个查询操作时,它实际上是在内部构建和执行JDBC的相关语句。比如,SqlSession会根据我们的配置和请求,准备好SQL语句,通过JDBC驱动建立与数据库的连接,将SQL语句发送到数据库服务器,然后获取数据库返回的结果。
3.SqlSession对象提供了数据表CRUD对应方法
CRUD是指数据库操作中的创建(Create),(读取Read),更新(Update)和删除(Delect)操作。
下个文章我们将通过代码演示SqlSessionFactory和SqlSession是如何创建的!