,      一、前言   

      各位大佬应该知道,在大型项目中都需要有数据传输层,一般项目都采用的是MVC结构,如果有10个表,则会创建10个实体类,在各个层之间应该使用实体类传递数据;

       在微服架构中,也许有很多个客户端,有的客户端可能会有数据访问层;有的客户端没有数据访问层;

      假设现在有ABC三个客户端,A客户端负责提供数据,可能会写实体类;

      B客户端调用A客户端controller的数据,传递到页面;因此不需要写数据访问层代码和业务层代码,但是这个时候如果你接受的A客户端数据返回的是一个对象,这个时候B在接受A数据的时候最好拿对象去接受,但是B没有数据访问层就没有写实体类,这个时候就比较难受了,你是创建实体类呢 还是不创建呢 ?因为是2个不同的项目,你创建了也不一定是和A一样的?怎么办呢?等会说?

     同样的道理,C去调用B控制层的方法出数据给页面,也需要拿对象接受,又遇到不写数据访问层,不写传输层,不知道拿啥接值的问题?咋办嘞?

    我们写个公共组件类,里面把整个大系统项目中所有的数据库表 都写一个映射的实体类,然后使用mvc命令或idea工具把整个项目 以打包为war包或jar包的形式 ,打入我们的maven仓库中,然后其他项目使用 的时候用 直接在pom中引用我们打好的依赖就ok了,强调一下大型系统项目中的这么干,如果你觉的麻烦,Holly稍后会介绍 不用对象传参的用法哦!技能多多,大家持续关注哈!

 二、使用idea工具或mysql数据库客户端工具SQLyog 连接虚拟机上docker下mysql容器中数据库,并创建表数据

       注意:要启虚拟机docker下的mysql容器才能使用哦,docker上安装mysql参照我的帖子哦,有图有真相!

  1. 开启虚拟机centos 7,然后使用xshell 查看docker上全部的容器

 springcloud(五):Eureka客户端公共组件打包方式_数据

 注意,要使用mysql,则需要启动docker上mysql所在的容器

 

2.查看已经启动的容器,发现我们mysql所在的容器并未启动,

springcloud(五):Eureka客户端公共组件打包方式_客户端_02

 

3.启动mysql所在的容器

springcloud(五):Eureka客户端公共组件打包方式_实体类_03

 

4.使用SQLyog链接数据或idea链接数据

springcloud(五):Eureka客户端公共组件打包方式_数据_04

5.创建数据库脚本

create table classes
(
  cid int(10) not null AUTO_INCREMENT PRIMARY KEY ,
  cname VARCHAR(20) NOT NULL
);
insert into classes(cname) VALUES ('KD59'),('KD66'),('KD67');

create table student
(
   sid int(10) not null AUTO_INCREMENT primary KEY,
   sname VARCHAR(20) NOT NULL ,
   password VARCHAR(20) NOT NULL ,
   subject VARCHAR(20) NOT NULL ,
   result DOUBLE(10,2),
   cid INT(10) not null REFERENCES classes(cid)
);
 INSERT INTO student(sname, password, subject, result, cid) VALUES
   ('张三','123','java',89.8,1),
   ('李四','123','html',99.8,2),
   ('王五','123','mysql',99.8,3);

 

 

三、创建公共组件案例项目

 

     1.创建项目

springcloud(五):Eureka客户端公共组件打包方式_mysql_05

 

 2、选择创建项目方式,因为只是数据传输层的公共组件即数据表的映射类,因此只需要创建普通的maven项目即可

springcloud(五):Eureka客户端公共组件打包方式_客户端_06

 

 

3、group命名,给模块起名字

springcloud(五):Eureka客户端公共组件打包方式_数据_07

 

 

 4、选择我们的maven依赖地址

springcloud(五):Eureka客户端公共组件打包方式_实体类_08

 

5.再次确定工程名和模块名

springcloud(五):Eureka客户端公共组件打包方式_实体类_09

 

 6.项目结构如下

springcloud(五):Eureka客户端公共组件打包方式_mysql_10

 

 7.创建Classes类

package cn.kgc.vo;
import java.io.Serializable;
public class Classes implements Serializable{
    private Integer cid;
    private String cname;

    public Classes() {
    }

    public Classes(Integer cid, String cname) {
        this.cid = cid;
        this.cname = cname;
    }

    public Integer getCid() {
        return cid;
    }

    public void setCid(Integer cid) {
        this.cid = cid;
    }

    @Override
    public String toString() {
        return "Classes{" +
                "cid=" + cid +
                ", cname='" + cname + '\'' +
                '}';
    }
}

 

 

8.创建Student类

 

package cn.kgc.vo;

import java.io.Serializable;

public class Student implements Serializable{
    private Integer sid;
    private String sname;
    private String password;
    private String subject;
    private Double result;
    //外键列
    private Classes classes;

    public Student() {
    }

    public Student(Integer sid, String sname, String password, String subject, Double result, Classes classes) {
        this.sid = sid;
        this.sname = sname;
        this.password = password;
        this.subject = subject;
        this.result = result;
        this.classes = classes;
    }

    public Integer getSid() {
        return sid;
    }

    public void setSid(Integer sid) {
        this.sid = sid;
    }

    @Override
    public String toString() {
        return "Student{" +
                "sid=" + sid +
                ", sname='" + sname + '\'' +
                ", password='" + password + '\'' +
                ", subject='" + subject + '\'' +
                ", result=" + result +
                ", classes=" + classes +
                '}';
    }
}

 

 

9.使用idea工具进行打包到我们自己的maven仓库,

springcloud(五):Eureka客户端公共组件打包方式_实体类_11

 

 10.查看构建结构

springcloud(五):Eureka客户端公共组件打包方式_mysql_12

springcloud(五):Eureka客户端公共组件打包方式_数据_13

 

 springcloud(五):Eureka客户端公共组件打包方式_数据_14

 

 到此公共组件构建完成,后面可以在pom中引入该依赖使用