2025 年 3 月 19 日 mybaties 数据库控制

  • 操作数据库 mysql

    • mysql 的***==中文属性 不能为 1 个字==***,应该 至少 2 个字,不然会报 Mapper 相关的错误
      Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

    • ***==不建议将字符串作为主键==***,因为***一旦主键过长,后端将会收到空指针***,所以推荐用 int 当主键

    • mysql 的 下划线 _ 、驼峰命名, 输出到 spring 都会被过滤掉(双引号 书名号这些不会。

    • 若 mysql 的表直接名字含有_、驼峰,那么可以通过 @TableName("t_product") 注解避免找不到的情况

    • 数据库里面的 外键 int,必须初始有值
      如果初始化为 null,那么 springboot 取的时候 都会一直为 0,怎么 update 都不管用。

    • 实体层必须要有 getter 函数,不然阿里巴巴 json 会返回 {}

    • 实体层成员变量必须要是包裹类型

    • ***==主键不能修改==***,只能删除后,重新插入一个新的

    • 警告:多主键的时候,mybaties-plus 无法处理,此时

      • 需要再来一个依赖(也就是老的 mybaties 也要在 pom 里引用)

      • 在 entity 中 配置多主键 注解

      • 然后再 mapper 里面继承 MppBaseMapper

      • 在 service 里面继承

      • 具体操作也不一样了,请看博客


    • 先引入

    • 再连接 数据库(注意 yaml 中必须 完全满足 缩进结构,和 python 一样的。如果有一点不满足缩进格式 就会报错)

      spring: datasource: url: jdbc:mysql://localhost:3306/毕业设计助农系统?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8 username: root password: 1264917182 driver-class-name: com.mysql.cj.jdbc.Driver
    • 再配置实体 entity 层、mapper 层、service 层(统称 DAO 层)

    • entity 层

      • 别忘了 primary key 加上注解 @TableId,不然会报警告

      • 注解了之后,该成员变量 就不会和数据库建立映射(不会扫描)

    • mapper 层

      • entity 层和 mapper 层可以放一起
        下面红色的是 自动配置 常规 sql

    • service 层

      • 使用 mybaties-plus 提供的 mapper 层函数
        本质就是使用 mapper 层提供的函数(接口)

        • 按照值 查询的例子。本质就是 where value1>=321;
          如果要查多行就用 selectList,并且用 ge
          ge 代表 greater equal eq 代表 equal le 代表 less equal

        • 如果是查询所有,那要 gt("列名"," *")

        • 详细的 queryWrapper 函数

        • 再来一个 按照键值对查询的 例子( 删除和查询一样)

        • 再来一个插入的例子

        • 再来一个更新的例子

        • 再来一个删除的例子

        • 详细请看 csdn 例子

        • 或者 官网

      • mapper 里面返回值为 Vector 时
        如果查询的东西一个都没有,size()==0

    • 最后在 Controller 里面使用就好了

  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    173 引用 • 414 回帖 • 365 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Follow
    4 引用 • 12 回帖 • 3 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖 • 1 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 189 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 114 回帖 • 172 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖 • 1 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 6 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    63 引用 • 289 回帖 • 1 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 153 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 242 回帖 • 1 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 643 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 349 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 11 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    298 引用 • 763 回帖
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 737 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 796 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • Visio
    1 引用 • 2 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 4 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    371 引用 • 1856 回帖 • 1 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    188 引用 • 319 回帖 • 241 关注
  • CodeMirror
    2 引用 • 17 回帖 • 167 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 143 回帖 • 1 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    326 引用 • 1395 回帖
  • RemNote
    2 引用 • 16 回帖 • 20 关注