实习的第一份小作业的一点边写边改的杂乱记录

参考自以下网站:https://blog.csdn.net/qq_23994787/article/details/73612870

梳理一下这个小项目的大致情况(从上到下)
1.dao包:先是创建了一个接口,叫IUserDAO 里面有一些没有被实现的方法:delete add update query 。
1.1dao包之下有一个 imp包用来对这些接口进行具体的实现:主要的作用就是写一些 sql语句(公司用的数据库是pg),目前还是不是很清楚 String[]par 是拿来具体干啥的。。。(按照我的理解,就是写一些可变的参数吧)

2.之后便是重点;datebase 包 一个DBAction ,用来 方法一.连接数据库 方法二:在连接完数据库的前提之前,进行增删查改

3.一个pojo包:有一个user类 ,存在一些私有的变量和调用这些变量的自动生成的do get方法

4.一个service包:有一个IUserService 接口。里面有一些 增删改查的无返回值的方法
4.1 在service包之下,有一个impl 包,用来实现这些接口。并存在异常处理

5 一个 servlet包,写了一个servletDemo的java文件,对servlet初始化,并且在xml 文件中要写入,但是因为这个是自动生成的,所以在xml文件中会帮你初始化,除非你之后要修改,不然不需要动,看一眼就好了。

现在准备在UserServiceImpl 文件中写一个主函数,用来验证一下。
目前好像还可以,都没有问题。

那么现在的问题就在于:ServletTest到底怎么做。。。
其实应该就是测试 servlet中的dopost方法。

在dopost方法中,将参数request通过getMethod方法转化成了一个String类型的变量。
所以在test中,需要做的是,将request通过一个方法获取到一个String 类型的变量。
刚开始想的是,通过getParameter方法
但是报错了;nullpointerException

于是先去看了一下 request能调用的方法
其实想找的就是 如何将一个字符串放入request中和如何把一个字符串从request中取出来

写了一个很赖皮的方法,就是在servlet中重载了dopost方法,即其中一个参数变成了String
所以在调用的时候,可以直接写一个String类型的变量用来直接测试。
之后还剩一个查询的分页
而分页的话,我是直接在sql语句中进行修改。
直接改成了
select user_Id,user_Name, user_PassWord from hq_test.user where user_Id =? order by user_Id limit 5 offset 0

之后发现了一堆需要修改的地方,主要还是因为在DBAction 中设置了许多的常量,即运行的时候可以,但是实际操作性不高,所以需要把很多常量变成变量。
所以刚刚差不多算是明白框架存在的重要性了,相当于就是一种迭代,在一个文件中创建的变量和对应的变量属性,需要一层一层的通过调用方法来实现封装,其二就是每一个方法都是来自于接口,这样可以保证存在一个抽象方法,可以使得之后当一些文件被修改和被替代的时候可以进行修改,其三,其实也就是一种封装,即对实体类的封装,对变量的私有化,将方法给出来

之后还存在两个问题,
1.对configproperties 的配置
2.对test的进行(实在不行,就弄一个前端界面来实现这个)
3.应该是对增删查改四个进行以此的配置servlet文件吧
很多部分知识是在这个网站中学到的:https://blog.csdn.net/qq_23994787/article/details/73612870

现在在进行第一个问题:
参考自该网站:
https://blog.csdn.net/qq_38663729/article/details/78344919

进行到一半,在边上大哥的建议之下,开始写了最重要的那个。
现在没有写test,而是在前端 在语句中 调用 ?xx=addUser
然后在语句中,对request进行获取且判断,如果request获取到的是addUser的话,就调用addUser方法
但是没有成功,所以我打算就直接试一下。

报了一个错误:
网上的解决方式是对tomcat的内存进行扩大。。 但是没有用。。

写了一个test的Java文件,将之前的增删改查都实现了一遍,发现都可以了!!但是很搞笑的是,我之前还一直好奇,为什么只有查询的结果可以被sop,其他的不能。。后来才看到,原来处了查询方法的返回值是有的,其他都是void。。。

所以说现在还是存在两个问题
1.配置cofig文件
2.如何从前端中读取到数值,要不干脆就写一个前端好了。。。

但是发现
Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. 这个问题依然存在,所以准备先看这个问题。
重启了一下就好了。。。。。
看不动了。。
还是先看配置con的吧

又开始一天的完善吧
就先写了一个小测试(但是估计到时候还是会删除,因为毕竟太小儿科了。。不过至少能证明,我增删查改完成了。。)

但是还有几个问题
1.对角色的那几个描述
2.分页具体体现
3.conf的配置
4.servlet的参考

小测试部分已经都好了。
关于配置config的部分,我找到网上的一个教程不知道可不可以用:
https://blog.csdn.net/qq_37162754/article/details/79398260
但是目前来说,报错了。需要再看一下。
先是把con中的这些数据从字符串换成了对应的值
接着报了一个错误:java.lang.ClassNotFoundException: org/postgresql/Driver;

之后又改了一点小细节,比如才con中,去掉每一行的分号。。。

刚刚又鼓捣了两下,一个是把input部分写到了try里面,另一个是把input里面的路径改成了相对路径,就是直接在src下面写了,没想到就成功了,接下来要用排除法来试试看到底是哪个的问题
实验了一下:放到try外面依然可以,但是把路径改成绝对的,就有了问题,那看来排除成功了咯。

然后又手残试试看:
把this.getClass(),换成了Object.class 就报错了。。。
然后又把相对路径改成了绝对路径,再试试看,果然报错。
之后又把this.getClass() 改成了 当前类的.class 然后没改路径,依然是相对路径 发现还是好的。。

所以最大的问题就是存在于,相对路径和绝对路径
参考自:https://blog.csdn.net/gao454917848/article/details/38541369

配置con问题解决!

分页的问题就相当于使用sql语句吧,也不改正了。。

现在还剩
1.servlet 的问题
2.删除的时候,当时写的是批量删除,我现在简单化的改成了删除一个。。。

现在发现还有一个问题在于
角色和用户权限之间的管理。。

关于测试那一部分,实在不行的话,就写一个前端,按照写的测试代码。
显示打入一个值,判断是什么操作。
1.update 的话 要么就是跳转页面 然后再另一个页面: 输入user_name 和user_id 之后再后台数据库显示结果
2.delete 的话 跳转页面:输入user_id就行 然后在数据库中输入结果
3.query的话 跳转页面:输入user_id 然后在页面中输出结果
4.add的话 就跳转页面 输入 user_id,user_name,user_password 之后再后台数据库显示结果

那就要开始写前端了。。。(痛苦哦)
第一个界面,一个text 一个button 然后button根据text里的内容,来判断点击之后的跳转,是跳转到哪一个界面
大概有几个text 然后后台根据这几个text里的内容,进行相应的数据库操作。。。
比较烦的是 查询界面 是需要一个text 然后在界面中返回数据库操作之后的查询结果

放弃了写前端,直接在servlet中写东西,但是突然又产生一个错误。。。那就是java.lang.ClassNotFoundException: org.postgresql.Driver????
意思就是我还没上数据库咯?
哭了哭了
网上居然找到一个方法,成功了!!!
https://www.jianshu.com/p/aad933523429?from=timeline&isappinstalled=0

好了好了 终于把我能搞好的部分搞好了
就两种验证的方法,一种是纯java后台,第二种就是通过浏览器doget方法来获取 增删查改这四种方式之一,
唯一有点小问题的就是,当使用修改的时候,需要将tomcat重启一遍,因为需要对user重新初始化一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值