2.1.Mybatis-Mybatis概述

SpringBoot3整合Mybatis Plus3.5.3 mybatis plus已经支持springboot3.x了,官方目前最新版的是3.5.3,最新版的配置更简单了一些,闲话不说,直接开干。 阅读详情

一.概述:

二.准备工作:

(有数据库的全类名,url,name,password-->数据库连接的四要素)

Mybatis开发中,只需要定义Mapper接口即可,不需要定义实现类,因为程序在运行时框架底层会自动生成这个接口的实现类对象。

三.idea操作:

MySQL中上述图片当中的类名是固定的。

jdbc:mysql:// -->这是固定格式,是协议部分

localhost:3306 -->指定了连接哪一个数据库服务器,localhost代表本机,3306代表数据库服务器的端口号

jdbc:mysql://localhost:3306后还可以加如jdbc:mysql://localhost:3306/mybatis(加了个/mybatis),代表连接了这个数据库

服务器里的哪一个数据库(mybatis是数据库的名字)

三.开始操作:(共有两个文件:itheima_web_project和itheima_mysql_project_mybatis)

1.创建springboot工程:

a.创建模块:


b.输入有关信息:

注:上述图片的服务器URL默认为:

https://start.spring.io

本例中需要改为:

https://start.aliyun.com

如下:


c.导入驱动包:

只需要上述图片的两个依赖即可。

注:由于版本问题,Spring Boot在3.3.0(包括)以上的版本不支持驱动包MyBatis Framework。

若用驱动包MyBatis Framework,需要Spring Boot在3.3.0以下的版本。


d.可能遇到的问题:如忽略了pom.xml文件:

解决方案如下:

之后等待插件安装完即可


e.最终效果:


补充:


2.创建数据库表:

-- auto-generated definition
create table user
(
    id     int auto_increment comment 'id'
        primary key,
    name   varchar(10)      not null comment '姓名',
    age    tinyint unsigned not null comment '年龄',
    gender tinyint unsigned not null comment '性别:1.男 , 2.女',
    phone  varchar(11)      not null comment '电话号码',
    constraint id
        unique (id),
    constraint phone
        unique (phone)
)
    comment '用户';

表格输入数据结果:


3.创建实体类:-->用来封装用户信息,而且封装的信息与创建的表格的字段信息一一对应

在itheima_web_project的com.itheima这个软件包下创建类:

注:实体类必须是public型,不然之后访问数据库后打印的是地址值

package com.itheima.pojo;
​
public class User {  //实体类必须是public型
    //在实体类中,定义属性值的类型建议用包装类型
    private Integer id;
    /*id在数据库中为int型,java中可用包装类Integer*/
    private String name;
    private Short age;
    private Short gender;//性别
    /*数据库中gender为tinyint型,java中可用short型->包装类为Short*/
    private String phone;//手机号
    /*数据库中varchar型在java中用String型*/
​
​
    //构造方法
    public User() {
    }
​
    public User(Integer id, String name, Short age, Short gender, String phone) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.phone = phone;
    }
​
​
    //get/set
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
​
​
​
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
​
​
    public Short getAge() {
        return age;
    }
    public void setAge(Short age) {
        this.age = age;
    }
​
​
    public Short getGender() {
        return gender;
    }
    public void setGender(Short gender) {
        this.gender = gender;
    }
​
​
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
​
​
    //重写顶级父类Object的toString方法
    @Override
    public String toString() {
        return "User{id = " + id + ", name = " + name + ", age = " + age + ", gender = " + gender + ", phone = " + phone + "}";
    }
​
​
​
}

​

4.引入Mybatis的相关依赖即驱动包-->之前已经引入


5.配置Mybatis(数据库连接信息):

要在application.properties这个绿色标志下配置:

四要素:语句后面都没有分号

a.驱动类名称:
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


b.数据库连接的url: url需要手动书写
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
   #jdbc:mysql:是mybatis连接mysql的配置,是固定格式
   #//localhost代表所在数据库的位置;3306为要连接的数据库的端口号-->创建数据库时会显示;mybatis为要连接的数据库的名称


c.连接数据库的用户名:用户名需要手动书写自己创建的数据库的名称
#连接数据库的用户名
spring.datasource.username=root


d.连接数据库的密码:密码需要手动书写自己设置的数据库密码
#连接数据库的密码
spring.datasource.password=1234


整体效果:

(第21行打错了,只有一个=号)

修改后的效果:


6.编写SQL语句(注解/XML):-->需要定义一个UserMapper持久层接口

