0

0

MySQL怎么实现Scott数据映射

王林

王林

发布时间:2023-05-27 21:28:04

|

1332人浏览过

|

来源于亿速云

转载

    1、SQL

    DROP TABLE IF EXISTS `tb_dept`;
    CREATE TABLE `tb_dept`  (
      `deptno` tinyint(2) UNSIGNED NOT NULL  COMMENT '部门编号',
      `dname` varchar(14) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部门名称',
      `loc` varchar(13) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部门地址',
      PRIMARY KEY (`deptno`) USING BTREE
    ) ENGINE = InnoDB  CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    INSERT INTO `tb_dept` VALUES (10, 'ACCOUNTING', 'NEW YORK');
    INSERT INTO `tb_dept` VALUES (20, 'RESEARCH', 'DALLAS');
    INSERT INTO `tb_dept` VALUES (30, 'SALES', 'CHICAGO');
    INSERT INTO `tb_dept` VALUES (40, 'OPERATIONS', 'BOSTON');
    
    -------------------------------------------------------------------
    DROP TABLE IF EXISTS `tb_emp`;
    CREATE TABLE `tb_emp`  (
      `empno` int(4) UNSIGNED NOT NULL,
      `ename` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `job` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `mgr` int(4) UNSIGNED  NULL DEFAULT NULL,
      `hiredate` date NULL DEFAULT NULL,
      `sal` decimal(7, 2) NULL DEFAULT NULL,
      `comm` decimal(7, 2) NULL DEFAULT NULL,
      `deptno` tinyint(2) UNSIGNED NULL DEFAULT NULL,
      PRIMARY KEY (`empno`) USING BTREE,
      INDEX `deptno`(`deptno`) USING BTREE,
      CONSTRAINT `tb_emp_ibfk_1` FOREIGN KEY (`deptno`) REFERENCES `tb_dept` (`deptno`) ON DELETE RESTRICT ON UPDATE RESTRICT
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    INSERT INTO `tb_emp` VALUES (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800.00, NULL, 20);
    INSERT INTO `tb_emp` VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600.00, 300.00, 30);
    INSERT INTO `tb_emp` VALUES (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250.00, 500.00, 30);
    INSERT INTO `tb_emp` VALUES (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975.00, NULL, 20);
    INSERT INTO `tb_emp` VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250.00, 1400.00, 30);
    INSERT INTO `tb_emp` VALUES (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850.00, NULL, 30);
    INSERT INTO `tb_emp` VALUES (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450.00, NULL, 10);
    INSERT INTO `tb_emp` VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000.00, NULL, 20);
    INSERT INTO `tb_emp` VALUES (7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000.00, NULL, 10);
    INSERT INTO `tb_emp` VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500.00, 0.00, 30);
    INSERT INTO `tb_emp` VALUES (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100.00, NULL, 20);
    INSERT INTO `tb_emp` VALUES (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950.00, NULL, 30);
    INSERT INTO `tb_emp` VALUES (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000.00, NULL, 20);
    INSERT INTO `tb_emp` VALUES (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300.00, NULL, 10);

    2、实体类

    2.1、Dept.java

    /**
     * 部门
     * @author HC
     *
     */
    public class Dept {
        /**
         * 部门编号
         */
        private Integer deptno;
        /**
         * 部门名称
         */
        private String dname;
        /**
         * 部门地址
         */
        private String loc;
    
        public Dept() {
        }
    
        public Dept(Integer deptno, String dname, String loc) {
            this.deptno = deptno;
            this.dname = dname;
            this.loc = loc;
        }
    
        public Integer getDeptno() {
            return deptno;
        }
    
        public void setDeptno(Integer deptno) {
            this.deptno = deptno;
        }
    
        public String getDname() {
            return dname;
        }
    
        public void setDname(String dname) {
            this.dname = dname;
        }
    
        public String getLoc() {
            return loc;
        }
    
        public void setLoc(String loc) {
            this.loc = loc;
        }
    
        @Override
        public String toString() {
            return "Dept{" +
                    "deptno=" + deptno +
                    ", dname='" + dname + '\'' +
                    ", loc='" + loc + '\'' +
                    '}';
        }
    }

    2.2、Emp.java

    /**
     * 员工
     * @author HC
     */
    public class Emp {
        /**
         * 员工编号
         */
        private Integer empno;
        /**
         * 员工姓名
         */
        private String ename;
        /**
         * 工作
         */
        private String job;
        /**
         * 上级领导编号
         */
        private Integer mgr;
        /**
         * 受雇日期
         */
        private LocalDate hiredate;
        /**
         * 薪资
         */
        private Double sal;
        /**
         * 奖金
         */
        private Double comm;
        /**
         * 部门编号
         */
        private Integer deptno;
    
        public Emp() {
        }
    
        public Emp(Integer empno, String ename, String job, Integer mgr, LocalDate hiredate, Double sal, Double comm, Integer deptno) {
            this.empno = empno;
            this.ename = ename;
            this.job = job;
            this.mgr = mgr;
            this.hiredate = hiredate;
            this.sal = sal;
            this.comm = comm;
            this.deptno = deptno;
        }
    
        public Integer getEmpno() {
            return empno;
        }
    
        public void setEmpno(Integer empno) {
            this.empno = empno;
        }
    
        public String getEname() {
            return ename;
        }
    
        public void setEname(String ename) {
            this.ename = ename;
        }
    
        public String getJob() {
            return job;
        }
    
        public void setJob(String job) {
            this.job = job;
        }
    
        public Integer getMgr() {
            return mgr;
        }
    
        public void setMgr(Integer mgr) {
            this.mgr = mgr;
        }
    
        public LocalDate getHiredate() {
            return hiredate;
        }
    
        public void setHiredate(LocalDate hiredate) {
            this.hiredate = hiredate;
        }
    
        public Double getSal() {
            return sal;
        }
    
        public void setSal(Double sal) {
            this.sal = sal;
        }
    
        public Double getComm() {
            return comm;
        }
    
        public void setComm(Double comm) {
            this.comm = comm;
        }
    
        public Integer getDeptno() {
            return deptno;
        }
    
        public void setDeptno(Integer deptno) {
            this.deptno = deptno;
        }
    
        @Override
        public String toString() {
            return "Emp{" +
                    "empno=" + empno +
                    ", ename='" + ename + '\'' +
                    ", job='" + job + '\'' +
                    ", mgr=" + mgr +
                    ", hiredate=" + hiredate +
                    ", sal=" + sal +
                    ", comm=" + comm +
                    ", deptno=" + deptno +
                    '}';
        }
    }

    3、数据库模拟代码

    public class DB {
        private static List emps = new ArrayList<>();
        private static List depts = new ArrayList<>();
    
        static {
            depts.add(new Dept(10,"ACCOUNTING","NEWYORK"));
            depts.add(new Dept(20,"RESEARCH","DALLAS"));
            depts.add(new Dept(30,"SALES","CHICAGO"));
            depts.add(new Dept(40,"OPERATIONS","BOSTON"));
    
            emps.add(new Emp(7369, "SMITH", "CLERK", 7902,LocalDate.of(1980, 12, 17), 800D, null, 20));
            emps.add(new Emp(7499, "ALLEN", "SALESMAN", 7698, LocalDate.of(1981, 2, 20), 1600D, 300D, 30));
            emps.add(new Emp(7521, "WARD", "SALESMAN", 7698, LocalDate.of(1981, 2, 22), 1250D, 500D, 30));
            emps.add(new Emp(7566, "JONES", "MANAGER", 7893, LocalDate.of(1981, 4, 2), 2975D, null, 20));
            emps.add(new Emp(7654, "MARTIN", "SALESMAN", 7698, LocalDate.of(1981, 9, 28), 1250D, 1400D, 30));
            emps.add(new Emp(7698, "BLAKE", "MANAGER", 7839, LocalDate.of(1981, 5, 1), 2850D, null, 30));
            emps.add(new Emp(7782, "CLARK", "MANAGER", 7839, LocalDate.of(1981, 6, 9), 2450D, 600D, 10));
            emps.add(new Emp(7788, "SCOTT", "ANALYST", 7566, LocalDate.of(1987, 4, 19), 3000D, null, 20));
            emps.add(new Emp(7839, "KING", "PRESIDENT", null, LocalDate.of(1981, 11, 17), 5000D, null, 10));
            emps.add(new Emp(7844, "TURNER", "SALESMAN", 7698, LocalDate.of(1981, 9, 8), 1500D, null, 30));
            emps.add(new Emp(7876, "ADAMS", "CLERK", 7788, LocalDate.of(1987, 5, 23), 1100D, 350D, 20));
            emps.add(new Emp(7900, "JAMES", "CLERK", 7698, LocalDate.of(1981, 12, 3), 950D, null, 30));
            emps.add(new Emp(7902, "FORD", "ANALYST", 7566, LocalDate.of(1981, 12, 3), 3000D, null, 20));
            emps.add(new Emp(7934, "MILLER", "CLERK", 7782, LocalDate.of(1982, 1, 23), 1300D, 400D, 10));
        }
    
        public static List getEmps() {
            return emps;
        }
    
        public static List getDepts() {
            return depts;
        }
    }

    相关专题

    更多
    Golang 分布式缓存与高可用架构
    Golang 分布式缓存与高可用架构

    本专题系统讲解 Golang 在分布式缓存与高可用系统中的应用,涵盖缓存设计原理、Redis/Etcd集成、数据一致性与过期策略、分布式锁、缓存穿透/雪崩/击穿解决方案,以及高可用架构设计。通过实战案例,帮助开发者掌握 如何使用 Go 构建稳定、高性能的分布式缓存系统,提升大型系统的响应速度与可靠性。

    26

    2026.01.09

    java学习网站推荐汇总
    java学习网站推荐汇总

    本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

    38

    2026.01.08

    java学习网站汇总
    java学习网站汇总

    本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

    0

    2026.01.08

    正则表达式 删除
    正则表达式 删除

    本专题整合了正则表达式删除教程大全,阅读专题下面的文章了解更多详细教程。

    49

    2026.01.08

    java 元空间 永久代
    java 元空间 永久代

    本专题整合了java中元空间和永久代的区别,阅读专题下面的文章了解更多详细内容。

    4

    2026.01.08

    java 永久代和元空间
    java 永久代和元空间

    本专题整合了java中元空间和永久代的区别,阅读专题下面的文章了解更多详细内容。

    0

    2026.01.08

    java成品网站源码资源大全
    java成品网站源码资源大全

    本专题整合了java成品网站源码相关内容,阅读专题下面的文章了解更多详细内容。

    20

    2026.01.08

    java过滤器教程大全
    java过滤器教程大全

    本专题整合了java过滤器相关教程,阅读专题下面的文章了解更多详细内容。

    6

    2026.01.08

    作业帮网页版入口地址大全
    作业帮网页版入口地址大全

    本专题整合了作业帮网页版地址整理,阅读专题下面的文章了解更多详细内容。

    7

    2026.01.08

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    MySQL 教程
    MySQL 教程

    共48课时 | 1.7万人学习

    MySQL 初学入门(mosh老师)
    MySQL 初学入门(mosh老师)

    共3课时 | 0.3万人学习

    简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信

    共1课时 | 785人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号