码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 《Mycat分布式数据库架构》之应用层连接mycat数据源


    文章目录

          • 1、添加maven依赖
          • 2、添加配置文件
          • 3、实体类
          • 4、dao层
          • 5、service
          • 6、xml
          • 7、Controller

    前文回顾:

    《Mycat分布式数据库架构》之原理及架构
    《Mycat分布式数据库架构》之搭建详解
    《Mycat分布式数据库架构》之配置详解
    《Mycat分布式数据库架构》之数据切分和读写分离
    《Mycat分布式数据库架构》之故障切换
    《Mycat分布式数据库架构》之数据切分实战
    《Mycat分布式数据库架构》之全局自增ID
    《Mycat分布式数据库架构》之ER分片
    《Mycat分布式数据库架构》之高可用集群
    《Mycat分布式数据库架构》之Mycat管理



    1、添加maven依赖

    简单使用springboot+mybatis框架来进行演示,创建springboot项目后,在pom.xml文件中引入相关依赖,其实就是使用MySQL数据库驱动来连接mycat,如下。

            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
            <dependency>
                <groupId>org.mybatis.spring.bootgroupId>
                <artifactId>mybatis-spring-boot-starterartifactId>
                <version>2.0.0version>
            dependency>
    
            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <scope>runtimescope>
            dependency>
            <dependency>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
                <optional>trueoptional>
            dependency>
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <scope>testscope>
            dependency>
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-jdbcartifactId>
            dependency>
    
    • 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

    2、添加配置文件

    创建application.yml文件,内容如下:

    #设置应用端口
    server:
      port: 8080
    
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        # Mycat连接
        url: jdbc:mysql://192.168.157.129:8066/mycats?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
        username: yxc
        password: xxxxxx
    
    # MyBatis
    mybatis:
      type-aliases-package: com.example.springbootmybatismycat.domain
      mapper-locations: classpath:/mybatis/*.xml
      #sql打印配置
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    3、实体类
    public class User implements Serializable {
        private static final long serialVersionUID = 5088697673359856350L;
        private Integer userId;
        private String userName;
    
        public Integer getUserId() {
            return userId;
        }
    
        public void setUserId(Integer userId) {
            this.userId = userId;
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    4、dao层

    具体源码如下:

    public interface UserMapper {
        List<User> selectUserList();
        void addUser(final User user);
    }
    
    • 1
    • 2
    • 3
    • 4

    5、service

    创建Service,源码如下:

    public interface UserService {
        List<User> listUser();
        void addUser(final User user);
    }
    
    • 1
    • 2
    • 3
    • 4

    6、xml
    
    DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.example.springbootmybatismycat.mapper.UserMapper">
        <resultMap type="User" id="UserResult">
            <id property="userId" column="id"/>
            <result property="userName" column="name"/>
        resultMap>
    
        <select id="selectUserList" parameterType="User" resultMap="UserResult">
            select * from tb_user order by ID asc;
        select>
    
        <insert id="addUser" parameterType="User">
            insert into tb_user(ID,NAME) values (125,'test');
        insert>
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    7、Controller
    @RestController
    @RequestMapping("/cat")
    public class UserController {
        @Autowired
        private UserService userService;
    
        @GetMapping(value = "listUser")
        public List<User> listUser() {
            return userService.listUser();
        }
    
        @GetMapping(value = "addUser")
        public String addUser(User user) {
            userService.addUser(user);
            return "添加成功!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    运行结果如下所示:

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    腾讯二面C++后端面经总结
    java学习步骤-谷粒商城-个人总结
    大数据热点城市波动图案例【CSS3实现 + 原理分析 + 源码获取】
    nginx请求静态资源POST 405 Not Allowed问题
    移动硬盘或U盘无法弹出的解决方法
    DO280OpenShift访问控制--加密和ConfigMap
    自动化运维工具——ansible概述和部署
    Java随谈(六)我们真的理解 Java 里的整型吗?
    Nomad 系列-安装
    数据结构与算法初体验
  • 原文地址:https://blog.csdn.net/xch_yang/article/details/126307369
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号