(第21行打错了,只有一个=号)

在com.itheima包下定义mapper.UserMapper接口,该接口中需要注解@Mapper

加上@Mapper注解,之后在运行时框架会自动生成该接口的实现类对象(代理对象),并且将该对象交给IOC容器管理

定义的查询全部用户信息的方法,其中这个返回值类型List的泛型要用User型,*但别手动打,要用下拉框给出的提示的User,*

会自动给出导包

但本题实体类应该是public型,正确的内容如下:

下面的list方法里的List泛型是User,写错了

@Select()注解代表查询操作,括号内添要查询的内容(字符串型),本案例要查询表格即添"select * from user"

-->>@Select("select * from user")

最终效果:

代码:

package com.itheima.mapper;
​
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import com.itheima.pojo.User;
​
import java.util.List;
​
​
@Mapper
//加上@Mapper注解,之后在运行时会自动生成该接口的实现类对象(代理对象),并且将该对象交给IOC容器管理
public interface UserMapper {
​
    //定义一个方法,用于查询全部用户信息
    //由于一个用户信息可能有很多,而且一个用户就会封装成一个用户对象,此时有很多对象-->封装在List集合中即可
    //由此,集合的泛型为User
​
    @Select("select * from user")  // @Select()注解代表查询操作
    public List<User> list();
}

​

7.测试:在test包下

创建SpringBoot工程后自带的测试类SpringbootMybatisQuickstartApplicationTests

代码如下:

package com.itheima;
​
import com.itheima.mapper.UserMapper;
import com.itheima.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
​
import java.util.List;
​
@SpringBootTest  //@SpringBootTest注解代表springboot整合单元测试的注解
class SpringbootMybatisQuickstartApplicationTests {
​
    /*@Test
    void contextLoads() {
    }*/
​
    @Autowired //@Autowired注解用来完成依赖注入
    private UserMapper userMapper;
​
    @Test
    public void testListUser(){
        //调用UserMapper的list方法来查询全部用户信息
        /* 但UserMapper为接口,不能实例化
           但有了@Mapper注解,运行时会自动生成该接口的实现类对象(代理对象),并且将该对象交给IOC容器管理
           已经成为IOC容器里的bean了
           之后要在单元测试中用到这个bean对象,可以通过依赖注入的形式,将这个bean对象注入进来
           因此,在测试方法上声明一个UserMapper类型的对象,
         */
​
        //调用list方法
        List<User> userList=userMapper.list();
​
        for (User user : userList) {
            System.out.println(user);//打印user,不是userList。因为此时赋给user
        }
    }
​
    /* 注:由于该单元测试是SpringBoot整合的单元测试,上面有一个注解@SpringBootTest,一旦加了这个注解,
          其中的单元测试方法(@Test注解下)在运行时会自动加载整个SpringBoot的环境,并且创建SpringBoot的IOC容器,
          IOC容器创建好后,通过依赖注入(@Autowired注解下)的形式从IOC容器中获取UserMapper这个类型的bean对象,
          之后即可调用bean对象的list方法来查询全部用户信息
     */
}

​

8.运行结果:


四.包的结构:

springboot 2.1.2 整合mybatis 一、开发环境与工具 1、springboot 2.1.2 版本、jdk 1.8 2、IDEA 2018.3 二、项目搭建 1、使用spring initlializer创建工程 2、在pom.xml引入jar依赖 3、在application.yml进行项目配置 4、编码进行测试 三、工程部分结构展示 1、pom.xml &lt;?xml version="1.0" enc... 阅读详情

相关推荐

MyBatis研习录(01)——MyBatis概述与入门

简单地说,ORM模型就是数据库的表与简单Java对象(Plain Ordinary Java Object,简称 POJO)的对象关系映射模型(Object Relational Mapping 简称ORM)。它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中,其工作原理如下图所示:

谷哥的小弟 1万+

mybatis3.2.0与mybatis3.3.0传参异常

[size=small]项目使用的是SpringMvc3.2.2+Mybatis3.2.0+SQLServer,经常会有根据某个主键字段查询数据,通常都是Integer类型,写sql的时候一般会类似这样:[/size] [code="java"] SELECT pid , name , remar...

雪海 453

Spring Boot与MyBatis集成实践指南:spring-boot-starter-mybatis-spring-boot-2.2.1解析

本文还有配套的精品资源,点击获取 简介:本文详细讲解了如何在Spring Boot项目中集成MyBatis,以spring-boot-starter-mybatis-spring-boot-2.2.1版本为例。介绍了Spring Boot Starter MyBatis的用途、Spring Boot 2.2.1版本的特性、集成MyBatis的详细步骤,并讨论了使用注解配置M...

