MyBatis框架连接数据库-初级

news2024/11/17 1:32:59

MyBatis 的主要功能是帮助持久层管理数据库,接下来我们利用 MyBatis 连接一下我们的数据库,实现入门程序

前期准备

使用环境:

  • jdk 17

  • maven 3.6.1

  • mybatis 3.5.10

  • mysql 8.0.31

  • idea 2021.1

需要准备:

  • 一个 Maven 工程模块

  • 一个可以访问的数据库

实现功能:

向数据库中的一张表中插入一条记录,这是处理前的数据库表

第一步,在 Maven 中引入依赖

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.10</version>
        </dependency>
    </dependencies>

添加这两个依赖即可,一个是 JDBC 的,一个是 mybatis 的。若idea下载依赖失败,可以手动下载 jar 包后添加到自己设置的本地仓库路径中,然后再点击设置中的 File -> Inv… Cache… 清空缓存后重启 idea

第二步,在 Mapper.xml 文件中编写 sql 语句

在 resource 目录下创建 **Mapper.xml 文件,一个表对应一个 Mapper.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="text">
<!--    在这里写sql语句-->
    <select id="insert">
        insert into t_birthday values("mybatis",5,"3-5-10")
    </select>
</mapper>

第三步,在 mybatis-config.xml 中申明数据库

在 resource 目录下创建 mybatis-config.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/learnbase"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        这里关联 Mapper.xml-->
        <mapper resource="birthdayMapper.xml"/>
    </mappers>
</configuration>

这里的数据库配置信息写自己本地的数据库配置

第四步,通过 mybatis 对象执行 sql

public class Main {
    public static void main(String[] args) throws Exception{
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder1 = new SqlSessionFactoryBuilder();
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory build = sqlSessionFactoryBuilder1.build(is);
        SqlSession sqlSession = build.openSession();
        sqlSession.insert("insert");
        sqlSession.commit();
    }
}

当前目录结构:

执行后数据库查询结果:


