码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringBoot+TKmybatis+mysql实现简单后台管理demo


    使用SpringBoot+TKmybatis+mysql实现简单demo(后台管理增删改查)

    目录

    • 一、概念
      • 1.TKmybatis 是什么?
      • 2.TKmybatis 与 mybatis-plus
      • 3.TKmybatis的底层原理
    • 二、TKmybatis的使用
      • 1.Springboot项目中加入tk.mybatis依赖
      • 2.创建实体类
      • 3.base类
      • 4.定义dao
      • 5.定义Controller
        • 5.1 新增 insertSelective
        • 5.2 编辑updateByPrimaryKeySelective
        • 5.3 查看详情 selectByPrimaryKey
        • 5.4 查看单条记录 selectOne
        • 5.5 查看所有 selectAll
        • 5.6 根据条件(and) 查看列表 selectByExample
        • 5.7 根据条件(or) 查看列表 selectByExample
        • 5.8 分页查看用户列表 PageHelper、selectByExample
        • 5.9 限制条数查询 selectByExampleAndRowBounds
        • 5.10(条件1 and 条件2) or ( 条件3 and 条件4) 查看
        • 5.11(条件1 or 条件2) and 条件3查看
      • 6.启动类中配置
      • 7.进行测试
        • 7.1 测试 (条件1 and 条件2) or ( 条件3 and 条件4) 查看
        • 7.2 测试 (条件1 or条件2) and 条件3 查看
    • 8.完整代码

    一、概念

    1.TKmybatis 是什么?

    TKmybatis 是基于 Mybatis 框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何 sql 语句,这极大地提高了项目开发效率。

    2.TKmybatis 与 mybatis-plus

    可参考https://www.codeleading.com/article/98311983977/

    3.TKmybatis的底层原理

    TKmybatis 的封装依赖一个 @SelectProvider 注解来完成,如果你使用过 @Select 注解,那么 @SelectProvider 与它没有质的区别,只是在定义注解的方式上有所不同, 一个是直接定义 sql, 一个是在外部定义好 sql 直接引用。

    增删改查依赖注解:@InsertProvider 注解、@DeleteProvider 注解、@UpdateProvider 注解、@SelectProvider 注解

    public interface Mapper {
       
    
     @Select("select user_id,user_name from t_user ")
     List<Map<String, String>> getUserInfo();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    public interface SelectAllMapper<T> {
       
        @SelectProvider(type = BaseSelectProvider.class,method ="dynamicSQL"
        )
        List<T> selectAll();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    @SelectProvider 引用的各种 *Provider.class 实现类,就是依赖反射、注解等手段拼接 SQL 语句的过程。

    /**
     * 查看全部
     */
    public String selectAll(MappedStatement ms) {
       
        Class<?> entityClass = this.getEntityClass(ms);
        this.setResultType(ms, entityClass);
        StringBuilder sql = new StringBuilder();
        sql.append(SqlHelper.selectAllColumns(entityClass));
        sql.append(SqlHelper.fromTable(entityClass, this.tableName(entityClass)));
        sql.append(SqlHelper.orderByDefault(entityClass));
        return sql.toString();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    TKmybatis 底层源码如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、TKmybatis的使用

    springBoot整合tkMybatis实现步骤:

    1: 引入依赖
    2: 实体类配置注解(@Id @Table)
    3: Mapper继承tk的接口
    4:启动类定义扫描Mapper接口的路径(@MapperScan)
    5:配置文件定义扫描mapper.xml文件的路径(yml 或者 properties文件)
    6:调用tk提供的接口和数据库交互

    1.Springboot项目中加入tk.mybatis依赖

    在pom.xml中引入tk.mybatis的引用:

    
    <dependency>
        <groupId>tk.mybatisgroupId>
        <artifactId>mapper-spring-boot-starterartifactId>
        <version>1.2.4version>
    dependency>
    
    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <scope>runtimescope>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    配置 application.yml:

    # 服务端口
    server:
      port: 8083
    
    # 数据源配置
    spring:
      datasource:
        name: test
        url: jdbc:mysql://localhost:3306/db_user?&allowMultiQueries=true&useUnicode=true
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    TiUniManager(原TiEM)部署及使用流程
    C语言柔性数组
    ATA-P0102压电叠堆放大器技术指标
    一键AI绘画-生成自己想要生成的图片(你懂的)。
    Python中的del用法
    重点用能单位能耗在线监测接入端系统
    threejs实现3d全景看房
    cuda12+vs2019环境搭建 发疯实录
    题目 1053: 二级C语言-平均值计算(python详解)——练气三层初期
    48所高校发布2023考研招生简章及参考书目免费分享
  • 原文地址:https://blog.csdn.net/qq_26383975/article/details/126507527
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号