Java SSM 毕设过程记录笔记(01)

考勤信息展示-》注册功能-》添加课程-》完善其他功能即可!!!

mybatis连接mysql8.0

MySQL8.0数据库配置变更:
1,jdbc_driver=com.mysql.cj.jdbc.Driver,原先的com.mysql.cj.jdbc.Driver已不推荐使用;
2,jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC

pom数据库驱动程序用最新的8.0.11:

mysql
mysql-connector-java
8.0.11

【Tomcat】Tomcat部署Web应用时出现异常

查如下的页面:
在这里插入图片描述

SSM框架使用过程中的中文乱码问题

在这里插入图片描述
在tomcat Server中设置 VM options , 值为 -Dfile.encoding=UTF-8
在这里插入图片描述
https://blog.csdn.net/win_best/article/details/79941840
https://www.cnblogs.com/xianyao/p/11006220.html

JSONObject的问题

原先用的是 org/json 库,但是像下面这样写前端一直收不到后端穿过去的数据。

@Controller
public class FaceSignInController {
    @RequestMapping("/FaceSignIn")
    public void FaceSignIn(HttpServletResponse response) throws Exception {
        System.out.println("旅法 v 开放");
        JSONObject result = new JSONObject();
        result.put("flag", true);
        result.put("msg", "hello world !!! ");

        System.out.println(result);

        response.setContentType("text/json");
        ResponseUtil.write(response, result);
    }
}

后来改成了 com.alibaba.fastjson.JSONObject后成功运行。

@RequestBody Map<String, String> map无法使用的问题

报错:HTTP 415 错误 – 不支持的媒体类型(Unsupported media type)

解决:pom.xml添加jackson包引用;

 <!--    jackson 依赖 -->
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.10.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.10.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.10.1</version>
        </dependency>

参考:https://blog.csdn.net/qq_27379721/article/details/86616603
https://blog.csdn.net/kingtracy8/article/details/78076024?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

shiro

AuthenticatingRealm-------->用于认证方法的Realm

AuthorizingRealm--------->用于授权和认证的realm一般使用这个

AuthorizingRealm继承于AuthenticatingRealm但是没有实现父类的doGetAuthenticationInfo方法

设计问题

1.shiro 的doGetAuthenticationInfo无法传入其他参数的问题

数据库设计如下时:
在这里插入图片描述
前端传入登录时用户选择的角色,直接在对应的表中进行查询即可。但是shirod的currentUser.login(token) 只传入username和password。无法传入其他参数。

如何解决:
在这里插入图片描述

Mybatis (ParameterType) 如何传递多个不同类型的参数

https://www.jianshu.com/p/d977eaadd1ed

如何将前端页面传过来的数据,对应到自己写的类中?

在这里插入图片描述

shiro 标签

https://www.cnblogs.com/roxy/p/7688092.html
(在我的实验课考勤管理系统中,一个用户不可能有两个角色!)

mysql 时间选择:https://www.cnblogs.com/Jie-Jack/p/3793304.html

WEB-INF下的jsp不能访问的问题

当浏览器访问Result.jsp时,无法正常显示,通过了解才得知,原来Tomcat WEB-INF目录下的文件,浏览器一般无法直接方法,只能通过重定向后才可以访问,如果需要直接访问,可以放在和WEB-INF同级目录下。

https://blog.csdn.net/w522301629/article/details/82687076

mybatis 如何自己构造表名进行查询?

mybatis传递参数有两种方式
#{param} 这种传递的是带双引号的变量
${param} 这种传滴的是字面量

https://blog.csdn.net/weixin_34184561/article/details/88001678

在这里插入图片描述
MySQL之日期时间类型

SQL 数据类型

MYSQL选型记录

使用varbinary还是varchar???

MySql 字段类型对应 Java 格式化类型

https://www.cnblogs.com/loveer/p/11604423.html

尽量前后端分离。也就是说不使用前后缀,视图等等。

对于签到的信息而言,该系统不显示具体的签到时间。但是在签到端会有非常详细的提示。如:签到成功,但是迟到,已经超过签到时间等等。

前端无法进行前进与后退的功能没有实现。

多学期的功能

(半小时之前打卡为成功,之后十分钟打卡为迟到)

