当前位置: 首页 > 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标签,点击后会出现这个界面

ace28b767409487285706e596368fcc3.png

 这个面板就是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标签中写入环境配置

<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/76391.html

相关文章:

  • react 中 useCallback Hook 作用
  • Python爬虫----python爬虫基础
  • Python 正则表达式的一些介绍和使用方法说明(数字、字母和数字、电子邮件地址、网址、电话号码(简单)、IPv4 )
  • JS 实现游戏流畅移动与按键立即响应
  • Mysql 5.7.6以上版本怎样关闭GTID(由GTID改为基于file,position方式)
  • 开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序
  • docker busybox作为initContainers
  • 系统架构设计师:软件架构的演化和维护
  • 解决laravel框架生成的pdf过大的问题
  • Linux应用层学习——Day2(文件IO)
  • centos7安装Chrome使用selenium-wire
  • STM32单片机CAN总线汽车线路通断检测
  • uniapp 实现 ble蓝牙同时连接多台蓝牙设备,支持app、苹果(ios)和安卓手机,以及ios连接蓝牙后的一些坑
  • 【linux】进程等待与进程替换
  • Pytest-Bdd-Playwright 系列教程(9):datatable 参数的使用
  • vue3:computed
  • 我谈二值形态学基本运算——腐蚀、膨胀、开运算、闭运算
  • web安全漏洞之ssrf入门
  • 优化C++设计模式:用模板代替虚函数与多态机制
  • 二分搜索的三种方法
  • 正则表达式(补充)
  • vue3: ref, reactive, readonly, shallowReactive
  • uniapp: 微信小程序包体积超过2M的优化方法
  • Vue和Vue-Element-Admin(十三):基于vue2比较学习vue3
  • 【AIGC】如何通过ChatGPT提示词Prompt定制个性学习计划
  • vue3: toRef, reactive, toRefs, toRaw