mybatis练习

Posted 2979100039-qq-con

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis练习相关的知识,希望对你有一定的参考价值。

题目如下:

提供数据结构
数据结构
员工表(employee)
    员工id(eid int 自动增长)
    员工姓名(ename varchar(50)
    员工职务(pid int)
    入职时间(Date)
    薪水(salary decimal(12,3))
    上级管理员工id(mgr_pid)
    部门编号(did)

部门表(department)
    部门id(did int 自动增长)
    部门名称(dname varchar(50),[开发部|财务部|人事资源部|运维部]

职务表(post)
    职务id(pid int 自动增长)
    职务名称(pname varchar(50),[总经理|部门经理|普通职员]



按要求完成以下业务需求模块
1、使用 Mybatis 完成员工表、部门表、职务表的增删改功能接口,并使用JUnit测试接口输出。
2、查询出所有部门信息,并包含其下属员工(使用 collection 标签完成),用JUnit测试接口输出。
3、查询所有员工信息,并包含其直属上级员工信息(使用 association 标签完成),用JUnit测试接口输出。
4、查询所有职务信息,并包含处于此职务的员工信息(包括所属部门名称)(职务到员工之间属于1对多的关系,员工到部门之间属于1对1关系),用JUnit测试接口输出。

项目准备:

  • 创建 maven 项目导入依赖
    <dependencies>
        <!-- MyBatis依赖  -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.0</version>
        </dependency>
        <!--  mysql数据库连接驱动依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
        </dependency>
        <!-- log4j日志文件依赖 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>compile</scope>
        </dependency>
        <!--        日志支持  -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.9.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.9.1</version>
        </dependency>
    </dependencies>

如遇编译版本不符错误在父级导入如下依赖:

    <!-- 设置 build 编译等级 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 数据库准备:
-- 员工表建表语句
CREATE TABLE `t_employee` (
  `e_id` int(3) NOT NULL AUTO_INCREMENT COMMENT 员工ID,
  `e_name` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT 员工姓名,
  `p_id` int(10) DEFAULT NULL COMMENT 员工职务,
  `e_date` date DEFAULT NULL COMMENT 入职时间,
  `e_salary` double(10,2) DEFAULT NULL COMMENT 薪水,
  `mar_pid` int(3) DEFAULT NULL COMMENT 上级管理员id,
  `d_id` int(3) DEFAULT NULL COMMENT 部门id,
  `e_flag` int(2) DEFAULT 1 COMMENT 删除标志 1为存在,0为删除,
  PRIMARY KEY (`e_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- 员工表数据
INSERT INTO `t_employee` VALUES (16, 李四1, 3, 2020-10-24, 3500.00, 18, 1, 1);
INSERT INTO `t_employee` VALUES (17, 李四2, 3, 2020-10-24, 3500.00, 18, 1, 1);
INSERT INTO `t_employee` VALUES (18, 李四部门经理, 2, 2020-10-24, 5500.00, 28, 1, 1);
INSERT INTO `t_employee` VALUES (19, 王五1, 3, 2020-10-24, 3500.00, 21, 2, 1);
INSERT INTO `t_employee` VALUES (20, 王五2, 3, 2020-10-24, 3500.00, 21, 2, 1);
INSERT INTO `t_employee` VALUES (21, 王五部门经理, 2, 2020-10-24, 5500.00, 28, 2, 1);
INSERT INTO `t_employee` VALUES (22, 张飞1, 3, 2020-10-24, 3500.00, 24, 3, 1);
INSERT INTO `t_employee` VALUES (23, 张飞2, 3, 2020-10-24, 3500.00, 24, 3, 1);
INSERT INTO `t_employee` VALUES (24, 张飞部门经理, 2, 2020-10-24, 5500.00, 28, 3, 1);
INSERT INTO `t_employee` VALUES (25, 关羽1, 3, 2020-10-24, 3500.00, 27, 4, 1);
INSERT INTO `t_employee` VALUES (26, 关羽2, 3, 2020-10-24, 3500.00, 27, 4, 1);
INSERT INTO `t_employee` VALUES (27, 关羽部门经理, 2, 2020-10-24, 5500.00, 28, 4, 1);
INSERT INTO `t_employee` VALUES (28, 总经理, 1, 2020-10-24, 8500.00, NULL, 4, 1);
INSERT INTO `t_employee` VALUES (30, 小乔, 3, 2020-10-25, 3500.00, 18, 1, 1);

-- 部门表建表语句
CREATE TABLE `t_department` (
  `d_id` int(3) NOT NULL AUTO_INCREMENT COMMENT 部门表id,
  `d_name` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT 部门名称,
  `d_flag` int(2) DEFAULT 1 COMMENT 删除标志 1为存在  0为删除,
  PRIMARY KEY (`d_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

--  t_department 部门模拟数据
INSERT INTO t_department (d_name) VALUE (开发部);
INSERT INTO t_department (d_name) VALUE (财务部);
INSERT INTO t_department (d_name) VALUE (人事资源部);
INSERT INTO t_department (d_name) VALUE (运维部);


-- 职务表建表语句
CREATE TABLE `t_post` (
  `p_id` int(3) NOT NULL AUTO_INCREMENT COMMENT 职务表id,
  `p_name` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT 职务表名称,
  `p_flag` int(2) DEFAULT 1 COMMENT 删除标志,
  PRIMARY KEY (`p_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- 职务数据插入
INSERT INTO t_post (p_name) VALUE(总经理);
INSERT INTO t_post (p_name) VALUE(部门经理);
INSERT INTO t_post (p_name) VALUE(普通职员);
  • 项目搭建

技术图片                         技术图片

 

 项目结构搭建好

  • 截图介绍

技术图片

技术图片

 

 测试类生成:

技术图片

 

 快捷键:alt + ins   选择 Test选项

技术图片

 


以上是关于mybatis练习的主要内容,如果未能解决你的问题,请参考以下文章

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

mybatis学习(39):动态sql片段

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

MyBatis的动态sql小练习,小回顾

SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

mybatis动态sql片段与分页,排序,传参的使用