遗留问题: Java 读取mysql时间timestamp差8小时问题

https://blog.csdn.net/babybabyup/article/details/97802707
https://blog.csdn.net/as849167276/article/details/88198175

项目组织参考:阿里巴巴Java开发手册

https://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247485409&idx=1&sn=453877c11ead49e90937885b5ac7d2f2&chksm=fdded125caa958333490c0a1f7b2ca76bdc84334a8cc87adc230bb19230eac674b4f6eb0d9aa&scene=21#wechat_redirect

如何实验参数校验:Hibernate-Validator

https://blog.csdn.net/fred_lzy/article/details/81099699

那个学生属于那个班级,那个专业是规定好了的!!!!
老师有可能跨专业吗?答案:是可能的!!!

删除一门课程就要删除上课的所有学生,以及其他信息

https://www.runoob.com/angularjs/angularjs-intro.html

我们建议把脚本放在 <body> 元素的底部。
这会提高网页加载速度,因为 HTML 加载不受制于脚本加载

destory,然后再绘制自己需要的table
在这里插入图片描述

大问题的解决:实现了页面的点击进入,然后重新加载页面的功能。耗时:几乎一周,解决方法:

load(url,data,function(response,status,xhr))

https://www.w3school.com.cn/jquery/ajax_load.asp

jquery.load()函数 在JSP中局部加载刷新页面时的参数传递及获取

现在是4月13号 半夜12:35 此问题终于解决。

在这里插入图片描述

// mybatis 总的异常处理

import org.apache.ibatis.exceptions.PersistenceException;

https://www.cnblogs.com/z-qinfeng/p/11489323.html

ajaxFileUpload 总是出现500(POST)的错误,参照网上很多方法都无法解决!

在这里插入图片描述
增加 handleError函数也无法解决。可能是因为太久了。转战FormData+ajax实现。
不过我一直忽略的一个问题就是:1、springmvc项目想要上传文件,需要使用multipart方
式,所以在spring-mvc.xml配置文件中需要增加multipart相关配置,代码如下

 <!-- 配置 MultipartResolver -->
    <!--    springmvc项目想要上传文件,需要使用multipart方式,所以在spring-mvc.xml配置文件中需要增加multipart相关配置-->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="maxUploadSize" value="4095000"/>
    </bean>

在这里插入图片描述

springmvc+ajax+formdata上传图片

Mybatis foreach 如果有单个参数的话,需要构造Map去传参。

Mybatis如果数据库里面之前就有一些数据的话,插入会有问题。正常处理!!!😘

https://my.oschina.net/zjllovecode/blog/1818716

BootstrapTable 分页属性(sidePagination)设置错误 导致数据无法渲染

https://blog.csdn.net/xueshr/article/details/89402393

bootstrap-table插件使用总结

如何选择哪一端分页的问题??

建议:数据量较小的情况可以选择客户端分页,数据量庞大的话建议还是选择服务端分页。

决定:统一采用客户端分页。

最后优化:参考阿里巴巴JAVA开发手册进行规范化

在这里插入图片描述

我应该看的是 JAVA SDK文档

JAVA SDK文档

JAVA枚举类型的使用

一个专业一个 group_id。更加利于检索人脸。!!
一直忘了性别这个元素!!待日后添加!!
处理 Excel 文件解析工具:https://github.com/alibaba/easyexcel

如何实现学号增加

FormData文件上传踩坑记录

上传一个test1文件可以,但是上传test2文件就不可以。检查MultipartResolver的配置。
我遇到的是:<property name="maxUploadSize" value="10485760"/>超出限制!!!

出现获取不到的情况!!!!先留下以后解决

彻底完善考勤端----

课程可能会有很多很多。但是自己上的课程总是有限的!!!所以
考勤端的要求是:简洁,能够实现迅速考勤打卡。尽量保证用户少输入信息。
目前就先只输入所需要考勤的课程即可。学生的其他信息通过人脸照片获得。如果真的要实施这个系统的话,应该是要有一个课程下发系统才行。只要输入网址,拍照签到即可。

实时监控input框,实现输入框与下拉框联动

# 实时监控input框,实现输入框与下拉框联动

