新闻发布系统:数据库的编码和ssm环境的搭建

概要

 

在上一篇博客  新闻发布系统:需求分析以及项目的设计 我们对这个系统做了一个整体的分析。本篇的博客主要写ssm环境搭建和数据库的编码。

 

SSM环境搭建

各种包的功能 :

entity包:里面的类主要的作用是实体类,与数据库中的表一一对应的。

dao包:数据库操作的接口,对表的增删改查等功能。

service包:主要是逻辑层的代码,业务逻辑相关。

web包(大多数定义的是controller层)主要是与前后端的数据交互处理的功能。

mapper文件夹主要是与dao层接口对应的具体的sql语句,一个dao接口对应一个mapper文件。

mybatis是存放的mybatis配置文件。

spring文件夹存放spring、springmvc相关的配置文件。

以上的各个包和文件夹,是在配置ssm的时候扫描指定的目录,包名、文件夹名可以不一样,但是在配置中需要做相应的更改。

注:ssm的扫描结构是:resources中的配置文件配置扫描java中的包信息和ssm的基础配置信息。

           web.xml中扫描resources中配置文件的配置信息。

 

mybatis的环境搭建

mybatis配置的基础目录。

dao包和mapper对应关系:

但是实现方式也可以直接在接口函数上添加注解写Sql语句,这个方式比较简单,但是sql语句过于复杂的时候会变得冗长。

mybatis和spring整合

扫描包结构示意图。

 

 

 dao、entity、mapper、mybatis扫描示意图。

service层的包扫描示意图

springmvc配置以及web层的扫描

 

 

在很多情况下:post提交会出现乱码,我们在web.xml中配置过滤器,一劳永逸。

 

 

 

这个ssm的配置这个是比较简单,我在Github中已经建立了一个完整的ssm基础框架,下载只需要将jdbc.properties数据库的数据修改成自己的就可以使用了。

ssm基础框架的地址https://github.com/fireshoot/ssm_Configuration。

 

 

数据库的编码

根据上一篇博客新闻发布系统:需求分析以及项目的设计的表设计来创建数据库表

User表:

--数据库初始化脚本

--创建数据库

CREATE database news;

--使用数据库

USE news;


--创建新闻系统的用户

CREATE TABLE user(
`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户名id',
`user_type` bigint NOT NULL COMMENT '用户类别,0:表示普通用户;1:认证用户;2:管理员',
`user_password` VARCHAR(120) NOT NULL COMMENT '用户密码',
`user_name` VARCHAR(120) NOT NULL COMMENT '用户昵称',
`user_email` VARCHAR (20) NOT NULL COMMENT '邮箱',
`user_age` SMALLINT COMMENT '年龄',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (user_id),
KEY idx_user_id(user_id),
KEY idx_user_type(user_type),
KEY idx_create_time(create_time)
)engine=InnoDB auto_INCREMENT=1000 DEFAULT CHARSET=utf8 comment='用户表';

 

news新闻表

 

--创建新闻表

CREATE TABLE new(
`new_id` bigint NOT NULL AUTO_INCREMENT COMMENT '新闻id',
`category_id` bigint NOT NULL COMMENT '类别id',
`user_id` bigint NOT NULL COMMENT '作者的id',
`title` VARCHAR (100) NOT NULL COMMENT '新闻标题',
`content` TEXT NOT NULL COMMENT '新闻内容',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`key_words` VARCHAR (120) COMMENT '新闻关键字',
PRIMARY KEY (new_id,category_id,user_id),
KEY idx_create_time(create_time)
)engine=InnoDB DEFAULT CHARSET=utf8 comment='新闻表';

 

comment评论表和category类别表。


--创建评论表

CREATE TABLE new_comment(
`comment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '评论id',
`new_id` bigint NOT NULL COMMENT '新闻的id',
`user_id` bigint NOT NULL COMMENT '评论者的id',
`content` TEXT NOT NULL COMMENT '评论内容',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY(comment_id,new_id,user_id),
KEY idx_create_time(create_time)
)engine=InnoDB DEFAULT CHARSET=utf8 comment='评论表';

--创建类别表
CREATE TABLE category(
`category_id` bigint NOT NULL AUTO_INCREMENT COMMENT '类别id',
`category_name` VARCHAR (120) NOT NULL COMMENT '类别名称',
PRIMARY KEY(category_id)
)engine=InnoDB DEFAULT CHARSET=utf8 comment='类别表';

 

结语

本次实现了smm的搭建和数据库的编码,ssm的搭建其实也就是dao、service、web层的配置调用;在web.xml中添加过滤器对后期post提交乱码的解决。

ssm搭好的基础框架地址:https://github.com/fireshoot/ssm_Configuration

本项目地址:https://github.com/fireshoot/YxNews

 

 

 

posted @ 2019-01-03 19:41  轻抚丶两袖风尘  阅读(2232)  评论(1编辑  收藏  举报