专用学习笔记
板块更名了~
板块更名了~
板块更名了~
程序详情以及github见项目相关主页~
1、SQL进阶操作:http://www.cnblogs.com/fangyz/p/5348111.html
2、js里面有个叫argument的对象,这东西有点刷新我的价值观,6的不行
来源地址:http://www.cnblogs.com/xdotnet/archive/2007/04/11/javascript_object_arguments.html
3、单例模式的应用:http://blog.csdn.net/yong199105140/article/details/8425781
4、JS提交servlet :http://blog.sina.com.cn/s/blog_5c050cd20101jbe7.html
5、表单隐藏域的应用:http://for-dream.iteye.com/blog/1570279
感想:隐藏域的用处有点巧妙吧,虽然可能拖慢一点的网页加载速度,但是在数据传递上还是有点作用的,虽然
不知道这样说对不对,但是这是我的感想吧。
另外还有个iframe,这东西我看网上也很多人提,但是没具体使用过,还未能有感想。哈哈~
6、Ajax调用Servlet:http://blog.csdn.net/xiaxiaorui2003/article/details/4083194
补充:Ajax的JS方法(创建xmlHttp对象):http://blog.csdn.net/indexchen/article/details/543209
感想:在Serlvet框架下避免每次提交后都要刷新就要用到Ajax,有了这个技术虽然又会衍生出要解决重复提交的问题,
但是在用户交互上就给人一种畅快感,在体验上也可以给人一种流畅性的体现。虽然整个网页的加载量也不大,
但是流畅性体验给用户的感觉是直观的,用户追求的是时效性和流畅性以及性能(这个暂时谈不上~数据量不大)
,所以在mini web app上做好流畅性的体验为将来做大型应用的时候打下基础。
7、正则表达式验证用户输入:http://www.jb51.net/article/72041.htm
感想:正则表达是这个东西给我的感觉非常非常非常的赞,因为只是几个特殊字符和英文的组合就能判断输入的格式,
比起以前C语言一直在用if-else判断来的直观许多,但是正则表达式的设计上我感觉有点奇怪,看了好几次那些
符号的意义还是没能匹配到想要的字段,虽然网上都有正则表达式的模板,但是有的时候网上没有想要的模板的
时候还是要自己设计的,所以我也会尽快弄懂正则表达式的设计方式。
8、(github)在提交这次web应用的时候发现git bash会报一个warnning
warning: LF will be replaced by CRLF
解决方法:命令行中敲入 :git config --global core.autocrlf false
9、foreach的用法:http://www.cnblogs.com/mingforyou/archive/2011/11/01/2231953.html
感想:个人在用法感觉可以用在不确定长度的数组或者list上,如果确定长度话,我觉得还是用回普通的for,毕竟比较直观。
foreach在不懂其结构下,有点晦涩难懂,运用多了才有一点的感觉。
10、Array的排序:http://www.cnblogs.com/xudong-bupt/p/3168618.html
java数组的其他排序方式:http://blog.csdn.net/fengyifei11228/article/details/2623980
感想:这个是在看foreach用法的时候无意中看见一个sort方法然后才发现的,因为大二在学习java中比较少接触到java的数据结构,
而且也没怎么看过java array的排序,想着应该和C语言的排序方式一样,所以没有深入研究。直到现在发现java有个array类
的sort方法可以排序。更重要的是,大一学了一年的C语言和C语言的数据结构,现在才发现原来C语言有排序的库函数,想当
初还屁颠屁颠背那个几个排序算法。虽然现在应用少,但是至少当时没有挂掉数据结构哈哈~,不过这次也算是个意外的收获~
惯例附上个C语言排序库函数的例子吧:http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/
11、Hibernate增删改查:http://blog.csdn.net/jiuqiyuliang/article/details/39078749(增删改查全部弄好了) (这个和复利计算暂时没啥关系哈~)
PS:内置方法的个别区别:http://www.cnblogs.com/chanedi/articles/2106024.html http://www.iteye.com/problems/5761
(2016-04-12~04-13)感想:研究了一下午的Hibernate,晚上终于做出来了查询,修改有点问题,一直跳转不到那个servlet里面的修改函数,明天继续看看。
Hibernate的架设还是比较简单,很多东西都不用自己去配置,只要自己去写service下的接口和实现类,以及servlet还有网页代码。
其余的事情都可以交个Hibernate本身去做,虽然有些地方和我看的教程不一样,但是都可以通过自己的研究来解决这些问题。
之前在网上查的很多资料发现很多实例都是整合了Struts2,但是hibernate还没消化完的我,只能寻找一些纯Hibernate的例子来
练练手。
(2016-04-14)感想:折腾了两天的hibernate的增删改查,也是弄的醉醉了,查询和删除都很顺利。但是昨天被更新模块搞的心烦意乱的,折腾一晚上最后才查出来是对象为空,
因为报错的一直都在 tCompounding.setMoney(FMoney) 一开始还纳闷为什么set方法有问题,后来查着查着发现对象没有实例化,只是被一个参数实例化以后,便被
置空了。后来多了判断以后实例话以后又出问题了。这个跟映射文件的id值的class有关,数据设置了自动递增,更新的数据都会自动更新到最后一个的后面。。。(莫名其妙的插入)
后来改了个属性以后就好了。插入比更新简单,很快就弄完。主要是更新那块,居然反了个很不起眼的小错误,自己也没发现没有实例化那个对象。不过这样也能更加透彻的让我了解
hibernate的工作流程吧。不过真的真的不要依赖myeclipse的hibernate自动配置,真的有毒...Dao层的基本都没有开启事务就执行事务,需要自己去创建个session工厂对象然后去
getSession然后才能连到数据库。最好能自己写,不然。。真的改的地方有点多。。。
注意:Hibernate DAO层的自带delete函数有点问题,需要自己手动去获取Session然后提交事务 (真的真的不要全部相信自动化配置,有点毒,耽搁了大半个中午..)
public void delete(TCompounding persistentInstance) { session = HibernateSessionFactory.getSession(); log.debug("deleting TCompounding instance"); try { TS = session.beginTransaction(); session.delete(persistentInstance); //getSession().delete(persistentInstance); //本来只有这一句的,结果一开始调试死活都没反应..找了好多资料才知道怎么回事. log.debug("delete successful"); System.out.println("delete success"); } catch (RuntimeException re) { //if(TS!=null) TS.rollback(); log.error("delete failed", re); System.out.println("failed"); throw re; }finally { TS.commit(); session.close(); } System.out.println(log); }
实验效果图:
代码构成图:
分享下几个HQL语句:http://www.cnblogs.com/focusChen/articles/2401892.html http://www.cnblogs.com/hongten/archive/2011/06/19/2084696.html
最终效果图:
(查表后~)
(插入)
(更新)
(删除:就没有界面了哈~简单粗暴的直接删除,没有做交互窗口)
自己的示例:
1、argument的应用:
感想:因为复利计算做个了动态表格,然后想到客户可能需要删除或者修改某一行的数据,所以便有了这个需求从而进行一番研究,最后发现argument这个对象在js中可以接受来自jsp按钮传递的动态参数。
这个对象的厉害之处在于,在javascript中,不需要明确指出参数名,就能访问它们。。。
碉堡了,碉堡了,碉堡了,有木有。。。
2、隐藏域的应用:
感想:隐藏域这个名词并不是第一次听说,见过很多次,但是这次是第一次应用。之前为了查找如何无刷新提交表单的时候,见到网上有人提议使用隐藏域提交,但是后来我隐藏域有点缺陷,所以开始学习Ajax。
然而这次的用隐藏域是为了在按钮处直接提交,之前没用隐藏域提交的结果是在DataDeleteServlet下接受的值是空值,无法进行删除操作,所以我采用了隐藏域解决了这个问题。
3、Ajax调用Servlet
感想:Ajax的意思异步JS和XML,可以不用整个网页刷新只刷新局部。
本次结对项目起初采用servlet技术的框架进行,可是servlet有个弊端就是提交数据以后要对页面进行刷新,从而导致原有页面的数据被清空。
所以这次改进利用Ajax进行接收数据的任务,然后传到servlet进行数据库操作。
不足:这次使用Ajax并没有使用jQuery而是采用js建立xmlhttp对象进行传递,没有jQuery来的简洁。
原因是对于Jquery的语法还并不太深入,有些例子看不太懂,所以退而求其次,选择了js方向。
关于:Ajax和Servlet的关系模式如下图显示:
4、JQuery Ajax
实现方式:待上传