分为两种情况
1,在文档中描述遇到的问题,如开题报告等文档。
2,在项目代码答辩中使用。
一 文档中写
1)不同用户的登录问题:根据用户的类别(管理员、普通用户)实现用户操作权限的区分并显示不同的操作界面。
2)数据库的连接问题:数据库连接为系统中的关键技术。
3)数据的一致性和安全问题:本系统必须保证数据的一致性和安全,才能实现有效的管理。不能让没有权限的用户对数据进行操作并且定期对数据库进行备份。
4)界面开发:系统界面的设计很重要,要使界面具有亲和力。
5)多表之间的条件查询:本系统涉及到很多查询,对一些复杂的查询必须经过严谨的分析后再写出查询的数据库语句并且要优化查询方法。
完成本课题所必须的工作条件及解决的办法:
(1)学习并掌握网站开发工具ECLIPSE编译器、Dreamweaver网页编辑器、mySql数据库管理系统。
(2)进行网站需求性分析,包括网站的功能需求并设计流程图,网站的性能需求以及建立网站需要注意的其他各项要求。
(3)进行网站数据库的结构分析,包括逻辑结构分析和物理结构分析
(4)进行网站界面的设计,把各个功能模块排列组合,其中包括对首页、用户登录界面、后台登陆界面、后台主界面、后台各功能模块的设计。
(5)安装部署。检查安装环境并参照使用说明下载安装登陆
研究困难及解决方法
1、界面方面:系统有“登陆”、“运行”、“退出”三个界面。每个界面对应系统不同的运行状态,对权限校验及控制(具体由登录系统人员的身份而定)。
2、安全性方面:设立用户名和密码验证方式,同时设置登录拦截器和过滤器等方式,防止非法用户登录和越权操作。同时将重要信息的维护只限于服务器端,避免了远程维护带来的安全隐患。
3、数据可视化:对数据进行可视化分析与统计,利用Echarts技术实现多种图形界面的展示。
4、其他:数据库设计应该达到BCNF的要求,保证数据的完整性;使用其他辅助工具对系统的界面进行美化和布局,以达到更好的效果。
通过使用Mysql设计网站的数据库,本网站使用java语言开发,涉及到的语言与技术有Java、SpringBoot。系统功能方面,主要解决以下问题:
(1)评论管理:用户在登录系统网站以后,可以在用户留言区进行留言。也可以看到自己以前的留言信息。
(2)注册、登录:如果用户没有该系统的账户,首先要在首页注册一个账户,然后登陆。如果已经有该系统的账户的就可以利用账户和密码进行登录。商户可以直接登录该系统。
需要解决的关键问题
(1)数据库的设计与建立:数据库的建立是一个很重要的步骤,它关乎网站能不能顺利进行,数据可以在设计网站的时候完善;
(2)系统功能的确立及系统界面的设计:要做好一个网站,必须要先确定网站想要实现的功能,然后分配网站的布局,把握好网站所要体现的内容和所要达到的目的,进行界面的设计;
(3)后台代码的编写:要完成网站想要实现的功能,后台代码的编写是必不可少的,如要实现用户登录的功能,首先必须对用户的信息进行验证,看看数据库中是否有与之匹配的用户信息,此时,就必须通过后台代码的编写来实现对数据库内容的获取和核对;
研究方法及技术途径:
(1)文献研究法。通过调查文献来获得资料,对课题研究中所涉及到的相关内容,如B/S结构技术,初步构想系统要实现的功能及其运用的技术。
(2)定性分析法。通过对文献的研究,运用归纳和演绎、分析与综合以及抽象与概括等方法,理解Spring Boot框架的原理及技术,从而熟悉系统中各个功能模块之间的关系,掌握系统的工作原理及其本质。
(3)验证研究法。在前两步的研究基础上,熟悉了基于Spring Boot框架的原理和技术,在研究过程中排除个人的价值判断,以实际开发测试结果来证明问题,验证所学与所得的正确性。
从系统实现上,采用的是调查法和对比法,利用各方面收集的资料整合,经过对比,选取最适合本软件的开发方法。由于软件中的后台管理部分是基于JavaEE平台的设计,所以我们可以采取其中比较合适的Eclipse以及其MySQL数据库,可以使开发更加便捷,使用B/S架构,用户只需要通过例如Internet Explorer、Chrome等浏览器就可以访问此系统,方便快捷,易于操作。
解决思路
(1)用户信息管理:如果该用户没有注册过该网站,要先注册一个新的账户,然后在登录,如果一个用户他已经在这个网站上注册过自己的信息,就可以直接用自己的已经有的账户和自己已经设定好的密码进行登陆,在成功登陆首页以后就可以对自己的信息进行想要的修改,如:用户名、密码、真实的姓名、地址手机、Email、qq等信息,用户可以选择修改一个信息,也可以修改多个信息,修改完成以后点击保存,就可以修改成功了。
(2)数据的安全性:为了保证该系统的安全不被破坏,这个系统会有实时备份的功能,我们选择在系统的数据库保存过的信息数据,就不会丢失。
二:代码遇到的。
一 关于使用String.valueOf()时需要关注的问题
情况一:
String a = String.valueOf(null);
以上再运行时会抛出空指针异常
情况二:
Long b = null; String a = String.valueOf(b);
综上所述:代码在执行时并不会抛出空指针异常,但是会把null值转化为”null”字符串,从某种意义上会改变原有的代码逻辑
- 在try-catch-finally代码块中return或者throw Exception时需注意的问题
如果三者中均存在return,那么执行的顺序会优先try里的运算表达式但不会马上返回值,而是优先走finally里面的运算表达式,这样try里return的值并不是开始想要的,而finally中return值是不生效的,而是走try或catch中的return值;此外try中出现异常的位置不同也会导致最终的结果不一样
- 新项目启动时依赖缺失问题
新项目中明明Maven已经正常下载完所有的依赖了,但是在启动服务时还是会出现依赖缺失等异常的问题?
这是因为spring在启动时会忽略pom.xml文件中带<scope>provided</scope>标签的依赖,最终导致依赖出现缺失的问题,解决方法:
①找到这些依赖并注释该标签内容,但需要注意某些项目在上线构建时并不需要这些依赖,所以在上线记得要把注释恢复回来
②(推荐)在idea的启动configurations配置中增加provideds属性
- ArrayList的subList的结果不能强制转换为ArrayList类型
ArrayList的subList的结果不能强制转换为ArrayList类型,否则会抛出ClassCastException异常,subList获取到的是一个List的视图(使用的是List的内部类SubList,和ArrayList之间没有继承关系不能强转),在操作视图的时候将所做的操作同步到原来的List中,并且在这里如果去改变原来的List然后在去获取或者操作subList的话会抛出java.util.ConcurrentModificationException异常
- for循环中不要使用“+”进行字符串的拼接
不建议在for循环中使用“+”进行字符串的拼接,这里的+其实是计算机程序中的一种**===**(指定计算机语言中添加某种语法,这种语法对语言的功能没有影响,但是更方便程序员的使用,语法糖让程序更加简单,有更高的可读性)
字符串拼接的几种方式:
StringBuffer (线程安全,可变)使用append方法进行拼接
StringBuilder(线程不安全,可变)使用append方法进行拼接
StringUtils.join (性能比较差)
”+“: 本质上是通过创建StringBuilder对象然后进行拼接
- 页面两个div之间有一个小margin,样式怎么改都去不掉
解决:html中div换行了,把两个div放到同一行可以解决,还有一种好办法就是使用flex。
七,小数点后乘除得到的结果会有浮动
解决:
去除小数点,加减乘除后城上10的小数点长度的平方之类的,看百度
八,彻底解决IDEA输出中文乱码问题
(1)File -> Settings -> File Encodings下设置编码格式为UTF-8,此种最常见,一般刚装idea或者刚导入项目的时候会遇到此处编码格式未修改的情况。
(2)修改idea.exe.vmoption文件
打开idea安装路径bin目录,找到idea.exe.vmoptions与idea64.exe.vmoptions两个文件
如果你下载的是64位版本的,就只有一个vmoptions文件,这是很正常的,只修改一个就可以了