(推荐)20xx年大二第一学期实习体会_第1页
(推荐)20xx年大二第一学期实习体会_第2页
(推荐)20xx年大二第一学期实习体会_第3页
(推荐)20xx年大二第一学期实习体会_第4页
(推荐)20xx年大二第一学期实习体会_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. XX 大二第一学期实习体会 主要从下到上讲一下项目中一些值得注意的细节。 0.关于数据库字段设计: 一开始要尽量想得全,想得长远,考虑周到仔细,字 段类型都要考虑清楚。 个人觉得这是非常重要的一步,多人商量讨论是最好 的。 因为到了后期再要添加、修改一点什么是要花更多的 时间的,而往多了想,就算时间不够,要删除一些功能, 直接读数据时不读,不写那个字段即可。 1.关于 SQL 语句, javaviewplaincopy spanstyle=“font- size:18px;“publicListDvdqueryDvdByName dname=“+dname+“; Stringsql=“select*fromDvdwheredname=“+dname; ListDvdlist=null; try list=operQuery; catch e.printStackTrace; . returnlist; /span 不难发现,我为 dname 两端加上了单引号,不加是 会报异常的,这个细节其实我早已发现。 这次实训中发现有好多同学问我问题时都是在这吃了 亏,说明好多同学还不知道,这里特别提一下。 javaviewplaincopy spanstyle=“font- size:18px;“publicbooleandelDva Stringsql=“deletefromDvdwheredid=“+did; returnoperUpdate; /span 此处为 int 类型,故不用加,当然 double 也不需要。 再看代码 javaviewplaincopy 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.答辩时发现好多人说自己的程序实现了模糊查询, 可是我觉得他们的模糊查询都还差一步,比如:查 “从你的全世界路过” , 上述模糊查询输入“从全世界路过” ,就会出现查不到 的情况, 可是有时候人们就记得“从全世界路过” ,所以我认为 他们都没有实现真正的模糊查询。 其实只需再加一步即可,如下: javaviewplaincopy 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 得到 的输出输入流均不能关闭, 例如 objectInputStreamois=newobjectInputStream); 不能 ois.close; 否则报 socketisclosed 错误。 5.关于分包结构,如下图 这是服务器端 客户端 值得注意的是,BaseDao 虽然叫 Dao 但并不是一个接口, 而是一个类,所以放在 DaoImpl 里面, 答辩时发现有不少组由于这个问题被扣分。 . 6.关于界面 Ui 界面是程序与用户交互的实现,在做到尽量美观之时, 更重要的是防止应用户的错误输 入而导致程序崩溃,这样才是一个好的界面。 )就比如应该要输入整数的地方,用户不小心输入了 一个字符串、中文、小数,如果 没有捕获异常,程序是会飘红的。 2)做空值判断,在 ui 往 biz 层传数据时,若用户输 入信息有空值,就不应当继续往 biz 传 数据,而应当提示用户输入有误。 3)数值范围判断,上面做了非法字符判断,及空值判 断,还是不够的。比如输入一个 同学的成绩(100 分制) ,那么用户不小心输入-55,在 1)处不会报错,2)处也符合, 若没有加数据范围判断就糟糕了。 当然要防止这些情况,在数据进入数据库之前防止均 可,为什么我要在 ui 防止呢, 当然是为了减轻服务器的负担,否则就无法体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论