您当前的位置:首页 >  书信文档 >  保证书 > 内容

[(推荐)20xx年大二第一学期实习体会]

无忧文档网    时间: 2019-09-09 10:45:06     阅读:

. XX 大二第一学期实习体会 主要从下到上讲一下项目中一些值得注意的细节。

0.关于数据库字段设计:
一开始要尽量想得全,想得长远,考虑周到仔细,字 段类型都要考虑清楚。

个人觉得这是非常重要的一步,多人商量讨论是最好 的。

因为到了后期再要添加、修改一点什么是要花更多的 时间的,而往多了想,就算时间不够,要删除一些功能, 直接读数据时不读,不写那个字段即可。

1.关于 SQL 语句, [java]viewplaincopy spanstyle=“font- size:18px;“publicListDvdqueryDvdByName{ dname=“ “+dname+“ “; Stringsql=“select*fromDvdwheredname=“+dname; ListDvdlist=null; try{ list=operQuery; }catch{ e.printStackTrace; } . returnlist; }/span 不难发现,我为 dname 两端加上了‘单引号,不加是 会报异常的,这个细节其实我早已发现。

这次实训中发现有好多同学问我问题时都是在这吃了 亏,说明好多同学还不知道,这里特别提一下。

[java]viewplaincopy spanstyle=“font- size:18px;“publicbooleandelDva{ Stringsql=“deletefromDvdwheredid=“+did; returnoperUpdate; }/span 此处为 int 类型,故不用加,当然 double 也不需要。

再看代码 [java]viewplaincopy spanstyle=“font- size:18px;“publicListDvdqueryDvdByName{ Stringsql=“select*fromDvdwheredname=?“; Listobjectplist=newArrayListobject; plist.add; ListDvdlist=null; . try{ list=operQuery; }catch{ e.printStackTrace; } returnlist; }/span 这段程序和第一段几乎一样,不同的是,用?占位符 代替参数,再传入填补占位符的 plist,也不用加 单引号, 而且此方法能有效防止 sql 注入攻击,经过我的验证,确 实不错。

故推荐使用此方法构造 sql 语句。

2.答辩时发现好多人说自己的程序实现了模糊查询, 可是我觉得他们的模糊查询都还差一步,比如:查 “从你的全世界路过” , 上述模糊查询输入“从全世界路过” ,就会出现查不到 的情况, 可是有时候人们就记得“从全世界路过” ,所以我认为 他们都没有实现真正的模糊查询。

其实只需再加一步即可,如下:
[java]viewplaincopy spanstyle=“font- . size:18px;“publicListDvdqueryDvdByName{ //按片名模糊查询 Stringname=“ %“; for;i++){ name+=dname.charAt+“%“; } name+=“ “; Stringsql=“select*fromDvdwherednamelike“+name; ListDvdlist=null; try{ list=operQuery; }catch{ e.printStackTrace; } returnlist; }/span 3.c/S 架构中,使用 writeobject 及 readobject 传输 网络信息时,需传输的类必须实现 Serializable 接口,比如 publicclassDvdimplementsSerializable{.} 补上序列号 . privatestaticfinallongserialVersionUID=726109321891 9169833L; 序列号应该是随机的一个码 值得注意的是:服务器端的实体类名,包名,序列号都 必须与客户端的保持一致, 不然网络传对象时,无法将对象还原成预期所需要的 对象。

4.socket 连接,分为长连接与短连接, 在此次项目中用的是长连接。长连接时每次客户端请 求、或者接收服务器端的数据后, 显然不能关闭 socket;),要注意的是连由 socket 得到 的输出输入流均不能关闭, 例如 objectStreamois=newobjectStream); 不能 ois.close; 否则报 socketisclosed 错误。

5.关于分包结构,如下图 这是服务器端 客户端 值得注意的是,BaseDao 虽然叫 Dao 但并不是一个接口, 而是一个类,所以放在 DaoImpl 里面, 答辩时发现有不少组由于这个问题被扣分。

. 6.关于界面 Ui 界面是程序与用户交互的实现,在做到尽量美观之时, 更重要的是防止应用户的错误输 入而导致程序崩溃,这样才是一个好的界面。

)就比如应该要输入整数的地方,用户不小心输入了 一个字符串、中文、小数,如果 没有捕获异常,程序是会飘红的。

2)做空值判断,在 ui 往 biz 层传数据时,若用户输 入信息有空值,就不应当继续往 biz 传 数据,而应当提示用户输入有误。

3)数值范围判断,上面做了非法字符判断,及空值判 断,还是不够的。比如输入一个 同学的成绩(100 分制) ,那么用户不小心输入-55,在 1)处不会报错,2)处也符合, 若没有加数据范围判断就糟糕了。

当然要防止这些情况,在数据进入数据库之前防止均 可,为什么我要在 ui 防止呢, 当然是为了减轻服务器的负担,否则就无法体现 c/S 架构的优势所在了,那还不如用 B/S 架构呢! 而且在 Ui 处防止响应也更快,若在服务器端防止,数 据还要传到服务器, 服务器检测数据发现有错又传回错误息又麻烦 . 又费时。

我个人觉得若是多人合作写大项目的话两边都判断一 下是最好的

《 [(推荐)20xx年大二第一学期实习体会] .doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

相关热搜

《 [(推荐)20xx年大二第一学期实习体会] .doc》

VIP请直接点击按钮下载本文的Word文档下载到电脑,请使用最新版的WORD和WPS软件打开,如发现文档不全可以联系客服申请处理。

文档下载
VIP免费下载文档

浏览记录