`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049547.html

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

相关文章

uniapp-部分文件中文乱码

一、问题 在开发时遇到&#xff0c;部分页面的中文显示乱码&#xff0c;如图 搜索了一下解决方法&#xff0c;这里记录一下 二、问题原因&#xff1a; 页面的编码格式不是 utf-8 造成的 三、解决方法 打开出现乱码页面选择编译器左上角的文件 > 以指定编码重新打开 选择U…

【存储学习笔记】4:快照(Snapshot)技术的实现方式

1 快照 1.1 动机 在上一篇《备份》里提到&#xff0c;热备份就是在执行操作时&#xff0c;服务器需要正常处理来自用户或应用对数据的更新&#xff0c;这样能够保证数据7*24小时可用&#xff08;在很多服务里这是必要的&#xff09;。 而热备份的困难就是如何保证数据的一致…

判断点B是否在线段AC上?

问题 判断点B是否在线段AC上&#xff1f; 解决方法 1).使用矩阵的秩解决 矩阵的秩代码 #include <iostream> #include <vector> #include <cmath>class Matrix { public:std::vector<std::vector<double>> data;int rows, cols;Matrix(int r,…

电子合同如何在线签?9大协助工具软件

文章介绍了以下几个工具&#xff1a;e签宝、上上签、契约锁、法大大、合同管家、Concord、爱签、微签、PandaDoc。 在选择合适的电子签名工具时&#xff0c;很多企业面临着如何确保合规、提高效率以及优化用户体验的挑战。市场上的众多选项使得决策过程变得更加复杂。但是&…

【Kubernetes】虚拟 IP 与 Service 的代理模式

虚拟 IP 与 Service 的代理模式 1.userspace 代理模式2.iptables 代理模式3.IPVS 代理模式 由于 Service 的默认发布类型是 ClusterlP&#xff0c;因此也可以把 ClusterIP 地址叫作 虚拟 IP 地址。在 Kubernetes 创建 Service 时&#xff0c;每个节点上运行的 kube-proxy 会自动…

百度地图SDK Android版开发 6 显示覆盖物

百度地图SDK Android版开发 6 显示覆盖物 前言地图类中覆盖物的接口覆盖物类Marker示例Polyline示例Polygon示例Arc示例Circle示例Text示例效果图 Marker的更多属性常用属性交互碰撞动画其它属性 折线的更多属性常用属性交互其它 多边形的更多属性常用属性交互其它 Arc的更多属…

keepalive原理详解及应用

目录 一、高可用集群 1.1 什么是keepalived 1.2 什么是VRRP协议 二、Keepalived 部署 2.1 keepalived 简介 2.2 keepalived 框架 2.3 实验环境搭建 2.4 Keepalived 安装 2.5 Keepalived 配置 2.5.1 虚拟路由配置 2.5.2 独立日志 2.5.3 独立子配置文件 三、Keepali…

Unity动画模块 之 3D Rig页签

​本文仅作笔记学习和分享&#xff0c;不用做任何商业用途本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ 1.Rig页签 Rig 选项卡 - Unity 手册&#xff0c;rig是设置骨骼与替身系统的&#xff0c;工作流程如下 Avatar是什么…

【算法】弗洛伊德(Floyd)算法求最短路径

目录 1.弗洛伊德&#xff08;Floyd&#xff09;算法介绍 2.弗洛伊德算法图解分析 2.1思路&#xff1a; 2.2图和矩阵的准备 2.3弗洛伊德算法的步骤&#xff1a; 2.4疑问 3.弗洛伊德算法的代码实现 3.1创建图并显示距离表与前驱表 3.2完整代码 1.弗洛伊德&#xff08;Flo…

数据结构stack (笔记)

文章目录 1. 概念理解易混淆内容 2. 时间复杂度3. 实现方式4. 应用5. 内容出处 1. 概念理解 stack(中文名&#xff1a;堆栈、栈)&#xff1a;虽然它叫堆栈&#xff0c;但是它其实指的是栈&#xff0c;跟堆没啥关系。 栈的特性&#xff1a;先进后出、后进先出(这个过程就…

【STL】红黑树(插入、删除底层实现)

目录 红黑树简介 红黑树框架构建 构造函数 析构函数 四种旋转逻辑&#xff08;左单旋&#xff0c;右单旋&#xff0c;左右双旋&#xff0c;右左双旋&#xff09; 左右双旋与右左双旋 左单旋 右单旋 红黑树的插入 Insert 插入节点的颜色 红黑树插入的三种情况 代码…

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向 task03笔记

Datawhale官方的Task3链接&#xff1a;Task03 往期Task1、Task2链接&#xff1a;Task01&#xff0c; Task02 【学习者手册】&#xff1a;链接直达 【QA文档】&#xff1a;链接直达 【赛事官网】&#xff1a;链接直达 ComfyUI ComfyUI是一个基于深度学习的图像生成软件&…

鸿萌数据恢复服务:SQL Server 中的“PFS 可用空间信息不正确”错误

天津鸿萌科贸发展有限公司从事数据安全服务二十余年&#xff0c;致力于为各领域客户提供专业的数据恢复、数据备份、网络及终端数据安全等解决方案与服务。 同时&#xff0c;鸿萌是国际主流数据恢复软件(Stellar、UFS、R-Studio、ReclaiMe Pro 等)的授权代理商&#xff0c;为专…

【教学类-58-10】黑白三角拼图08(参考图+操作卡+黑白块,适合个别化)

背景需求&#xff1a; 前期做了一套适合集体操作的绘画“黑白三角” 【教学类-58-09】黑白三角拼图07&#xff08;1页3张黑白的白点卡片&#xff0c;一种宫格36张&#xff0c;适合一个班级一次操作&#xff09;-CSDN博客文章浏览阅读1k次&#xff0c;点赞30次&#xff0c;收藏…

面向自动驾驶保证车辆转向稳定性的模型预测控制

摘 要 车辆智能化是当前和未来汽车发展的主要方向和核心技术之一。随着车辆智能化水 平的提高&#xff0c;自动驾驶等级从无自动驾驶向完全自动驾驶提升。在自动驾驶的人机协同控制 和完全自动驾驶阶段&#xff0c;由于人类驾驶员在动态驾驶任务中的参与程度不同&#xff0c;…

23. 机盒通信

1. 概述 耳机和充电盒,采用机盒通信的方式,完成通信和充电。受限于耳机上的触电,机盒通信采用单线模式。 注:耳机只做应答,不主动发起通信 2. 硬件连接 由于bes2700外置SY5501的电源管理芯片,实际上串口通信,通过SY5501进行转发。 充电盒 -> SY5501 -> bes27…

windows安装boost后没有b2.exe(无法执行b2)

原因&#xff1a;如果你是在官网下载的.exe文件进行的boost安装&#xff0c;那么就不需要再执行bootstrap.bat&#xff0c;也因此不会有b2.exe 链接&#xff1a;官方网址下载 通过.exe安装boost并配置环境变量之后就可以直接使用了 如果你仍希望有b2.exe&#xff0c;那么双击执…

2024“钉耙编程”中国大学生算法设计超级联赛(9)hdu7529 树异或价值(树形dp+贪心)

题目 t(t<20)组h里&#xff0c;每次给定一棵n(n<2e5)个点的&#xff0c;点1为根的有根树&#xff0c; 定义树的价值为&#xff0c; 其中&#xff0c;&#xff0c;dep为深度&#xff0c;1号点的深度为0 而a数组待确定&#xff0c;对于所有的种方案&#xff0c;你要使树…

Leetcode每日刷题之118.杨辉三角

1.题目解析 杨辉三角作为一个经典的数学模型&#xff0c;其基本原理相信大家已经耳熟能详&#xff0c;这里主要是在学习了vector之后&#xff0c;对于本题有了新的解法&#xff0c;更加简便。关于vector的基本使用详见 面向对象程序设计(C)之 vector&#xff08;初阶&#xff0…

Selenium + Python 自动化测试17(数据驱动-文本操作)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 之前有一篇我们讨论了使用模块化测试来优化我们的测试脚本&#xff0c;今天我们试着进一步深入学习数据驱动。 本篇文章我们讨论一下数据驱动思想&#xff0c;如何将数据和脚本…