使用单个mybatis框架进行mysql数据库的连接和操作?

news2024/11/19 0:26:38

使用单个mybatis框架进行mysql数据库的操作?

简述

先来说一下数据库连接的演变,刚开始的时候,最原生的连接并操作mysql数据库的办法是使用JDBC技术,这种技术相对来说写的源码比较多,比较繁杂;
后来就出现了JDBCTmplate;
再后来就出现了mybatis框架,mybatis框架进行mysql数据库操作还是比较简便的。

可以去mybatis中文官网看一下最简单的连接示例,地址:https://mybatis.net.cn/getting-started.html

连接并操作mysql数据库只有mybatis框架就可以了吗?

不行。mybatis框架只不过是让操作数据库更加简便了而已,但是它内部并不能提供连接mysql数据库的jar包,如果我们想要连接mysql数据库,必须还要引入mysql驱动包,所以,正常情况下使用mybatis连接并操作数据库,需要两个jar包,如下图:
在这里插入图片描述
jar包依赖代码如下:

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- MySql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

那么接下来就是怎样使用mybatis框架结合mysql驱动去连接并操作mysql数据库了?

首先需要写一个mybatis的配置文件,如下图:
在这里插入图片描述
代码如下:

<?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.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/kml"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/LogScriptMapper.xml"/>
    </mappers>
</configuration>

然后写mapper.xml映射文件,这个文件的作用是定义sql语句,如下图:
在这里插入图片描述
代码如下:

<?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="com.sh.game.mapper.LogScriptMapper">
    <select id="selectById" resultType="com.sh.game.DO.LogScriptDO">
        select * from log_script where id = #{id}
    </select>
</mapper>

当然我们需要在本地mysql数据库里面建立一个数据库,并且在数据库里面建立一张表,这个过程就不演示了,这里看一下表结构,如下图:
在这里插入图片描述

mybatis并不是直接操作sql语句的,虽然我们在mapper.xml映射文件中已经写好了sql语句,但是我们不能直接操作,而是需要写一个与其名字相同的动态代理接口进行操作,如下图:
在这里插入图片描述
里面的每一个方法都对应一个sql语句,想要对数据库进行什么样的sql操作,我们直接调用动态代理接口LogScriptMapper中的方法就行。

然后写一个与数据库对接的DO类,如下图:
在这里插入图片描述
最后,一切写好之后,就要进行最终的测试了,测试如下图:
在这里插入图片描述
代码如下:

/**
 * @author xuan
 * @create 2023/10/19
 */
public class Test01 {
    public static void main(String[] args) throws IOException {
        String rootPathOfMybatisConfig = "config/mybatis.xml";
        InputStream inputStream = Resources.getResourceAsStream(rootPathOfMybatisConfig);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        try (SqlSession session = sqlSessionFactory.openSession()) {
            LogScriptMapper logScriptMapper = session.getMapper(LogScriptMapper.class);
            LogScriptDO logScriptDO = logScriptMapper.selectById(1);
            System.out.println(logScriptDO);
        }
    }
}

看一下输出结果,如下图:
在这里插入图片描述

至此,使用"mysql-connector-java连接数据库驱动和mybatis操作mysql数据库框架" 这两个优秀技术连接并操作数据库就完美成功了。

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

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

相关文章

第十六届中国智慧城市大会 | 国产化三维重建技术服务智慧城市建设

2023年10月13日&#xff0c;由武汉大势智慧科技有限公司、飞燕航空遥感技术有限公司主办的第十六届智慧城市大会-实景三维技术创新与应用论坛在广州成功举办。 来自实景三维、自然资源、数字孪生、AI大数据、航空遥感等多个领域的专家&#xff0c;深度分享各自的智慧城市建设经…

【2023双十一新玩法】如何快速让数据达到预期目的,让销售额提升10倍,客群提升10倍,销量提升10倍

2023年的双十一即将到来&#xff0c;商家们依然在为销售目标而努力&#xff0c;而数据分析就成为了其中不可或缺的一环。大大小小的企业都纷纷采用了数据分析来提高销售效率&#xff0c;而老板们也都习惯了看着大屏幕上的实时数据。 然而&#xff0c;对于员工而言&#xff0c;做…

在线商城系统软件、源码、报价_OctShop

随着互联网、5G、人工智能的快速发展&#xff0c;人们在家购物已经是生活的重要方式。各种在线商城系统的不断涌现&#xff0c;同时&#xff0c;也给传统的企业商家销售带来了不小的压力&#xff0c;那么&#xff0c;如何调整&#xff0c;以适应时代的发展呢&#xff1f;经过不…

把Resources目录标记为Resource Root目录才能找到文件?

把Resources目录标记为Resource Root目录才能找到文件&#xff1f; mybatis配置文件中配置的mapper.xml映射文件找不到&#xff1f;这是为什么呢&#xff1f;因为你当resources目录不是根目录&#xff0c;重新标记成根目录就可以了&#xff0c;如下图&#xff1a;

Java项目-网页聊天程序

目录 项目介绍 项目功能简介 项目创建 用户管理模块 1.数据库设计及代码实现 2.前后端交互接口的设计 3.服务器代码开发 好友管理模块 数据库设计 好友表设计的两个重要问题 设计前后端交互接口 服务器代码 会话管理模块 会话的数据库设计 获取会话信息 约定前后…

VisualStudio 远程Debug

注意&#xff1a;纯靠记性&#xff0c;可能实际有出入。 1.连接本地电脑和远程电脑&#xff0c;我是通过ToDesk软件进行桌面连接的。 2.本地运行的项目&#xff0c;把项目打包后拷贝到远程电脑。 3.打开本地VisualStudio的安装位置&#xff0c;有个文件夹叫Remote Debugger。把…

