当前位置: 首页 > news >正文

[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添加的两项依赖下载成功

f90c4c6754ab4bec92b1bf4ccb789bc3.png

把pom.xml写好以后,我们需要思考涉及到数据库的增删改查工作,我们就需要有对应的数据库和演示用的表才行,作为IDEA来说,它提供了一个便捷的工具可以直接作为MySQL客户端来使用

我们可以看到IDEA的右侧有Database标签,点击后会出现这个界面

 这个面板就是IDEA为我们内置的数据库客户端,我们点击+号,在下拉列表中找到Data Source数据源,右侧找到MySQL

15f0d0c7c60a447eaf5b08a32ba3d54a.png

在弹出的面板中 ,我们可以输入数据库连接的信息,输入用户名,密码等

1c7e99adc1964768be8f0041fc8cfed1.png

点击OK后,在原有的Database 面板中就会出现Localhost这个选项,展开后就发现我们对应的数据库,我们现在需要创建一个全新的数据库以及导入初始化的表

739e83f121bc48b499b96c57eed2bf96.png

 我们右键点击tables, 选择Run SQL Script..(代表运行SQL脚本),然后在我们源代码下找到准备好的sql脚本

14ad349a676b45d296d7c6a77af8e00b.png

运行这条SQL语句,短暂的等待后SQL脚本就被执行成功,同时在原有的数据库tables上增加了一条babytun的数据库,展开以后它有五张表

cf55f7a895f447cfb2bb5dc3f46b3212.png

双击查看t_goods_param表内容23c63ca045df4c6a994483ba38b6bf92.png

加入依赖和JDBC驱动,并且有了可演示的数据表后,我们就可以进入环境配置的阶段。

配置MyBatis

在resources目录下,我们要创建一个新的File文件,文件名命名为mybatis-config.xml

6b2d13bbc9a1426e88e3439575945e55.png

在这个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&amp;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是如何创建的!


http://www.mrgr.cn/news/76429.html

相关文章:

  • AVL树了解并简单实现
  • MTU-内核态(数据链路层或网络接口上能够传输的最大数据包大小)
  • 二叉树遍历的非递归实现和复杂度分析
  • VBA学习笔记:基础知识
  • spi 回环
  • 用 Python 从零开始创建神经网络(六):优化(Optimization)介绍
  • 将已有的MySQL8.0单机架构变成主从复制架构
  • 【AI图像生成网站Golang】项目介绍
  • 2024数证杯电子取证比赛题目(初赛)
  • 1链式有序表的合并
  • 【提高篇】3.4 GPIO(四,工作模式详解 下)
  • [Linux]:Reactor模式
  • 牛客题库 21738 牛牛与数组
  • C语言数据结构与算法--简单实现队列的入队和出队
  • AVL树了解并简单实现
  • Linux网络编程
  • InternVL 多模态模型部署微调实践 | 书生大模型
  • 系统架构师考试18天极限备考复盘(2024年11月)
  • STM32芯片EXIT外部中断的配置与原理以及模板代码(标准库)
  • 邻接多重表、十字链表、边集数组
  • Spring 中的 BeanDefinitionParserDelegate 和 NamespaceHandler
  • 神经网络与Transformer详解
  • 项目配置文件选择(Json,xml,Yaml, INI)
  • 【数据结构与算法】查找
  • Java集合(Collection+Map)
  • LoFTR: Detector-Free Local Feature Matching with Transformers—特征点匹配算法系列