[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 configurationPUBLIC "-//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是如何创建的!