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