【Java - 框架 - Mybatis】(01) 普通Java项目使用Mybatis操作Mysql - 快速上手

普通Java项目使用Mybatis操作Mysql - 快速上手

说明

  • 通过软件"IntelliJ IDEA"创建"Maven"项目完成;
  • 通过"Mybatis"框架操纵"MySQL"数据库完成操作;

环境

  • Java版本"1.8.0_202"
  • Windows 11 专业版_22621.2428
  • IntelliJ IDEA 2021.1.3(Ultimate Edition)

依赖

  • "junit"版本"4.13.2"
  • "mybatis"版本"3.5.6"
  • "mysql-connector-java"版本"8.0.28"

步骤

步骤A

说明

  • 创建一个"Maven"项目;

图片

(1)

(2)

步骤B

说明

  • 添加相关依赖;

代码

(1)

【说明】

  • 所有依赖项;
  • 直接CV即可;
  • 文件pom.xml
<dependencies><!-- "JUnit"依赖项 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!-- "Mybatis"依赖项 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><!-- "Mysql"依赖项 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency></dependencies>

(2)

【说明】

  • "JUnit"依赖项;
<!-- "JUnit"依赖项 -->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>
</dependency>

(3)

【说明】

  • "Mybatis"依赖项;
<!-- "Mybatis"依赖项 -->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version>
</dependency>

(4)

【说明】

  • "MySQL"依赖项;
<!-- "Mysql"依赖项 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version>
</dependency>

图片

步骤C

说明

  • 创建演示数据库;

图片

代码

【说明】

  • 演示数据库的建库语句;
-- --------------------------------------------------------
-- 主机:                           127.0.0.1
-- 服务器版本:                        10.11.2-MariaDB - mariadb.org binary distribution
-- 服务器操作系统:                      Win64
-- HeidiSQL 版本:                  11.3.0.6295
-- --------------------------------------------------------/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;-- 导出 mybatis_demo 的数据库结构
DROP DATABASE IF EXISTS `mybatis_demo`;
CREATE DATABASE IF NOT EXISTS `mybatis_demo` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
USE `mybatis_demo`;-- 导出  表 mybatis_demo.a 结构
DROP TABLE IF EXISTS `a`;
CREATE TABLE IF NOT EXISTS `a` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(50) DEFAULT NULL COMMENT '用户名',`password` varchar(50) DEFAULT NULL COMMENT '密码',`nick` varchar(50) DEFAULT NULL COMMENT '昵称',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='"Mybatis"测试表';-- 正在导出表  mybatis_demo.a 的数据:~0 rows (大约)
DELETE FROM `a`;
/*!40000 ALTER TABLE `a` DISABLE KEYS */;
INSERT INTO `a` (`id`, `username`, `password`, `nick`) VALUES(1, 'admin', '1234567890', '管理员');
/*!40000 ALTER TABLE `a` ENABLE KEYS */;/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;

步骤D

说明

  • 创建"Mybatis"配置文件;

代码

【说明】

  • "Mybatis"配置文件;
  • 文件mybatis-config.xml
  • 创建文件后直接"CV"即可;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//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"><!-- 设置驱动名称 --><!-- "${driver}":具体的驱动名称(如:com.mysql.cj.jdbc.Driver)--><property name="driver" value="${driver}"/><!-- 设置连接地址 --><!-- "${url}":具体的连接地址(如:jdbc:mysql://localhost:3306/数据库名?useSSL=false)--><property name="url" value="${url}"/><!-- 设置数据库用户 --><!-- "${username}":具体的数据库用户 --><property name="username" value="${username}"/><!-- 设置数据库密码 --><!-- "${password}":具体的数据库密码 --><property name="password" value="${password}"/></dataSource></environment></environments><!-- 配置用于引入映射文件 --><mappers><!-- Mapper代理-包扫描 --><package name="mapper"/></mappers>
</configuration>

图片

步骤E

说明

  • 创建"Mybatis"映射文件;

代码

【说明】

  • "Mybatis"映射文件;
  • 文件DemoMapper.xml
  • 创建后直接"CV"即可;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- "namespace":即空间命名名称,一般绑定对应接口的全限定路径 -->
<mapper namespace="xxxx"></mapper>

图片

(1)

(2)

步骤F

说明

  • 添加基础代码;

代码

【说明】

  • 基础代码;
  • 创建文件后直接"CV"即可;
  • 文件DemoMapperTests.java
