zoukankan      html  css  js  c++  java
  • 基于JAVA的B/S网络相册管理系统

    每天记录学习,每天会有好心情。*^_^*

    今天和一个朋友共同完成了一个网络相册管理系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架。我这个朋友知识有限,只会这个框架,哈哈,都是为了方便他。和往常一样选用简单又便捷的MYECLIPSE作为开发工具,这是一个 后台项目。这个系统的介绍是这样的:随着网络科技的发展,云端技术的完善,越来越多的网络用户喜欢将文件等信息放置在网络上,既方便下载浏览,又减少携带的麻烦。这其中又以上传相片至网络最为兴盛,在网络上晒相片已经成为一种时尚潮流,这记录着用户的生活经历和足迹,不但能起纪念作用,更是与他人分享自己人生经历与知识的渠道。随着国外著名图片分享应用Instagram不断火热,关于网络分享与存储图片的应用也慢慢增多,网络相册服务也因此应运而生并日趋盛行。网络相册不但能解决用户自身的存储问题,增进人与人之间的联系分享朋友快乐的重要途径,更体现着互联网分享的精神。由于信息交流的多样化,特别是电子信息技术的发展,同时,随着数据库技术,客户/服务器技术等的发展,使得网络相册系统的功能更加完善。网络相册管理系统的特点是从相册管理的角度出发,通过数据库将几乎所有与之相关的数据统一管理起来,从而形成了集成的信息集。网络相册管理系统较好的用户界面,信息共享,信息管理使得管理人员和用户使用更加的便捷,而且网络相册系统的可操作性非常强,针对不同教育程度的人群。本文以此为背景,采用软件工程的方法,结合实际,从网络相册发展的现状和功能分析出发,确立网络相册系统建设的目标,一个网络相册管理系统应包含用户角色有管理员、用户。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。
    系统中用户、类型之间存在关联关系,我们将其关联关系保存在相册表中。他们的关联关系是这样的相册的用户与用户的mingzi字段对应、相册的用户id与用户的id字段对应、相册的类型与类型的mingzi字段对应、相册的类型id与类型的id字段对应
    。图片的存在是为了能更好的结合系统的功能。相册表的联系在这张表中得以体现,其关联关系为图片的相册与相册的biaoti字段对应、图片的相册id与相册的id字段对应

    总结得出该系统所有数据为:管理员(admin)、用户(yonghu)、相册(xiangce)、类型(leixing)、图片(tupian)

    管理员表

    字段名 | 类型 | 属性 | 描述
    id | INT(11) | PRIMARY KEY | 管理员id
    username | VARCHAR(255) | | 账号
    password | VARCHAR(255) | | 密码

    用户表

    字段名 | 类型 | 属性 | 描述
    id | INT(11) | PRIMARY KEY | 用户id
    mingzi | VARCHAR(255) | | 名字
    username | VARCHAR(255) | | 账号
    password | VARCHAR(255) | | 密码
    jieshao | VARCHAR(255) | | 介绍

    相册表

    字段名 | 类型 | 属性 | 描述
    id | INT(11) | PRIMARY KEY | 相册id
    biaoti | VARCHAR(255) | | 标题
    jieshao | VARCHAR(255) | | 介绍
    yonghu | VARCHAR(255) | | 用户
    yonghuid | VARCHAR(255) | | 用户id
    leixing | VARCHAR(255) | | 类型
    leixingid | VARCHAR(255) | | 类型id

    类型表

    字段名 | 类型 | 属性 | 描述
    id | INT(11) | PRIMARY KEY | 类型id
    mingzi | VARCHAR(255) | | 名字

    图片表

    字段名 | 类型 | 属性 | 描述
    id | INT(11) | PRIMARY KEY | 图片id
    biaoti | VARCHAR(255) | | 标题
    miaoshu | VARCHAR(255) | | 描述
    shangchuanshijian | VARCHAR(255) | | 上传时间
    tupian | VARCHAR(255) | | 图片
    xiangce | VARCHAR(255) | | 相册
    xiangceid | VARCHAR(255) | | 相册id
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    
    -- ----------------------------
    
    -- Table structure for ggwangluoxiangce
    
    -- ----------------------------
    
    DROP TABLE IF EXISTS `t_admin`;
    
    CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)
    
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';
    
    -- ----------------------------
    
    DROP TABLE IF EXISTS `t_yonghu`;
    
    CREATE TABLE `t_yonghu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`jieshao` VARCHAR(255) DEFAULT NULL COMMENT '介绍',PRIMARY KEY (`id`)
    
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户';
    
    -- ----------------------------
    
    DROP TABLE IF EXISTS `t_xiangce`;
    
    CREATE TABLE `t_xiangce` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '相册id',`biaoti` VARCHAR(255) DEFAULT NULL COMMENT '标题',`jieshao` VARCHAR(5000) DEFAULT NULL COMMENT '介绍',`yonghu` VARCHAR(255) DEFAULT NULL COMMENT '用户',`yonghuid` INT(11) DEFAULT NULL COMMENT '用户id',`leixing` VARCHAR(255) DEFAULT NULL COMMENT '类型',`leixingid` INT(11) DEFAULT NULL COMMENT '类型id',PRIMARY KEY (`id`)
    
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='相册';
    
    -- ----------------------------
    
    DROP TABLE IF EXISTS `t_leixing`;
    
    CREATE TABLE `t_leixing` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '类型id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',PRIMARY KEY (`id`)
    
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='类型';
    
    -- ----------------------------
    
    DROP TABLE IF EXISTS `t_tupian`;
    
    CREATE TABLE `t_tupian` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '图片id',`biaoti` VARCHAR(255) DEFAULT NULL COMMENT '标题',`miaoshu` VARCHAR(5000) DEFAULT NULL COMMENT '描述',`shangchuanshijian` VARCHAR(255) DEFAULT NULL COMMENT '上传时间',`tupian` VARCHAR(255) DEFAULT NULL COMMENT '图片',`xiangce` VARCHAR(255) DEFAULT NULL COMMENT '相册',`xiangceid` INT(11) DEFAULT NULL COMMENT '相册id',PRIMARY KEY (`id`)
    
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='图片';

    添加图片模块:

    系统中存在添加图片功能,通过点击添加图片可以跳转到该功能模块,在该功能模块中,填写对应的图片信息。图片包含信息标题,描述,上传时间,图片,相册,相册id,填写完所有信息后,通过post方法将数据提交到tianjiatupian.action中,该地址将在服务器中tupianController类中的tianjiatupianact方法中进行响应。响应结果为,获取所有的图片信息,封装一个tupian类,使用tupianController类中定义的tupiandao的insert方法,将图片数据插入到数据库的tupian表中。并给出用户提示信息,添加图片成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:

    通过tupiandao的insert方法将页面传输的图片添加到数据库中 tupiandao.insert(tupian);

    将添加图片成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加图片成功");

    返回图片管理界面

    return "forward:/tianjiatupian.action";

    查询图片模块:

    在后台中定义图片查询模块,在侧边栏中点击图片管理,可以跳转到图片管理界面。在该页面中通过tupianController中定义tupianguanli响应图片查询模块。在tupianguanli中查询出所有信息,返回页面进行循环展示。查询方法为tupiandao中的selectByexample方法。该部分核心代码如下:

    生成图片样例类,通过example定义查询条件 TupianExample example = new TupianExample();

    通过tupiandao的selectByExample方法查询出所有的图片信息 List tupianall = tupiandao.selectByExample(example);

    将图片信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("tupianall", tupianall);

    返回图片管理界面

    return "forward:/tupianguanli.action";

    修改图片模块:

    对已经上传的图片信息可以进行修改操作,该部分操作在图片管理界面中点击修改按钮可以跳转到图片修改页面。在修改页面中,将初始化所有的图片字段信息,字段信息包括标题,描述,上传时间,图片,相册,相册id。字段信息内容通过图片id获取。修改后的信息传入到tupianController中接收为tupian。在tupianController中包含有提前定义好的tupiandao,该参数为tupianMapper是实现。tupianMapper中定义了修改方法,此处使用修改方法为updateByPrimaryKeySelective,该方法可以将修改后信息同步到数据库中,最终将修改成功信息返回页面中。该部分代码如下:

    通过tupiandao的修改方法根据id修改对应的图片 tupiandao.updateByPrimaryKeySelective(tupian);

    将修改图片成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改图片信息成功");

    返回图片管理界面

    return "forward:/tupianguanli.action";

    删除图片模块:

    在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该图片

    的id上传到服务器中,在服务器中通过tupianController类中的shanchutupian进行接收,之后调用tupianMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:

    通过tupiandao的删除方法根据id删除对应的图片 tupiandao.deleteByPrimaryKey(id);

    将删除图片成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除图片成功");

    返回图片管理界面

    return "forward:/tupianguanli.action";

  • 相关阅读:
    Java多线程-死锁
    Java多线程-BlockingQueue
    Java多线程-Object.wait()
    Java多线程-System.exit(0)的作用
    Java多线程-线程状态
    关于j = j++在循环中执行的问题
    ThreadLocal的学习
    Java多线程-ReentrantLock重入锁同步线程源码学习
    Java中为什么可以用一个char(两个字节)表示一个中文字符
    我对Java动态代理的理解
  • 原文地址:https://www.cnblogs.com/lqs11/p/11593897.html
Copyright © 2011-2022 走看看