码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【java_wxid项目】【第九章】【Apache Mybatis集成】


    主项目链接:https://gitee.com/java_wxid/java_wxid
    项目架构及博文总结:

    • 点击:【使用Spring Boot快速构建应用】
    • 点击:【使用Spring Cloud Open Feign基于动态代理动态构造请求实现与其他系统进行交互】
    • 点击:【使用Spring Cloud Hystrix实现服务容错、熔断、降级、监控】
    • 点击:【使用Spring Cloud Ribbon以库的方式集成到服务的消费方实现客户端负载均衡】
    • 点击:【使用Spring Cloud Gateway作为API网关服务进行请求拦截、服务分发、降级、限流】
    • 点击:【使用Spring Cloud Security Oauth2作为微服务统一认证中心实现用户认证和授权访问】
    • 点击:【使用Spring Cloud Stream作为消息驱动用于动态的切换中间件】
    • 点击:【使用Spring Cloud Skywalking基于字节码注入通过探针方式进行链路追踪、分布式追踪、性能指标分析、应用和服务依赖分析】
    • 点击:【使用Spring Cloud Alibaba Nacos实现服务注册/发现/续约/剔除/下线、心跳检测、服务配置管理、基于长轮训机制实现配置动态变更】
    • 点击:【使用Spring Cloud Alibaba Seata作为对项目代码无入侵的分布式事务解决方案】
    • 点击:【使用Spring Cloud Alibaba Sentinel实现高可用流量防护】
    • 点击:【使用Apache ShardingSphere作为关系型数据库中间件实现分库分表、读写分离】
    • 点击:【使用Apache Mybatis作为持久层框架用于定制化SQL、存储过程以及高级映射】
    • 点击:【使用Redis作为高性能分布式缓存数据库】
    • 点击:【使用ElasticSearch全文搜索】
    • 点击:【使用MongoDB非关系型数据库】
    • 点击:【使用xxl-job作为分布式任务调度平台】
    • 点击:【使用Elasticsearch + Logstash + Kibana作为日志收集系统】
    • 点击:【使用Apifox作为API文档、API调试、API Mock、API自动化测试】
    • 点击:【使用Apache Spark作为基于内存计算的大数据分析引擎用于批处理、交互式查询】
    • 点击:【使用ETL工具将数据源抽取到HDFS作为高可靠、高吞吐量的分布式文件系统存储,通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据】
    • 点击:【使用领域驱动DDD设计和设计模式进行开发】
    • 点击:【使用Netty基于Java NIO封装的高性能的网络通信框架】
    • 点击:【使用k8s、docker、docker-compose、宝塔面板进行环境搭建和部署】
    • 点击:【使用Vue渐进式JavaScript框架作为适用场景丰富的Web前端框架】
    • 点击:【分享人才筛选、工作分配、高效办公、项目推动等团队管理经验】

    项目模块:
    前期规划,实现部分

    java_wxid   
    ├── demo                                                            // 演示模块
    │     └── 模块名称:apache-mybatis-demo模块                            //Apache Mybatis集成(已实现并有博文总结)
    │     └── 模块名称:apache-shardingsphere-demo模块                     //Apache ShardingSphere集成(已实现并有博文总结)
    │     └── 模块名称:design-demo模块                                    //设计模式实战落地(已实现并有博文总结)
    │     └── 模块名称:elasticsearch-demo模块                             //ElasticSearch集成(已实现并有博文总结)
    │     └── 模块名称:mongodb-demo模块                                   //MongoDB集成(已实现并有博文总结)
    │     └── 模块名称:redis-demo模块                                     //Redis集成(已实现并有博文总结)
    │     └── 模块名称:spring-boot-demo模块                               //Spring Boot快速构建应用(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-alibaba-nacos-demo模块                //Spring Cloud Alibaba Nacos集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-alibaba-seata-demo模块                //Spring Cloud Alibaba Seata集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-alibaba-sentinel-demo模块             //Spring Cloud Alibaba Sentinel集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-gateway-demo模块                      //Spring Cloud Gateway集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-hystrix-demo模块                      //Spring Cloud Hystrix集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-open-feign-demo模块                   //Spring Cloud Open Feign集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-ribbon-demo模块                       //Spring Cloud Ribbon集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-security-oauth2-demo模块              //Spring Cloud Security Oauth2集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-security-oauth2-sso-client-demo模块   //Spring Cloud Security Oauth2集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-skywalking-demo模块                   //Spring Cloud Skywalking集成(已实现并有博文总结)
    │     └── 模块名称:spring-cloud-stream-demo模块                       //Spring Cloud Stream集成(已实现并有博文总结)
    │     └── 模块名称:swagger-demo模块                                   //springfox-swagger2集成(已实现并有博文总结)
    │     └── 模块名称:xxl-job模块                                        //xxl-job集成(已实现并有博文总结)
    │     └── 模块名称:apache-spark-demo模块                              //Apache Spark集成
    │     └── 模块名称:etl-hdfs-hive-hbase-demo模块                       //ETL、HDFS、Hive、Hbase集成
    │     └── 模块名称:ddd-mode-demo模块                                  //DDD领域设计
    │     └── 模块名称:netty-demo模块                                     //Netty集成
    │     └── 模块名称:vue-demo模块                                       //前端vue集成
    ├── document                                                        // 文档
    │     └── JavaKnowledgeDocument                                     //java知识点
    │           └── java基础知识点.md                     
    │           └── mq知识点.md
    │           └── mysql知识点.md
    │           └── redis知识点.md
    │           └── springcould知识点.md
    │           └── spring知识点.md
    │     └── FounderDocument                                           //创始人
    │           └── 创始人.md
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    系列文章:快速集成各种微服务相关的技术,帮助大家可以快速集成到自己的项目中,节约开发时间。
    提示:系列文章还未全部完成,后续的文章,会慢慢补充进去的。

    文章目录

        • 创建apache-mybatis-demo项目
          • 修改pom.xml
          • 修改application.properties
          • 修改ApacheMybatisDemoApplication
          • 创建DictMapper.xml
          • 创建DictMapper
          • 创建Dict
          • 创建MyBatisTestController
        • 校验Apache Mybatis是否正常工作
          • 启动项目
          • 访问服务接口http://localhost:8092/getDictAll
          • 访问服务接口http://localhost:8092/getDictByDictId?DictId=0

    创建apache-mybatis-demo项目

    项目代码:https://gitee.com/java_wxid/java_wxid/tree/master/demo/apache-mybatis-demo
    项目结构如下(示例):
    在这里插入图片描述

    修改pom.xml

    代码如下(示例):

    
    
        4.0.0
    
        com.example
        apache-mybatis-demo
        0.0.1-SNAPSHOT
        apache-mybatis-demo
        Demo project for Spring Boot
        
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    
                        8
                        8
                    
                
            
        
    
        
            
                
                    org.springframework.boot
                    spring-boot-dependencies
                    2.3.1.RELEASE
                    pom
                    import
                
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-starter-web
            
            
                org.springframework.boot
                spring-boot-starter
                2.4.5
            
            
                org.springframework.boot
                spring-boot-starter-test
                2.4.1
            
            
                com.alibaba
                druid
                1.1.23
            
            
                mysql
                mysql-connector-java
                8.0.22
            
            
                com.baomidou
                mybatis-plus-boot-starter
                3.3.2
            
        
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    修改application.properties

    代码如下(示例):

    server.port=8092
    #mysql数据库
    spring.datasource.url= jdbc:mysql://139.224.137.74:3306/syncdemo?characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
    spring.datasource.username= root
    spring.datasource.password= ca0a997ee4770063
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
    #mybatis
    #开启驼峰
    mybatis.configuration.map-underscore-to-camel-case=true
    #打印日志
    mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    
    #mybatis-plus配置
    mybatis-plus.mapper-locations=classpath*:/mapper/*.xml
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    mybatis-plus.global-config.id-type=0
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    mybatis-plus.global-config.field-strategy= 1
    #驼峰下划线转换
    mybatis-plus.global-config.db-column-underline=true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    修改ApacheMybatisDemoApplication

    代码如下(示例):

    package com.example.apachemybatisdemo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.mybatis.spring.annotation.MapperScan;
    
    @MapperScan("com.example.apachemybatisdemo.mapper")
    @SpringBootApplication
    public class ApacheMybatisDemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ApacheMybatisDemoApplication.class, args);
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    创建DictMapper.xml

    代码如下(示例):

    
    
    
    
        
            
            
            
        
    
        
        
            t.dict_id,t.ustatus,t.uvalue
        
    
        
        
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    创建DictMapper

    代码如下(示例):

    package com.example.apachemybatisdemo.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.example.apachemybatisdemo.entity.Dict;
    import org.apache.ibatis.annotations.Param;
    
    /**
     * @Author: liaozhiwei
     * @Description: TODO
     * @Date: Created in 21:16 2022/9/2
     */
    public interface DictMapper extends BaseMapper {
    
        Dict getDictByDictId(@Param("dictId") String dictId);
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    创建Dict

    代码如下(示例):

    package com.example.apachemybatisdemo.entity;
    
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    
    /**
     * @Author: liaozhiwei
     * @Description: TODO
     * @Date: Created in 21:16 2022/9/2
     */
    @TableName("t_dict")
    public class Dict {
    
        @TableId(value = "dict_id",type = IdType.AUTO)
        private Long dictId;
        private String ustatus;
        private String uvalue;
    
        public Long getDictId() {
            return dictId;
        }
    
        public void setDictId(Long dictId) {
            this.dictId = dictId;
        }
    
        public String getUstatus() {
            return ustatus;
        }
    
        public void setUstatus(String ustatus) {
            this.ustatus = ustatus;
        }
    
        public String getUvalue() {
            return uvalue;
        }
    
        public void setUvalue(String uvalue) {
            this.uvalue = uvalue;
        }
    
        @Override
        public String toString() {
            return "Dict{" +
                    "dictId=" + dictId +
                    ", ustatus='" + ustatus + '\'' +
                    ", uvalue='" + uvalue + '\'' +
                    '}';
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    创建MyBatisTestController

    代码如下(示例):

    package com.example.apachemybatisdemo.controller;
    
    import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
    import com.example.apachemybatisdemo.entity.Dict;
    import com.example.apachemybatisdemo.mapper.DictMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import java.util.List;
    
    /**
     * @author zhiweiLiao
     * @Description 这里我直接在controller层直接拿数据返回了,没有再参加service层,实战开发不要像我这样写
     * @Date create in 2022/9/11 0011 20:32
     */
    
    @RestController
    public class MyBatisTestController {
    
        @Autowired
        private DictMapper dictMapper;
    
        /**
         * 使用通用方法获取所有字典数据
         * @return
         */
        @GetMapping("/getDictAll")
        public List getDictAll(){
            return dictMapper.selectList(new LambdaQueryWrapper().eq(Dict::getUstatus,1));
        }
    
        /**
         * 使用XML方式根据字典id获取字典数据
         * @return
         */
        @GetMapping("/getDictByDictId")
        public Dict getDictByDictId(String DictId){
            return dictMapper.getDictByDictId(DictId);
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    校验Apache Mybatis是否正常工作

    启动项目

    如下图(示例):
    在这里插入图片描述

    访问服务接口http://localhost:8092/getDictAll

    如下图(示例):
    在这里插入图片描述

    访问服务接口http://localhost:8092/getDictByDictId?DictId=0

    如下图(示例):
    在这里插入图片描述Apache Mybatis可以正常工作

  • 相关阅读:
    FastAPI 学习之路(一)fastapi--高性能web开发框架
    Debian系APT源通用镜像加速配置
    python+vue+elementui花卉种植技术网站
    PyQt界面里如何加载本地视频以及调用摄像头实时检测(小白入门必看)
    Flask实现简单的首页登录注销逻辑
    【GEE】8、Google 地球引擎中的时间序列分析【时间序列】
    微服务架构中的调试难题与分布式事务解决方案
    基于nginx+keepalived的负载均衡、高可用web集群
    1686. 石子游戏 VI
    华为云云耀云服务器L实例评测|在Redis的Docker容器中安装BloomFilter & 在Spring中使用Redis插件版的布隆过滤器
  • 原文地址:https://blog.csdn.net/java_wxid/article/details/126809640
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号