import mapper.DemoMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.io.IOException;
import java.io.InputStream;public class DemoMapperTests {DemoMapper mapper;SqlSession sqlSession;@Beforepublic void start() throws IOException {System.out.println("测试类里的某个测试方法开始执行了。。。\n");// 定位核心配置文件String resource = "mybatis-config.xml";// 加载核心配置文件InputStream is = Resources.getResourceAsStream(resource);// 获取SqlSessionFactoryBuilderSqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();// 获取SqlSessionFactorySqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);// 获取SqlSessionsqlSession = sqlSessionFactory.openSession();// 获取Mapper接口对象mapper = sqlSession.getMapper(DemoMapper.class);}@Afterpublic void close() {System.out.println("\n测试类里的某个测试方法执行完毕了。。。");// 进行事务的提交操作sqlSession.commit();// 断开程序与数据库的链接,释放资源;sqlSession.close();}/*** 测试代码*/@Testpublic void test() {System.out.println("测试方法开始执行!");}}

图片

步骤G

说明

  • 进行操作演示;

代码

(1)

【说明】

  • 文件DemoMapper.java
/*** 统计表中的记录总数*/
int count();

(2)

【说明】

  • 文件DemoMapper.xml
<!--int count();-->
<select id="count" resultType="java.lang.Integer">SELECTCOUNT(*)FROMa
</select>

(3)

【说明】

  • 文件DemoMapperTests.java
/*** 测试代码*/
@Test
public void test() {System.out.println("测试方法开始执行!");System.out.println(mapper.count());
}

图片

(1)

(2)

后记

  • 此文所用项目代码文件,需要的请下载;

  • 具体操作代码见文章 :【Mybatis】(02);

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的商品识别系统(深度学习+UI界面+训练数据集+Python代码)

摘要&#xff1a;在零售行业的技术进步中&#xff0c;开发商品识别系统扮演着关键角色。本博文详细阐述了如何利用深度学习技术搭建一个高效的商品识别系统&#xff0c;并分享了一套完整的代码实现。系统采用了性能强劲的YOLOv8算法&#xff0c;同时对YOLOv7、YOLOv6、YOLOv5等…

Docker部署系列之Docker Compose安装Redis三主三从集群

在日常开发或者编程当中&#xff0c;经常需要用到redis集群&#xff0c;若是按照传统的方式&#xff0c;一个机器一个机器搭建&#xff0c;难免过于繁琐&#xff0c;故而可以通过dock er-compose编排方式&#xff0c;快速搭建。我在搭建过程当中&#xff0c;将操作记录下来&…

TS271IDT运算放大器芯片中文资料PDF数据手册引脚图图片参数价格功能

产品描述&#xff1a; TS271 是一款低成本、低功耗的单通道运算放大器&#xff0c;设计用于采用单电源或双电源供电。该运算放大器采用意法半导体硅栅CMOS工艺&#xff0c;具有出色的消耗-速度比。该放大器非常适合低功耗应用。 电源可通过引脚 8 和 4 之间连接的电阻器进行外…

如何只用pycharm创建venv虚拟环境

如何只用pycharm创建venv虚拟环境 网上貌似没有好的博客讲解&#xff0c;我之前也一直在这环境搭建上疑惑。不过照着我这博客来&#xff0c;应该没问题了。 前言 如图所示&#xff0c;我新建了一个空白文件夹。 接下来点击终端&#xff08;AltF12&#xff09; 如果发现开头…

Java异常分类(二)

RuntimeException 运行时异常&#xff1a; 派生于 RuntimeException 的异常&#xff0c;如被 0 除、数组下标越界、空指针等&#xff0c;其产生比较频繁&#xff0c;处理麻烦&#xff0c;如果显式的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将它们交…

Docker 笔记(四)--网络

这篇笔记写的时间很久&#xff0c;记录了Docker 的网络知识&#xff0c;概念从浅入深&#xff0c;对docker网络有一个大体介绍&#xff0c;对部分细节做了详细解析&#xff0c;但涉及的知识点太多&#xff0c;未能在一篇中全部罗列&#xff0c;后续逐步完善吧。 目录 参考环境网…

算法归纳【数组篇】

目录 二分查找1. 前提条件&#xff1a;2. 二分查找边界 2.移除元素有序数组的平方长度最小的子数组59.螺旋矩阵II54. 螺旋矩阵 二分查找 参考链接 https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html#%E6%80%9D%E8%B7%AF 1. 前提条件&#xff1a; 数…

C#类的应用实例1-石头剪刀布

C#类的应用非常广泛&#xff0c;可以用于各种软件开发项目&#xff0c;包括但不限于以下几个方面&#xff1a; 桌面应用程序开发&#xff1a;C#类可用于开发Windows桌面应用程序&#xff0c;如图形用户界面&#xff08;GUI&#xff09;应用程序、数据库应用程序等。通过定义类和…

蓝桥杯 填空 卡片

蓝桥杯 填空题 卡片 解题思路&#xff1a; 我们只需要消耗完卡片的个数即可。 代码示例&#xff1a; #include<bits/stdc.h> using namespace std; int a[10]; bool isEnd(){for(int i0;i<10;i){if(a[i]-1)return false;}return true; } bool getN(int x){while(x){i…

基础小白十天学会linux------>linux系统的介绍,应用,以及快速上手

什么是操作系统&#xff1f; 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff09;是管理计算机硬件与软件资源的系统软件&#xff0c;是计算机系统的核心与基石。它负责为用户和其他软件提供交互的界面&#xff0c;同时管理系统资源&#xff0c;如CPU时间、内…

VMwareWorkstation16与Ubuntu 18.04.6 LTS下载与安装

一、准备工作 VMware Workstation Pro 16官网下载&#xff1a; https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0。下载需要账号登录。 二、安装 双击exe文件稍等一会会弹出安装程序&#xff0c;如图 这…

嵌入式驱动学习第三周——字符设备驱动关键结构体

前言 linux内核将字符设备抽象成一个具体的数据结构&#xff0c;可以理解为字符设备对象&#xff0c;这篇博客就来讲解一下字符设备驱动的关键结构体。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以…