深入研究Java线程Dump分析:掌握发现和解决多线程问题的关键技巧

1 Thread Dump介绍 1.1 什么是Thread Dump Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力&#xff0c;虽然各个 Java虚拟机打印的thread dump略有不同&#xff0c;但是大多都提供了当前活动线程的快…

“乘风而上,谋远共赢”润和软件HopeStage2023秋季渠道商会议圆满举行 润和软件 润和软件

10月18日&#xff0c;由江苏润和软件股份有限公司&#xff08;以下简称“润和软件”&#xff09;主办的HopeStage2023秋季渠道商会议圆满举行。本次会议以“乘风而上&#xff0c;谋远共赢”为主题&#xff0c;汇聚众多HopeStage渠道商与生态合作伙伴&#xff0c;共谋国产基础软…

怎么把本机设置成代理ip?

代理IP服务能帮助您隐藏您的真实IP&#xff0c;从而保护您的隐私和安全。本文将指导您如何将本机设置为代理IP。代理IP服务能帮助您隐藏您的真实IP&#xff0c;从而保护您的隐私和安全。本文将指导您如何将本机设置为代理IP。设置代理IP可以用于多种用途&#xff0c;比如&#…

进程相关内容(三)

目录 进程优先级 进程饥饿 Linux当中优先级标识符 优先级的修改参数NI 进程最终优先级 修改进程的优先级 操作系统实现优先级的方法 位图 并发的概念 进程切换原理 环境变量 其他环境变量 获得环境变量的方式 getenv系统调用函数 命令行参数 本地变量 export添加环境变量 unset…

修改echarts的tooltip样式 折线图如何配置阴影并实现渐变色和自适应

图片展示 一、引入echarts 这里不用多解释 vue里使用 import echarts from “echarts”; html页面引用js文件或用script标签引用 二、定义一个具有宽高的dom div <div id"echart-broken" style"width:400px;height: 200px;"></div>三、定义…

头歌平台——基于数组的工资处理系统

第1关&#xff1a;数据输入和计算 任务描述 本关任务&#xff1a; 编写函数input_data(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10])&#xff0c;作用为输入职工的代号&#xff0c;岗位工资&#…

LabVIEW应用开发——控件的使用(二)

上篇介绍数值型控件和布尔型控件&#xff0c;这篇介绍字符串、路径控件、下拉框和数组控件。 LabVIEW应用开发——控件的使用&#xff08;一&#xff09; 1、字符串控件 实际应用中&#xff0c;字符串控件的显示很常用的&#xff0c;可用于显示串口信息、通讯交互信息、…

JAVA-记一次BigDecimal,String千分位转换

在显示类上面添加JsonSerialize注解&#xff0c;指定对应的转换格式例如&#xff0c;同理可在属性为BigDecimal的字段上添加注解&#xff0c;指定方法&#xff1a; private String userTypeStr;/*** 交易金额*/JsonSerialize(using StringSerialize.class)private String tran…

零基础制作电子期刊,不用担心不会设计排版

亲爱的朋友们&#xff0c;你是否想制作一本自己的电子期刊&#xff0c;但又担心不会设计排版&#xff1f;别担心&#xff01;今天我将教你如何零基础制作电子期刊&#xff0c;让你轻松上手&#xff01; 首先&#xff0c;你需要选择一个适合你的电子期刊模板。我们可以使用FLBOO…

智慧停车场项目-SpringBoot的Smart-parking

基于SpringBoot的Smart-parking 智慧停车场项目 介绍 基于 SpringBoot Vue 的智能停车场项目 系统首页 作者 如需本项目源代码&#xff0c;可扫码或者VX:zxd1534124905联系作者。 基础环境 JDK1.8、Maven、Mysql、IntelliJ IDEA、payCloud 相关组件 ok-adminvueiViewec…

文件批量管理:轻松复制备份并删除原文件

在日常生活和工作中&#xff0c;我们经常需要处理大量的文件。为了确保文件的安全性和完整性&#xff0c;您需要一种高效的文件批量管理方法。本文将向您介绍如何一一复制备份并删除原文件里的文件&#xff0c;让您的文件管理变得轻松便捷。 首先&#xff0c;我们要进入文件批…

Unity3D 基础——Coroutine 协同程序

Coroutine 称为协同程序或者协程&#xff0c;协同程序可以和主程序并行运行&#xff0c;和多线程有些类似。协同程序可以用来实现让一段程序等待一段时间后继续运行的效果。例如&#xff0c;执行步骤1&#xff0c;等待3秒&#xff1b;执行步骤2&#xff0c;等待某个条件为 true…

Web安全测试详解

前言 随着互联网时代的蓬勃发展&#xff0c;基于Web环境下的应用系统、应用软件也得到了越来越广泛的使用。 目前&#xff0c;很多企业的业务发展都依赖于互联网&#xff0c;比如&#xff0c;网上银行、网络购物、网络游戏等。但&#xff0c;由于很多恶意攻击者想通过截获他人…

狄克斯特拉(Dijkstra) 算法 php实现

《算法图解》中提到的狄克斯特拉算法&#xff0c;用php实现。 一 原理及解释 根据示例图求出起点到终点的最小耗费路径。 因为涉及每条路径的权重&#xff0c;所以这种算法仅适合有向路径。 所谓有向路径&#xff0c;指仅从起点指向终点的路径。 相对的无向路径&#xff0…