weixin_42143092的博客 1442

Springboot3无法适配mybatis plus

springboot3不适配mybatis plus,报错:java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String

m0_60043298的博客 1376

数学建模国赛B题保姆级攻略:从选题到代码实现的完整流程(2024最新版)

本文提供2024年数学建模国赛B题的保姆级实战攻略,涵盖从赛题解构、模型构建到算法实现与论文撰写的完整流程。文章详细解析了如何快速抓住问题核心、建立数学模型、进行算法求解与结果可视化,并分享了高效团队协作与专业论文写作的关键技巧,助力参赛者系统性地完成从选题到代码实现的全过程。

weixin_29089057的博客 141

Device Mapper 代码分析

Device Mapper(DM)是Linux 2.6全面引入的块设备新构架,通过DM可以灵活地管理系统中所有的真实或虚拟的块设备。DM以块设备的形式注册到Linux内核中,凡是挂载(或者说“映射”)于DM结构下的块设备,不管他们是如何组织,如何通讯,在Linux看来都是一个完整的DM块设备。因此DM让不同组织形式的块设备或者块设备集群在Linux内核面前有一个完整统一的DM表示。一、DM

SonicLing的专栏 1万+

SpringBoot3整合Mybaits遇到的问题

改成3.1.1版本就好了。

s2768385055的博客 653

DataGridView 右键菜单复制(公共)

