博客管理系统

本文介绍了基于SSM(Spring、SpringMVC、MyBatis)框架开发的博客管理系统,详细阐述了系统功能、前后端技术、数据库设计以及各个模块的开发过程,包括登录、新增文章、文章保存至数据库和文章列表显示的实现细节。

博客管理系统介绍

	基于SSM框架,实现博客管理系统,可以进行新增文章、文章浏览等功能。本文重点讲解后端部分,前端内容暂不介绍。

系统实现的功能点

		1、用户权限管理:普通用户只能浏览文章,管理员用户可以编写文章
		2、博客列表展示:文章按发布时间展示,展示内容包括:博客类别、标签、博客名称、作者名、发布时间、浏览量、博客内容概括
		3、博客详情页面展示:包括博客名称、作者、时间、标签、类别
		4、博客后台列表:博客检索、博客列表、博客操作
		5、新增博客功能:支持富文本编辑

博客设计技术

前端技术

前端技术使用:jsp、Ajax、前端框架bootstrap、富文本编辑器:百度UEditor

后端技术

后端技术使用:SSM框架、Java、MySQL数据库、JSON数据处理

数据库设计

用户表(t_manager):账号id、账号名称、账号密码

文章表(t_article):文章id、分类id、标题、内容、文章简介、状态、作者、发表时间、浏览量。

博客/标签对应表(t_article_tag):文章id、标签id

标签表(t_tag):标签id、标签名称

类别表(t_category):类别id、类别名称、图片样式、别名、排序

文章表: 
t_article | CREATE TABLE `t_article` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `categoryId` int(11) NOT NULL COMMENT '分类id',
  `title` varchar(40) NOT NULL COMMENT '标题',
  `content` blob NOT NULL COMMENT '内容',
  `decription` varchar(500) NOT NULL COMMENT '文章简介 用于列表显示',
  `statue` int(11) NOT NULL DEFAULT '0' COMMENT '状态 0:正常  1:不执行',
  `author` varchar(15) DEFAULT '张宇轩' COMMENT '作者',
  `createTime` datetime NOT NULL COMMENT '发表时间',
  `showCount` int(11) NOT NULL DEFAULT '0' COMMENT '浏览量',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='文章表' 

