[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.xdnf.cn/news/17271.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Javascirpt时区——脱坑指南

最近业务反馈了一个约课功能的问题&#xff0c;澳大利亚的用户反馈&#xff0c;无法进行选课。排查之后发现是时区不对引起的&#xff0c;由于时区的偏差已经超过时间&#xff0c;导致无法选课。 这里对js中处理时区的问题做一些总结。 时区 时区&#xff08;Time Zone&#xf…

不用来回切换,一个界面管理多个微信

你是不是也有多个微信号需要管理&#xff1f; 是不是也觉得频繁切换账号很麻烦&#xff1f; 是不是也想提升多账号管理的效率&#xff1f; 在工作中&#xff0c;好的辅助工具&#xff0c;能让我们的效率加倍增长&#xff01; 今天&#xff0c; 就给大家分享一个多微管理工具…

每日OJ题_牛客_AB32【模板】哈夫曼编码_C++_Java

目录 牛客_AB32【模板】哈夫曼编码 题目解析 C代码 Java代码 牛客_AB32【模板】哈夫曼编码 【模板】哈夫曼编码_牛客题霸_牛客网 描述&#xff1a; 给出一个有n种字符组成的字符串&#xff0c;其中第ii种字符出现的次数为ai​。请你对该字符串应用哈夫曼编码&#xff0c;…

UDP协议

​ UDP协议 前置知识一、应用层的进程为什么要bind端口号二、如何确定网络中的一个进程三、进程 服务 协议 端口之间的关系四、常见的协议对应的端口五、一些命令六、一个进程能不能绑定多个端口号&#xff0c;一个端口号能不能被多个进程绑定七、对任何一个协议报文的认识 UD…

KkFileView4.1.0部署文档--linux

先看下官方文档&#xff1a;kkFileView - 在线文件预览 环境要求中的JDK8如果没有的&#xff0c;需先安装JDK8&#xff0c;这里不做展示。 第二个office相关环境要求在linux中会自动下载安装&#xff0c;不用管。 1、下载地址 Linux 或 MacOS 版&#xff1a; https://kkfil…

[论文笔记]An LLM Compiler for Parallel Function Calling

引言 今天带来一篇优化函数调用的论文笔记——An LLM Compiler for Parallel Function Calling。 为了简单&#xff0c;下文中以翻译的口吻记录&#xff0c;比如替换"作者"为"我们"。 当前的函数(工具)调用方法通常需要对每个函数进行顺序推理和操作&…

基于JAVA的资源检索系统(源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

展望:多模态融合与marker推断

技术进步使得利用高维、高通量、多尺度的生物医学数据从多个角度研究患者和疾病成为可能。在肿瘤学中&#xff0c;正在生成大量数据&#xff0c;从分子、组织病理学到临床记录。深度学习的引入极大地促进了生物医学数据的分析。然而&#xff0c;大多数方法都侧重于单一模态&…

AI在电商平台中的创新应用:提升销售效率与用户体验的数字化转型

1. 引言 AI技术在电商平台的应用已不仅仅停留在基础的数据分析和自动化推荐上。随着人工智能的迅速发展&#xff0c;越来越多的电商平台开始将AI技术深度融合到用户体验、定价策略、供应链优化、客户服务等核心业务中&#xff0c;从而显著提升运营效率和用户满意度。在这篇文章…

基于Java Springboot餐厅点餐系统(加入商家版)

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA 数据库&#xff1a;MySQL5.7…

NeRF在农业领域的应用-------------(1)

一、Exploring Accurate 3D Phenotyping in Greenhouse through Neural Radiance Fields&#xff08;通过神经辐射场探索温室中精确的三维表型分析&#xff09; 1.摘要 在精准农业中&#xff0c;准确收集植物表型对于优化可持续农业实践至关重要。 在受控实验室环境中进行的传…

pico-sdk(零)

pico-sdk&#xff08;零&#xff09; 项目概述license相关文档 依赖三方库链接 项目概述 Raspberry Pi Pico SDK&#xff08;以下简称 SDK&#xff09;提供了为 RP 系列微控制器设备&#xff08;如 Raspberry Pi Pico 或 Raspberry Pi Pico 2&#xff09;编写 C、C 或汇编语言…

基于java+SpringBoot+Vue的视频网站系统设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

vue注册全局组件,其他地方可以直接方便的调用

文章目录 问题注册全局组件完结 问题 本来我们想使用某个组件&#xff0c;需要在各个地方引入对应的参数&#xff0c;并配置好components内容&#xff0c;才可以使用 但是随着用的越来越多&#xff0c;这种方法变得重复且易出错 注册全局组件 修改main.js文件&#xff0c;放…

javaScript交互补充(元素的三大系列)

1、元素的三大系列 1.1、offset系列 1.1.1、offset初相识 使用offset系列相关属性可以动态的得到该元素的位置&#xff08;偏移&#xff09;、大小等 获得元素距离带有定位祖先元素的位置获得元素自身的大小&#xff08;宽度高度&#xff09;注意&#xff1a;返回的数值都不…

基于SSM的特色美食推荐平台+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户功能模块&#xff1a;管理员&#xff08;用户管理、店铺管理、美食类型、美食收录管理、论坛交流管理等&#xff09;、普通用户&#xff08;登录注册、论坛交流、信息查看、美食收藏、美食资讯等&#xff09;技术栈&#xff1…

【javascript从零单排】变量let、var、const

&#x1f308;"It always seems impossible until it’s done." — Nelson Mandela 种一棵树最好是机会是十年前&#xff0c;其次是现在。 &#x1f4d7;概念 在 JavaScript 中&#xff0c;变量是用于存储数据值的容器。可以使用变量来保存不同类型的数据&#xff0…

Marp for VScode插件 PPT无法预览的问题

优质好文&#xff1a;https://blog.csdn.net/lyuhaochina/article/details/141527208 这是因为很多人在VScode中安装markdown插件时都会安装插件Markdown Preview Enhanced,这个插件会和Marp插件的预览功能产生冲突,导致用Marp插件做的PPT无法预览 找到设置选项Markdown-previe…

响应时间指标的探索

响应时间指标的探索 最近又看到响应时间的一些讨论&#xff0c;就顺着这个响应时间的一些资料整理了如下内容 1968年 目前能够追溯的最早定义响应时间的文章应该是Rober B.Miller于1968年在AFIPS 68 (Fall, part I): Proceedings of the December 9-11, 1968, fall joint comp…

VRT: 关于视频修复的模型

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月15日14点34分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…