在这里插入图片描述
生成的 id 有问题。真的是让我很奇怪的一点。
在这里插入图片描述

实验课也应该分是否是周末!!
前半小时,后十分钟

如何修改 String 的值。
String、StringBuffer和StringBuilder的区别
在这里插入图片描述

处理好异常以及500,404页面的处理!!!

拓展功能:请假功能!!!
要不要做自己更新自己人脸照片的功能???答案:不做。
需不需要做自己查看自己人脸照片的功能呐???答案:我也不确定!!!

在这里插入图片描述
选择考勤状态时,bootstrap-table不变化显示。解决:和字段不排序一样,取消服务端分页参数即可。

在这里插入图片描述

版本更新之后:侧边栏点击不展开了!!!!!解决:回退到原来的版本。。

如何实现请假功能呐:事先请假,老师批准,完成标志位设置
申诉,撤回申诉,老师批准

老师的考勤信息查看功能:一切实现站在老师的角度去看。
考勤统计应该以天为单位了!!!

在这里插入图片描述
考勤记录展示一周的即可。假如一个老师交两门课。交5个班,不会跨专业吧?
答案:是会的。

那么一天就是:52 条记录。一周就是:105= 50 条记录。

如何知道一个专业有那几个班级呐?
major_id ,class_id
1,1
1,2
1,3
1,4
1,5
这样就有5个班级的意思。

默认过去一周的数据,可选择过去一个月,所有的数据。

MyBatis 大于小于符号需要进行转义。

https://blog.csdn.net/w359677142/article/details/94554753

https://blog.csdn.net/qq_41570658/article/details/90713145

对于老师查看考勤的页面不提供查看全部考勤情况的数据,因为可能会太多。之后如果有需求的话,我再加上即可!!!

在这里插入图片描述
在这里插入图片描述
如何解决的这个问题:
在这里插入图片描述

在这里插入图片描述
会出现全是0的情况吗?答案:不会。因为一般该班级没有人就返回了空数据。不会显示出来!!!

添加一个学生进入一门课的逻辑:course_student ->sign_case 初始化。删除,导入也同理!!

有没有可能只有一个班的一个人上某门课程???
在这里插入图片描述
新增一名学生就会增加一条考勤记录(course_id,student_id,bitmap)。查看考勤的时候先会去根据major_id与class_id去查出这个班级所有的学生,然后就会得到他们的student_id。然后会去查考勤记录。那么如果发生一个班的一个人上某门课程的情况,其他人的 student_id 就是会查不到任何数据,这时候只需要不显示就行了!!!

新功能:(1)请假 (2)互相聊天功能(关于请假)

mybatis SQL语句返回值

详解mybatis的create,retrieve,delete,update返回值。

首先就不应该出现这种Course_student上有记录,而sign_case上没有记录的情况。

开发测试阶段的数据规模:

student: 30
teacher:
admin: 1

Bug1

在这里插入图片描述

在这里插入图片描述
明明焊接实验拥有很多专业的很多学生,但是确没有他们的考勤信息。

在这里插入图片描述
最应该做分页和添加多个选项的页面。

课时可能会提前确定,但是上课时间表可能不太会立马就确定好。 后期再提供修改即可。

Bootstrap中的datetimepicker用法总结

# Bootstrap中的datetimepicker用法总结

java中String转Date与Date转String

# java中String转Date与Date转String

在这里插入图片描述

Bootstrap表单验证插件bootstrapValidator使用方法整理
插件介绍

MyBatis insert实体返回主键

# MyBatis insert实体返回主键

这里查找课程时间表的时候,让mysql自己去查前半个小时,后十分钟的话,会出现多个结果吗?

在这里插入图片描述

答案是:不会,除非课程安排间隔少于半个小时!!!

Mysql中将日期转化为毫秒

# Mysql中将日期转化为毫秒

JAVA List如何去重?

https://blog.csdn.net/qq3434569/article/details/100520524

将自定义对象存入到HashSet集合中并去除重复元素

对于在@transactional注解起作用的前提下判断事务是否成功的解决方式

https://blog.csdn.net/wufeiha/article/details/80961965

在这里插入图片描述

在这里插入图片描述

日期格式统一采用 String 的方式去展示。如果需要进行转化即可。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值