文章标签对应表:
t_article_tag | CREATE TABLE `t_article_tag` (
  `articleId` int(11) NOT NULL COMMENT '文章Id',
  `tagId` int(11) NOT NULL COMMENT '标签Id',
  PRIMARY KEY (`articleId`,`tagId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文章标签中间表'

标签表:
| t_tag | CREATE TABLE `t_tag` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tagName` varchar(25) NOT NULL COMMENT '标签名称 唯一',
  PRIMARY KEY (`id`),
  UNIQUE KEY `tagName_UNIQUE` (`tagName`)
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COMMENT='标签表'

类别表:
 t_category | CREATE TABLE `t_category` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `categoryName` varchar(20) NOT NULL COMMENT '分类名称 唯一',
  `iconClass` varchar(45) NOT NULL COMMENT '图片样式',
  `aliasName` varchar(20) NOT NULL COMMENT '别名 唯一 比如新闻 就用News代替 栏目Id不显示在url中',
  `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序 (0-10)',
  PRIMARY KEY (`id`),
  UNIQUE KEY `aliasName_UNIQUE` (`aliasName`),
  UNIQUE KEY `categoryName_UNIQUE` (`categoryName`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='分类表 只支持一级分类 如果需要分多个层次 用标签来协助实现'

用户表:
| t_manager | CREATE TABLE `t_manager` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(25) NOT NULL COMMENT '用户名',
  `password` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8    |

各表之间的关系如图所示

详解博客

搭建博客整体目录结构

博客目录

配置SSM框架所需的依赖等

我们使用SSM框架,就必须导入响应的依赖,以下是我们需要的依赖:

 <!--  字符编码 -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <org.springframework.version>4.1.0.RELEASE</org.springframework.version>
    <druid.version>0.2.6</druid.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- Spring Start -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

    <!-- Spring End -->

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>${druid.version}</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.0.5</version>
    </dependency>


    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.2.4</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.2.1</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.3</version>
    </dependency>

  </dependencies>

<!-- 部署服务器所需依赖 -->
	 <plugin>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-maven-plugin</artifactId>
          <version>9.0.0.v20130308</version>
          <configuration>
            <httpConnector>
              <port>8080</port>
            </httpConnector>
          </configuration>
        </plugin>

我们看到,上面有的依赖中,我们使用了${…},这表示,我们引用了自己所配置的iml文件,所以我们还需要自己配置以下iml文件如下:

 <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
      <output url="file://$MODULE_DIR$/target/classes" />
      <output-test url="file://$MODULE_DIR$/target/test-classes" />
      <content url="file://$MODULE_DIR$">
        <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
        <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
        <excludeFolder url="file://$MODULE_DIR$/target" />
      </content>
      <orderEntry type="inheritedJdk" />
      <orderEntry type="sourceFolder" forTests="false" />
      <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
      <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.2" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-context:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-core:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.3" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-web:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.1.0.RELEASE" level="project" />
      <orderEntry type="library" name="Maven: com.alibaba:druid:0.2.6" level="project" />
      <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.0.5" level="project" />
      <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.4" level="project" />
      <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.1" level="project" />
      <orderEntry type="library" name="Maven: javax.servlet:js
博易的功能特性】 新一代的博客 博易集众多博客的新功能于一体,是一款名副其实的新一代博客的典型范例!无刷新的日历、评论、回访功能无不体现了AJAX在博客中的娴熟运用! 成熟的系统架构 专业的团队用专业的框架开发出的产品。基于微软的.Net 2.0,作者对OOP具有着深入的理解,并对.Net特性有着透彻的研究。博易的系统架构和编码风格不能不说是OOP的设计典范! 方便的内容导入导出 博易后台提供了内容的导入和导出功能,生成一个XML文件。便利地解决了博客搬家的麻烦! 先进的评论体系 评论是博客极为重要的组成部分,博易用AJAX技术提供了一组先进的评论体系!该评论体系支持国别选择、发表评论支持实时预览、个性头像、聚合式评论……所有的这些都可以由管理员在后台做便捷的编辑调整! 无须数据库且支持多种数据库 默认采用基于 XML 的数据存储方式,此种方式提供几乎与静态网页相当的访问效率(避免了数据库并发查询的瓶颈)。同时也可以扩展支持SQL Server、Access等多种数据库存储方式。 独立页面发布功能 除了标准的博客日志,博易还支持在线发布静态页面!这些页面是独立的,对发布各种信息尤为有用! 多用户支持 博易对多用户共同创作、维护博客提供了全面的支持,博易允许多个用户维护同一个博客。访问者可以订阅任意一个博客用户的RSS feed、仅关注他们感兴趣的某个博客用户的日志! 多语言支持 博易支持多语言,您可以在全球任意地区的服务器上运行博易,而不用担心服务器时间和本地时间存在时差的问题。 Trackback 和 Pingback 特性 博易可以对所有链出的链接进行Track回溯和Ping回溯,您的博客链接将自动出现在您引用的博客的评论列表之中!提高您博客的链入指数、在无形之中推广了您的博客!每当创建一个新的日志,博易就会自动完成PingTechnorati、Feedburner、Ping-o-Matic等操作! 灵活易用的插件机制 博易采用了灵活强大的C#开发,架构十分先进成熟,她的插件机制也是如此。系统开放了事件定义,利用订阅事件能够使所开发的插件强大得如同系统程序本身一样! 酷炫主题支持 博易为快速开发主题(模板、风格)提供了支持,用户只需要稍稍懂得HTML和CSS便可进行主题的制作!博易的模板机制是基于.Net2.0的MasterPage的,这样,开发一套新的主题模板只需要修改3~5个文件即可完成!与此同时,博易有专业的设计师为您免费提供更多的个性主题!此外,博易还支持识别移动设备(如手机等)。能分别制定在用这些设备访问和用PC机访问时所用的主题模板! 符合 XHTML 博易所用的控件全部符合XHTML 1.0标准。所有的日志都会在您发表时自动转换成符合标准的格式!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值