dataGridView1.CellMouseClick += new DataGridViewCellMouseEventHandler( (sender1, e1) => { if (e1.Button == MouseButtons.Right) {

沁心渃水 2832

spring boot 3.3.0版本和mybatis plus 3.5.6冲突

今天踩了一个大坑,今天创建一个版本为3.3.0spring boot项目,使用mybatis plus 版本为 3.5.6,写完实体类,项目都是可以启动的。后来实验多次发现,更换mybatis plus版本,更换其它依赖版本都没有任何用,最后发现更换spring boot 3X版本以后的版本就可以了,运行了。第一:更换spring boot 3X版本以后的版本。第二:更换mybatis plus 依赖。我踩过的坑,希望可以帮助你。

m0_68473630的博客 1813

Arduino平台软硬件原理及使用——Arduino Uno板卡的使用

Arduino Uno板卡的基本使用

洪博hopes的博客 4175

Codesys 3.5报警功能配置保姆级教程:从变量定义到确认方式(含REF/ACK详解)

本文详细介绍了Codesys 3.5报警功能的配置流程,从变量定义到确认方式的选择,特别解析了REF和ACK两种确认方式的底层逻辑。通过实战案例和代码示例,帮助工程师快速掌握报警系统的搭建与调试技巧,提升工业自动化项目的可靠性。

weixin_29245767的博客 458

SSM从入门到实战:2.1 MyBatis框架概述与环境搭建

本文介绍了MyBatis框架的基础知识,包括其概念、特点、核心组件以及与其他ORM框架的对比。文章详细讲解了MyBatis的工作流程、环境搭建方法,并提供了Maven依赖配置示例,帮助开发者快速入门MyBatis开发。通过本文,读者可以掌握MyBatis的基本使用,为后续深入学习打下基础。

2325

告别重复劳动:用Python+pywinauto打造你的微信个人助理(自动回复/收款/定时发消息)

本文介绍如何利用Python和pywinauto库构建微信个人助手,实现自动回复、定时消息、智能收款等功能,告别重复劳动。通过详细的代码示例和配置指南,帮助开发者快速掌握微信自动化技术,提升工作效率。

weixin_42568801的博客 332

Java_web开发实战_1概述

前言 由于单纯的java开发已经基本没有任何的实用价值,所以之前的swing就不再更新了。初学java的朋友可以先使用java+mysql的模式开发出一个桌面的小应用。 通过学习java web开发(虽然课程叫做javaee),发现其实并没有想象中的那么难。所以放心大胆的去做吧。 在接触过html+css+云开发的小程序还有java+mysql的开发之后,去看javaweb,发现只是在原有的基础上加上了亿点点改动。 为了有时效性,在这里是对JavaEE基础实用教程(第3版 郑阿奇编著)的课本进行简单概述,给

Carrie_colourful的博客 5484

R语言中的混淆矩阵(Confusion Matrix)是一种常用的评估多分类模型性能的工具

除了准确率,混淆矩阵还提供了其他有用的指标,如灵敏度(Sensitivity)、特异度(Specificity)、精确度(Precision)和召回率(Recall)。混淆矩阵通过比较模型预测结果与实际标签的一致性,帮助我们了解模型的分类准确性和错误类型。此外,混淆矩阵还提供了各种错误类型的统计信息,如假阳性(False Positive)和假阴性(False Negative)等。通过混淆矩阵,我们可以了解模型的整体性能和错误类型,从而对模型进行评估和改进。最后,为了更好地理解混淆矩阵的结果,可以使用。

HackSquad的博客 972

OpenCV-Python实战(11)——OpenCV轮廓检测相关应用

在计算机视觉领域,轮廓通常指图像中对象边界的一系列点。因此,轮廓通常描述了对象边界的关键信息,包含了有关对象形状的主要信息,该信息可用于形状分析与对象检测和识别。在本文中,我们将学习如何利用获取到的轮廓,进行形状分析以及对象检测和识别。

盼小辉丶的博客 1万+

初学mybatis容易出现的错误总结

mybatis常见问题解决方案

qq_56565790的博客 277

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MyBatis-Plus(MyBatis的增强工具)

1. 概述 MyBatis-Plus(简称 MP) 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 官网 https://mybatis.plus/ 或 https://mp.baomidou.com/ 版本引入<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artif

辰伏的博客 671

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

第一章:Mybatis概述

1. Mybatis概述 MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。iBATIS 一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)当前,最新版本是MyBatis3.5.1,其发布时间是2

weixin_42198596的博客 329

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Mybatis学习笔记01】mybatis入门、概述、环境搭建等

学习前提: 1、什么是框架 它是我们软件开发过程中的一套解决方案,不同的框架解决的是不同的问题。 使用框架的好处: 框架封装了很多细节,使开发者可以使用及简的方式实现功能。大大提高开发效率。 2、什么是三层架构 表现层:负责数据展示的 业务逻辑层:负责处理业务需求的 迟久层:负责和数据库交互的 3、迟久层技术解决方案 JDBC技术:使用的对象: Connection、PreparedStatement、ResultSet Spring中的JdbcTemplate:Spring中对Jdbc的简单封装 Ap

BigKing_One的博客 180

MyBatis概述

05 MySQL驱动:8.0.30在文献中看到的framework被翻译为框架Java常用框架:SSM三大框架:Spring + SpringMVC + MyBatisSpringBoot等。。框架其实就是对通用代码的封装,提前写好了一堆接口和类,我们可以在做项目的时候直接引入这些接口和类(引入框架),基于这些现有的接口和类进行开发,可以大大提高开发效率。[好比毛坯房,装修自己决定]框架一般都以jar包的形式存在。(jar包中有class文件以及各种配置文件等。

2301_79602614的博客 1054

MyBatis——第1章 MyBatis入门

1.1 框架 包含 jar包 ,文档 , 源码,代码实例.... 1.2 Mybatis 概述   1.2.1 简介        是一个优秀的基于Java持久层框架,它内部封装了JDBC,使用者只需要关注SQL语句本身。        Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过Java对象和Statement中SQL的动态参数映射生成最终执行的...

Curry7895的博客 364

Mybatis概述

1、Mybatis概述 1.1 JDBC编程 1.2.说说你对Mybatis的了解 1.Mybatis 基于java的持久层框架,它的内部封装了JDBC,让开发人员只需要关注SQL语句本身,不需要花费精力在驱动的加载、连接的创建、Statement的创建等复杂的过程。 2.Mybatis 通过 XML 或注解的方式将要执行的各种的 statement 配置起来,并通过 java 对象和 statement 中的 sql 的动态参数进行映射生成最终执行的SQL 语句,最后 由mybatis框架执行SQL,并

YYYQD的博客 2365

1.MyBatis概述

MyBatis本质上就是对JDBC的封装,通过MyBatis完成CRUDMyBatis在三层架构中负责持久层的,属于持久层框架github地址中文官网。

u011488477的博客 919

1 mybatis 概述

Mybatis 概述 Mybatis 是什么 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层(数据层)框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记...

qq_45975759的博客 367

Mybatis的概述

文章目录1.Mybatis概述1.1 Mybatis概念1.2 Mybatis优化1.2 Mybatis入门 1.Mybatis概述 1.1 Mybatis概念 MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发 MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github 官网:https://mybatis.org/

记录学习的历程 534
上一篇: 1.17.MySQL-DQL-分页查询
下一篇: Mybatis连接数据库案例
巧克力拌面
博客等级 码龄3年 1153粉丝 282原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值