本系列是为了学习mybatis+spring而做的一个用户管理TODO事项的项目记录,代码的github地址是 https://github.com/kuailenianhua/TODO/ 。
做的是一个比较简单的用户管理TODO事项的小项目,想要实现的主要功能有:
- 用户管理(登录、注销)
- 用户新建TODO项目
- TODO项目中新建步骤
- 项目和步骤标记是否完成
- 截止日期用户提醒(邮件提醒)
- 查看所用用户及其项目
- ……
在项目中可能会用到的技术有:
- mysql数据库,保存数据
- maven,管理项目依赖
- junit,单元测试
- log4j,日志管理
- mybatis,持久层编写
- spring,提供api接口或实现网站
- 前端可能会用到bootstrap、vue.js等
为简单起见,在项目中只创建了三个数据表:
- user(用户表)
- project(项目表,每个用户可以建立多个项目)
- step(步骤表,每个项目可以分为几个小步骤)
创建数据库的sql语句:
create database TODOAPP;
use TODOAPP;
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(30),
password varchar(20),
email varchar(30),
last_login datetime,
PRIMARY KEY(id)
);
CREATE TABLE project(
id int(11) NOT NULL AUTO_INCREMENT,
intro tinyblob,
create_time datetime,
deadline datetime,
user_id int(11),
PRIMARY KEY (id),
KEY `foreign_user_id` (user_id),
CONSTRAINT `project_ibfk_1` FOREIGN KEY (user_id) REFERENCES user(id)
);
CREATE TABLE step (
id int(11) NOT NULL AUTO_INCREMENT,
intro tinyblob,
create_time datetime,
deadline datetime,
project_id int(11),
PRIMARY KEY (`id`),
KEY `foreign_project_id` (project_id),
CONSTRAINT `step_ibfk_1` FOREIGN KEY (project_id) REFERENCES project(id)
);
其中,project和step表中均有外键约束user_id和project_id。
至此,数据库以及创建完毕,接下来就主要完成数据库操作的逻辑部分了。