2006年10月14日
#
中午去学校食堂吃的饭,本来打算来个番茄牛肉面,但被告知,已经没有了。那就来个大肉面吧。在大连的时候有吃过这种面,可是学校食堂这大肉面,简直就是“大肥肉面”我最怕肥肉了,当时一看已经晕了一半,一吃,真是油油的,我还是强忍痛苦把它消灭掉了,肉都剩下来了。吃的不爽,又买了一根烤肠,哪成想,也是很油。我这“狗肚子,装不了二两猪油。”所以,回到单位,赶紧喝茶,希望可以抵抗一下。奶奶个熊的,要鸡腿面好了。
两周过去了。现在总算有些不那么紧张,可以好好的回顾一下这半个月的事情。据我后来的了解,我是公司这次招聘为数不多的几个当天面试,当天就通知录用的人员之一。开始的前两天,就是给我一个他们正在开发中的项目的一个模块,让我看。以此来熟悉他们的开发环境和开发方式。所以,这两天是比较轻松的,但我可不敢怠慢,我是仔细看了又看,细细的推敲每行代码的作用和使用原因。
正式开始前,给我分配了一个任务,是独立完成一个数据库的操作的模块。功能要求。
Oracle10g
数据库,三张数据表(都是日文的命名字段,表名,数据。多我来说差不多是天书,好在日文和中文的繁体差不多,我就靠感觉了)界面要求,登录验证,成功后显示三表连接后的数据信息,数据信息要完成分页功能,并且分页功能要使用
Oracle
的
SQL
语句来实现。问我多长时间能完成?我说
4
个小时(我太过自信了。忽略了很多问题。结果用了
1
天的时间才搞定。)总结一下,思路上是没有任何问题的,因为毕竟这样的东西我是做过的,所以心里有底,但是
Oracle10g
这个东东我没用过,我以为
Oracle
和
SQL Server2000
使用的是相同的
SQL
语句,实验证明根本就差好多,我使用
Top
的嵌套方式来实现分页功能,结果在
Oracle
中,根本就运行不了。但是我就知道这下完了,使用的不一样。赶紧找资料,发现
Oracle
中根本就没有
Top
这个关键字,使用的是
rownum
的东西,分页方式解决了,又发现语句还是执行不了。后来发现,我在一个地方多写了一个
t
我把它当成是日文了,要知道数据库里面的东西全是用日文定义的,尤其是数据表名称和字段的名称,我根本就不会写,所以就是复制粘贴。找了好久才把它弄对,然后就是
Servlet
了,还算顺利就是用错了一个方法,也花去了很多时间。总算交工了。带我的人,给我提出了很多缺点和不足,从界面到代码,受益颇多。
过了一天后,给了我一个项目的式样书(我总是说成:样式书。够外行的吧!!!)这个可就是真家伙了,虽然只是增、删、改、查。但对我来说还是正规的东东啦,要知道,我以前做的那些都是自己定义功能和要求,所以是没有限制和规定的。这个可就不同了,都是有规定的。有一点我忘了说:我们公司是日本独资的公司,是日本总公司在中国的一个分公司。所以,所作项目基本都是对日的。我从进公司就是接触日文的东西,公司有培训教授日文,可是我没有任何基础,所以,无法跟上现在这个日语班的进度,所以,我要等到下个班,估计要明年了。这回,没有问我多长时间完成。但我还是竭尽所能,利用全部的上班时间,下班我只看看书,不作任何公司的东西。这样我才知道我的工作效率是怎样的,一天的工作进度是多少。最终我用了
3
天的时间,实际上我用了不到
2
天半的时间就完成了,而且大体上都合格了。在我之前来的一个同事,他我和是几乎一起完成的,但我们不同的是开始时间,据我了解,他用了将近
1
周的时间。我自己心中暗喜,当然,这也是对我能力的一个很好的体现。但我并不会因此而过早的高兴,毕竟这个模块的难易程度,我还是能够正确认识的,这仅仅是入门级别的啦。所以,业余时间,我就认真地补足自己欠缺的地方,争取尽快地能够融入公司的开发队伍。
公司的工作氛围很好。我最喜欢的是,大家进公司后,都是穿拖鞋,舒服呀。估计日本人喜欢这样吧。公司有一个经理,两个部长,一个会计,剩下将近
30
号人都是开发,当然这其中有若干个组长,技术大拿等。我们这些新人,就还算是菜鸟吧。不过,凭我的努力,早晚会成为这里的佼佼者的。一定可以。周四的时候,公司组织会餐,送一个老员工去日本总公司,并且也为了迎接我们这些新员工。气氛很好,很热闹。大家都很活泼。而且能喝的不多,这个最好。哈哈!
公司经常会买水果给大家吃,这两个星期,每周都会有。不错哦。我们是轮流值日,本月
16
号就是我的第一次值日。
这个周末的休息,好轻松哦。唯一的不和谐因素就是,我去游泳,我把手机给弄没了,到现在还不知道咋没的。我出门不到
150
米,上公交车坐
4
站,然后下车走不到
50
米进入游泳馆,脱衣服,游泳,洗澡出来,穿衣服,发现手机就没有了。而且我一直打,都是通的直道第二天还是通的。可就是不知道这小家伙在哪里,没办法,找不到了。只好再买一部新手机了。号码我是补办的,所以原来的号码没变。奶奶个熊的,还没挣钱,就先花钱了。真气人呀。。。
这是十月份的最后一天,我终于完成了程序的摸底测试,哈哈。今天给我了一个式样书,日文的。虽然这个模块已经是被做过的了,代码我也看过了。但是,我还是感觉很激动。毕竟这是我的第一个正式的模块开发,挺兴奋的。我是仔细阅读,细心分析,过瘾,我就是爱做这个。
今天又来了两个新员工,也是java的。现在会议室已经被我们4个java的占领了。公司打算搬家了。扩充地方。好呀。不过我还挺喜欢会议室的。地方够大,视野开阔呀。
我还要忙着学东西。所以不多说了。本周末有时间,是3连休。下次在解释为何3连休。
今天第一天,开始了我的试用期。分配了电脑,先武装一下。明天开始我会先做些小的任务,估计主要是测试我的水平。心里还挺打鼓的呢。没有真刀真枪的用过,心里就还是没底。
今天下午的时候,有
8
个人又来面试,都没有通过,看来得到这工作还是不容易呀。坐了一天了,不想写了。感觉累了。主要是刚开始上班还不适应。所以。休息睡大觉去。
今天是很好的一天,上下午分别两家公司面试,都很成功,我选择了下午的那家,是一家日资企业,在沈阳的分公司,规模一般,但是我觉得工作的环境很好,主要是气愤很好。当然这都是今天的第一感觉。先是技术部门的面试,都是专业知识,我顺利通过,然后直接人事部门的人来,所我可以直接通过,不需要等通知了。直接就开始谈待遇相关内容,待遇在沈阳这个地区来说,就算是普通的,但是公司的后续培养是我最为看重的,公司出费用提供日语的学习,并且每年都回往日本输送员工,经我详细了解后,才明白,这家公司是日本总公司,在沈阳的分公司,在这工作
2
年后,如果技术过关,基本上都会推荐到日本总公司工作,当然,这都是他们的异己说法,但凭我的经验来看,这些都是事实,并且空谈。对我这样一个“新人”来说,学习和深造,这才是我想要的,有丰厚的阅历和自立,才能让我的职业生涯走的更远,也许对些“老人”来说,我这是天真的想法,但此时的我,就是想在技术海洋里游来游去,我喜欢,所以,我并不把它当成是工作,我很享受此中的过程。明天就是开始试用期,那里都要穿拖鞋,像是日本的榻榻米那样的东西,感觉挺有意思的。嘿嘿!我要上班了哦。挺兴奋的,我会努力,缩短我的试用期,加油加油!
今天的天气,没的说。风萧萧兮、雨潇潇,壮士穿在多希、也感觉冷呀!这东北的天气,说变,那就是一个快。今天参加了我的一个好友的婚礼,是我从小玩到大的朋友,铁成兄。虽然成年后,就不常联络了,但是关系还在,毕竟我们的父辈也是从小玩到大的。早上起来就有些小雨,昨晚下了一夜。还好在举行婚礼的时候,老天还算给面子,只有风,没有雨。我参与了责任重大的放鞭炮仪式,哈哈。吓死我了,鞭炮声音好大。我怕被蹦到呀。酒席还算不错,人好多哦。结婚都是这样啦。如果我有机会结婚,不知道是不是也这样,有够烦的。下午,我就和我老妈去他妈家看家,我是又困又冷,晚上
5
点多才回自己家,路上那风叫一个大,冷得要你命。不过我还是抗住了。现在感觉还有些哆嗦。我讨厌天冷,因为我怕冷;我喜欢夏天,因为夏天热。这好像是废话哦!
下午
3
点多,接到一个公司的面试通知,明天
9
:
30
信息中心大厦
7
楼,啥公司我没记住名,晕!到了打电话。我就现在看看资料吧,也算作写准备。希望好运多多来,冷空气快走开。哈哈哈!太冷了,不写了,赶紧钻进我的暖窝窝!所有室内的温度在
18
摄氏度上的兄弟们,你们是幸福我,我看了一下温度计,数值时
15
度,现在还不到采暖期,所以没有暖气,奶奶个熊的。冻死我了。
又一次的面试经历。今天的地点是辽宁工业展览馆,入场票
10
元。我准备了
5
份简历,但只投出了
4
份,招聘单位很多,但是专业相关的好少。我就想找个
java
编码的,可能听起来挺没出息的吧。虽然一直都在从事开发工作,但从来都没有到正式的软件公司的开发经历,所以,总是感觉有所欠缺。自己到底有多大的能力,都没有机会展示,也不知道,自己的技术特长是否符合用人单位的要求,所以,有种力不知道应该往哪个方向使的感觉。为此,我特意自己用自己赚来的剩余收入,投资到了学习中,经历了历史
1
年知道现在马上结业在即的
IT
软件工程师的培训,听起来挺胡人的啊!软件工程师,其实我很知道那仅仅是个代名词,实际的能力如何,那要看你自己的学习和应用情况,培训中心教的的确算是不错,但是对我这种对技术有些龟毛的人,只要我学会了,我就是觉得他们教得少、浅、慢。所以,就是不知足呀!这个一定的啦。花钱,那是要有成效的吗,钱不能白花,血不能白流。
Java
相关的面试内容,我已经基本上没什么问题了。都能正确回答大部分的问题,并且自我感觉还不错。
Struts
也对自己完全有信心。可是每每到数据库的
SQL
语句,我总是卡壳,那些我常用的检索组合方式,和一些关键字的写法,我总是记不住,在实际开发总,这些问题,总是可以解决,但是面试的时候,是不能查资料的。所以,只能把自己的思路表示清除,人家也都说,“看来你的确会,但是写不完整,那就说明还是不够熟练。”如果因为这个不能找到合适的工作,那我也太憋屈了吧。所以,本人决定。现在开始,多写
SQL
语句,练习不使用帮助文档,所有的关键字都被下来。这样下次就一定没问题了。我总觉得,只要会用,并且知道哪里可以找到帮助你解决问题的方法,那就不需要去硬被那些比较耗时的东西,其实这本身是正确的,就像那句名言“借力使力,不费力!”的道理是一样的。可是现在看来,这个偷懒的事情,在我还没有得到一份工作前,还是不要了。还是实实在在的被吧。谁叫是你应聘,不是招聘呢。“不能改变,那就适应吧。”这好像也是一句名言。哈哈。我也不知道,我拿来的那么多“名言”。有机会得总结一个《小白明言语录》
昨夜睡觉前我没做什么,就是看了看文字材料。所以睡眠就很平稳。梦境的场景和多数时候一样,是有两个洗手间的房子,其中一个洗手间有两个坐便,这是我自己一直不是很理解的地方,两个坐便,挺奇怪的,可能是某种预示吧!但是我还没有参透之中的奥秘。看到我日记的朋友,你们大可试验一下,睡觉时把双手重叠放到胸前,和丹田两个不同的位置。解释:丹田就是肚脐以下
2
指的地方。注意:男生要左手在下,右手在上;女生则相反。如果做错了,我可不知道后果是什么哦。没试验过,如有人试验请把结果告诉我,增加我的梦境知识。还有就是不要太刻意去控制你的思维,否则可能会失眠哦。
J2EE
的课程,今天是最后一天,老师讲的东西不多。同学们提问也很少,我当然是不能放过老师啦。那一定是有问就问,毫不保留呀。
北方这个季节就是,购买秋菜的时候了。大白菜那是必不可少的,
20
颗白菜,两次我就把它们搞到
7
楼了。我的身体素质还是可以的。来流过言的朋友说我游泳
2000
米神人,其实那没什么啦。很多人都做得到,再加上的底子也还是不错的。在这里介绍一个吧。我从上小学,初中,高中,大学都分别是校或院的运动队队员,我的专项是
100
米,
200
米。
100
米最擅长,最好成绩是
12.05
这个成绩是我在参加市里比赛的成绩,最为一个非专业运动员已经是很不错的啦。小学
2
年级曾被招进市体校,可是感觉太辛苦没有坚持,因为我还是比较崇拜有知识的人,希望将来用自己的知识来赚钱。但是好的运动喜欢还是一直保持下来的,但是运动量还是少了很多的,所以想当初的
6
块腹肌现在已经变成
1
块了。哈哈。不过还好坚持不断的
1
年游泳,让我的身体有了很好的恢复,各部位的脂肪也已经在渐渐的消减,心肺功能也感觉越来越好。尤其是胸肌恢复最明显。但是腰的灵活性大不如前,以前最擅长的必杀技“回旋踢”已经是基本有形无力了。看来还要继续加油呀。说说又跑题了,哦。还有就是我现在是从事计算机软件开发的学习阶段,马上就要再次进入工作期了。好期待呀。明天在工业展览馆会有一个大型的招聘活动,已经约好了班里的几个同学,一同去看看。希望有好的境遇。
今天的晚餐,老爸请客。吃的“千里香”感觉不错,小肚饱饱,但是不是很饱,要控制饮食这个很重要。还喝了一瓶啤酒,感觉有些小晕,我是比较不能喝啦。我酒精过敏,但是还是比较爱喝的,在高兴的时候,可以多喝两杯的。上次喝的比较痛快是
3
男
1
女,其中
1
男仅喝
1
瓶,我喝了
4.5
瓶,那两个神仙一人
5
瓶,大家都没咋地。估计有些高,我和那女孩的愣是走了将近
2
个小时才到家。郑重说明:那女孩是我同学,小我
7
岁,是我小妹妹啦。各位看官可别误会哦。我可是很有风度的那中,不会趁人之危哦。我是风流,但不下流。哈哈。其实那女孩比我能喝多了,我根本没法比。
谁个好觉,明天好运都来吧!
夜里的梦境,再次证明了睡觉时,双手叠掌放到胸前,会做比较凶险的梦,或是噩梦。梦境是这样的,时间大概是春节期间,地点好像是我的一个长辈的家附近,主要事件是由于消费时被无理羞辱,我一气之下杀掉了两个人,过程很像是武侠片的场景,就连飞镖暗器都用上了,我记得那二人也非等闲之辈,而且还是恶贯满盈。但是毕竟我还是杀人了,场景一下子变了,比较离谱,是我在培训中心的学习教室,同学都在,课间走人几个警察,找了些人进行盘问,我知道已经被盯上了,同学和老师都替我开拓,说那二人死了活该,可是我还是很忐忑不安,心想,应该算是过失杀人或者是防卫过当吧!此时想起了,我的父亲母亲,内心便开始痛哭流涕了,注意,是内心!然后天就亮了,梦境结束。感觉胸口有些痛,手掌压的。
虽说是梦境,可是感觉是十分真实,心确实很痛、很憋。
梦境是潜意识的一种表达方式,我一点我是深信不疑的,说日有所思,夜有所梦,这个我不完全赞同,我做过试验,就是在入睡前从事不同的事情,对你当晚的梦境是很有影响的,我有印象的有:看恐怖片,梦里一定是怪兽成群,自己想跑也跑不动,我估计这个现象很普遍;做些力量性运动,夜里会睡得比较死,不会有什么梦,有梦也是参加比赛什么的,我在学生时代的赛场场景就会在这时闪现,并且总是在百米的起跑线上,感觉和现实一样,耳边只能听到自己的呼吸,绷紧腿部肌肉,重心前移,做着条件反射般的完美起跑;如果是听些音乐然后入睡,梦境都会比较美好,美好到有时候感动到哭泣。
我听说过《周公解梦》但是我从来没看,我怕看了以后会影响自己的潜意识。所以,我还是要用自己的方式来破解自己的梦境,有人说,梦境会有些对未来的预示,这个我觉得是没啥根据的,你平时做事的态度和方法,你掌握的知识和技能,还有你的性格,这些才是对未来有价值的预示,所谓谋事在人,成事在天,就是这个道理啦。我哥们小浩说过这样句“一命,二运,三造化”我觉得甚是有理呀。我不相信命运,但是我确承认它的存在,听起来好像有些矛盾!
梦也做过了,该开始今天的学习了,计划是早就制定好的,把
Struts
的
Bean
标签全部搞定,下午搞定
Logic
标签。现在是下午
2:34
我已经基本完成任务,还差一小部分而已。每周
1
、
5
的全天上课,周
2
,
6
的下午游泳,这样的规律性生活已经快
1
年了。我的潜心修炼也即将结束了。北方的天气开始变凉了,所谓秋风扫落叶,就是现在这个场景啦。
题外话:我把自己的日志在这里先发布,然后再发布到我自己的博客上可以吗?我不透露我博客的地址,这样算违反版规不,目前,我还没有放到自己的博客上,所以,想得到具体回应同意后,我在弄。谢谢哦!
早起先把昨天修改的程序发了过去,运行检查,没啥问题。小强说他们的电脑有病毒,总是有问题,也没说啥问题,问我是否要重新装系统,最好不要吧,那样的话,
SQL Server
和
.NET Framework
都要重新装,估计他们装不好,岂不是我又要到长春一趟,我的天,命苦呀。他说找人给看看,最好还是杀毒吧。我还是那句老话,“有病治病,用不着打死,重生吧!”此时听到敲门声,说是电话局的,说什么推出新政策,可以省话费什么的,存属扯蛋,这种骗人的把戏电视上都演过多少次了,还有人使用。当我白痴呀。我没理,那人便敲邻居的门,谁也不搭理他,未果,就离开了。现在这世道,可不能随便开门,坏人太多啦!也经常接到这样的电话,说你中
50
万,先汇点手续费什么的。奶奶个熊的,就是骗呀。我妈最逗,也不废话,直接回应:“中了,我不要了,都给你了。”电话一撂,拉到。只要不贪心,永远不会上当的。
昨天去三好街了,所以正常的周二下午游泳,推迟到了今天。天气凉了,泳池人少多了。我喜欢,这样可以围着整个泳池游,比较爽。今天状态不错,
2
小节,没节
6
圈,总长
1200
米只多不少,而且还游了好几个来回的
22
米往返。估计今天的总长度会在
2000
米上下。每周两次的游泳,对身体帮助很大,而且放松紧张的身体和心灵。我比较相信水里有种能量是可以被人体吸收的,所以每次过后倍感舒爽。回来的路上看到有家福利彩票的投注站,进去瞄了几眼,打算玩玩,可是不懂规则,上网查查。打算自己做个统计的程序来投注,也就是随机数字啦。就当熟练一下随机数方法了。话不多说,现在就开始动手。
好友小楠要买块硬盘,叫我帮忙看看,我也是了解不多呀。到了电子市场,就开始狂晕了,先是太长时间不来,哪里都不认识,问了几家的价格,心也没底怕被蒙,所以还是打电话找朋友帮忙吧。那可真是笑话百出了。先是问要什么牌子的,小楠说西捷酷鱼的,要
200GB
的,我一紧张,说成了
20GB
,哥们顿时语塞,又问一遍,你要多大的?才回过神,哈
200GB
。问我要啥口的。说是串口还是并口。我汗,我就知道有
IDE
和
SCSI
之分,每听说还有啥口的。没整明白,然后问啥主板的,小楠更逗,她自己也不知道,朋友说,你干脆拿来我给你看看,连着直接买个安上就得了。我和小楠都笑了,是苦笑。因为小楠周末就要回澳大利亚,她那电脑在澳大利亚呢,咋拿来呀。又问,那
CPU
是多少呀。得支持硬盘容量呀!对哦。我咋把这个忘了。小楠继续语出惊人,还是不知道,得没辙了。你啥时候买的。
2000
年,这个倒是知道,那年代
40G
硬盘有没有我都不知道,还要买
200G
的安上,那不是扯呢吗。朋友说,实在不行买个
80G
的吧,然后刷一下
BIOS
也可以支持,她就更蒙了,连自己电脑啥配置的人都不知道,你居然要让她自己刷
BIOS
,这可能吗?最后,她说出了一句:我想买个硬盘的拖盒来用,这样不就可以匹配了。我马上问:你是要做移动硬盘呀。。。她说不是,就是把硬盘放到机箱外面用,用
USB
连接不是可以。我心想,那你电脑也得有自己的硬盘呀。她居然认为。电脑本身可以不用,用外接
USB
硬盘也可以。我的天,这都咋想的。我都解释不清了。最后达成一致,啥也买了,回澳洲再买个二手的用着吧。她原来那个就剩显示器和机箱(没有硬盘)。我看留着意义也不大,我说卖废品算了,她说
,
那里根本就没有收的。我说那就卖废铁,她说,只有汽车才算是卖废铁。我的妈呀。那就改成烧烤用的炉子算了。回家路上,我还郁闷中,我一学计算机专业的,这硬件我是太不了解了。不过还行,至少比小楠同志了解的多呀。
下午回到家中,本来想看看
Struts
中几个标签的功能。结果。电话来了。我给一家公司做的程序,他们运行说有问题,叫我给看看。上网把数据发了过来,我一看,数据录入的有够乱的。好半天屡出头绪。晚饭前搞定,明天给发过去。我一想,他们输入的乱,说明我设计的还是不够人性化,所以,又改动了一些地方。哎。毕竟是受人家钱的。工作就要负责嘛!
Hibernate
英文的直意是冬眠的意思。
Hibernate
是一个面向
Java
环境的对象
/
关系数据映射工具,注意,这是一种技术工具。
ORM
(
object relational mapping
)
这个术语表示一种技术,用来把对象模型表示的对象映射到基于
SQL
的关系模型数据结构中去。
以上的这些概念性的东西,然我感觉和
.NET Framework 2.0
中的强类型数据集的作用差不多,但听研究过的人说,要比
Microsoft
的那个好得多,
Microsoft
的强类型数据集我用过,感觉爽,既然有说
Hibernate
更好,那已经更是过瘾,我心里痒痒的呀。继续。。。
书中有这样一句“对于以数据为中心的程序来说,他们往往只在数据库中使用存储过程来实现商业逻辑,
Hibernate
可能不是最好的解决方案。”这个是一定啦,
Hibernate
是桥梁,又不是万金油,当然是在数据库中直接用存储过程处理商业逻辑是最好的啦。我做过,直接在存储过程中搞定一切东西,传一个参数过去,然后所有的运算都在
SQL Server 2000
的存储过程中完成,那叫一个爽,比把数据读到程序里,然后用
Java
处理,再把数据传回去要快得多,但是在
SQL Server 2000
里直接用存储过程来完成这样的工作,难度还是不小的,调试就是最大的难点,反正我是没整明白有啥办法可以调试的,我就用最原始、最保靠,据说是也是有效的调试方法
print
来完成。哈哈。够晕的吧!继续看。。。
现在看到了一个“持久化实体类”这个类是符合
JavaBean
的编写要求。并且要给它一个唯一的标识符,这是为了我们使用
Hibernate
提供的所有特性。大多数程序,特别是
web
程序,都需要通过标识符来区分对象。但,通常我们不会直接操作对象的标识符,所以他的
setter
方法的访问级别是
private
。
Hibernate
需要知道怎样去加载(
load
)和存储(
store
)持久化类的对象,映射文件,它就是告诉
Hibernate
,应该访问数据库里面的哪个表,已经应该使用表里面哪些字段。
Hibernate
不会从
web
加载
DTD
文件,但它会首先在应用程序的
classpath
中查找。
DTD
文件包含在
hibernate3.jar
里,同时在
Hibernate
发布包的
src/
目录下。
映射文件的长相:
Event.hbm.xml
<hibernate-mapping>
<classname="events.Event" table="Events">
<idname="id" column="eventID">
<generatorclass="native"/>
</id>
<propertyname="date" type="timestamp" column="eventDate"/>
<propertyname="title" column="eventTitle"/>
</class>
</hibernate-mapping>
说明:
class
表示持久化类;
id
表示唯一标识;
property
表示类的属性字段;
name
是持久化类名;
table
是数据表名;
column
是数据字段名;
generator
是唯一标识的生成方式;
type
是映射的数据类型。
Hibernate
配置文件的长相:
hibernate.cfg.xml
<!-- by MyEclipse Hibernate tool integration. -->
<hibernate-configuration>
<session-factory>
<!-- properties -->
<propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:test</property>
<propertyname="connection.username">system</property>
<propertyname="connection.password">manager</property>
<propertyname="dialect">net.sf.hibernate.dialect.OracleDialect</property>
<!-- mapping files -->
<mappingresource="events/Event.hbm.xml"/>
</session-factory>
</hibernate-configuration>
说明:
Session-factory
:特定数据库全局工厂
connection.driver_class
:驱动类
connection.url
:连接路径
connection.username
:用户名
connection.password
:用户密码
mapping resource
:持久化类加入映射文件
用
ant
创建
build.xml
我理解他就是管理文件位置的,就是拷贝,为编译运行做准备。
SessionFactory
是一个线程安全的全局对象,只需要被实例化一次,一个
Session
代表一个单线程的单元操作。
这时又来了一个辅助类
HibernateUtil
,负责启动
Hibernate
和更好的操作
SessionFactory
。
最后配置一个日志系统,
Log4j
或
JDK 1.4
都可以选择。
看到了一种编程模型:线程绑定(
thread-bound
)
Session
在第一次被使用,或第一次调用
getCurrentSession()
的时候,其生命周期就开始了,然后它被
Hibernate
绑定到当前线程。当事务运行结束的时候,不管是提交、回滚,
Hibernate
都会把
Session
从当前线程剥离,并且关闭它。
提交页面:
<
html:link
href
=
"/StrutsTagDemo/parameter_2.jsp?coolID=1127"
>
不使用表单提交数据
</
html:link
>
接收页面:
<
bean:parameter
id
=
"coolID"
name
=
"coolID"
/>
我接受到的
coolID
:
<
bean:write
name
=
"coolID"
/>
<
bean:header
id
=
"host"
name
=
"Host"
/>
主机地址
/
端口
:
<
bean:write
name
=
"host"
/>
<
br
>
<
bean:header
id
=
"language"
name
=
"Accept-Language"
/>
支持语言
:
<
bean:write
name
=
"language"
/>
<
br
>
<
bean:header
id
=
"agent"
name
=
"User-Agent"
/>
用户的浏览器类型
:
<
bean:write
name
=
"agent"
/>
<
br
>
<
bean:header
id
=
"accept"
name
=
"Accept"
/>
支持打开类型
:
<
bean:write
name
=
"accept"
/>
<
br
>
<
bean:header
id
=
"encoding"
name
=
"Accept-Encoding"
/>
支持编码格式
:
<
bean:write
name
=
"encoding"
/>
<
br
>
//
在
Session
中存放计数器,体现刷新效果。
int
count = 0;
Object obj = request.getSession().getAttribute(
"count"
);
if
(obj ==
null
) {
count = 1;
}
try
{
count = 1 + Integer.parseInt(obj.toString());
}
catch
(Exception e) {}
request.getSession().setAttribute(
"count"
, count);
//
设置自动刷新,一秒钟一次。
//response.setHeader("Refresh", "1");
//
设置自动跳转,一秒钟一次。我写的
url
是自己,所以和刷新一样。
response.setHeader(
"Refresh"
,
"1,URL=refresh.do"
);
读取
Cookie
集合,遍历集合找到所需的
Cookie
,如果找到保存进
Session
,否则跳转到登录页面;
所需资源:
ReadCookieAction.java-
读取
Cookie
集合,如果找到对应
Cookie
,写入
Session
;
Login.jsp-
登录用页面;
LoginSubmit.java-
记录登录信息,并写入
Session
;
LoginOk.jsp-
读取
Session
,并显示。
读
Cookie
的方法
:
Cookie[] cookies = request.getCookies();
if
(cookies !=
null
) {
for
(
int
i=0; i<cookies.
length
; i++) {
Cookie cookie = cookies[i];
if
(cookie.getName().equals(
"userInfo"
)) {
String value = cookie.getValue();
String[] info = value.split(
"_"
);
UserForm userForm =
new
UserForm();
userForm.setUserName(info[0]);
userForm.setUserPassword(info[1]);
request.getSession().setAttribute(
"userForm"
, userForm);
return
mapping.findForward(
"ok"
);
}
}
}
写
Cookie
的方法:
Cookie c =
new
Cookie(
"userInfo"
,userForm.getUserName()+
"_"
+userForm.getUserPassword());
c.setComment(
"A test cookie"
);
c.setMaxAge(120);
response.addCookie(c);
多选方框,选定值后提交,然后接收到一个数组,这是小菜,看书都知道。
可是,我想给这些多选方框动态显示的时候给个选中或未选中的状态值,我是看了好几个文字材料,写得都够晕的,看是那么回事,实际操作,根本就不灵。还好我够灵光,凭直觉,终于解决。
Action
中:
//
定义一组备选爱好
[
也可以从数据库中读取
]
ArrayList hobbyList =
new
ArrayList();
hobbyList.add(
"
游泳
"
);
hobbyList.add(
"
潜水
"
);
hobbyList.add(
"
登山
"
);
hobbyList.add(
"
跳伞
"
);
hobbyList.add(
"
徒步旅行
"
);
//
定义一组选定的爱好
[
也可以从数据库中读取
]
ArrayList hobbySelectList =
new
ArrayList();
hobbySelectList.add(
"
游泳
"
);
hobbySelectList.add(
"
登山
"
);
hobbySelectList.add(
"
徒步旅行
"
);
//
定义字符串数组,如果你的那个类的属性是数组类型。
String[] hobby =
new
String[hobbySelectList.size()];
//
把
ArrayList
转换为
String[]
hobbySelectList.toArray(hobby);
//
定义你的那个
ActionForm
PersonForm personForm =
new
PersonForm();
//
设置那个数组类型的属性
personForm.setHobby(hobby);
//
注意,你给
JSP
传递的东西哦!
//
一个是:备选数组
ArrayList
//
另一个是:
JSP
可承载的
ActionForm
,注意这个
ActionForm
要有被选定的数组属性值哦!
request.setAttribute(
"hobbyList"
, hobbyList);
request.setAttribute(
"personForm"
, personForm);
return
mapping.findForward(
"ready"
);
JSP
中:
<
logic:iterate
id
=
"hobbyName"
name
=
"hobbyList"
>
<
html:multibox
property
=
"hobby"
>
<
bean:write
name
=
"hobbyName"
/>
</
html:multibox
>
<
bean:write
name
=
"hobbyName"
/>
</
logic:iterate
>
解释一下
jsp
中的参数。
hobbyList
就是那个一组备选爱好数组;
hobbyName
就是随意定义的一个变量名,来接收
hobbyList
中的项;
hobby
就是
ActionForm
的那个数组属性名称;
看了这些,我自己都晕。。。这东西看来要自己领悟了!!!
我估计那个
html:radio
也是这么用,下次再研究。
有些存储在数据库或者某些文件的信息,可能会包含一些
html
标记的限定。例如把某句话加粗等。但是简单的使用
<bean:write name=”” />
会把那些
html
标记给安全的转换,但这不是我想要的。怎么解决,发现了
filter
这个属性。应用如下:
在
Action
中我写入这样对象:
String html_1 = "<b>Hello</b>";
String html_2 = "<b>Hello</b>";
在
Jsp
中我这样使用:
<bean:write name="html_1" filter="true"/>
<bean:write name="html_2" filter="false"/>
运行的效果:
<b>Hello</b>
Hello
作了一个PPT,还有代码的讲解。给我们的同学讲过啦。在这里提供一下下载吧!
下载请点击这里哦!
总是听说什么CGI的,可是一直不知道是啥东西。现在明白了。记下来。免得忘记。
CGI
:公共网关接口
第一个用来产生动态内容的标准。
当
Web
服务器接收到一个对
CGI
程序的请求时,它便运行这个程序并向其提供它请求里面所包含的信息。
CGI
程序运行,并将输入返回给
Web Server
,
Web Server
则将输出相应给浏览器。
CGI
最大缺点:
1.
每个请求必须运行一个程序,
这会导致站点瘫痪;
2.
存在平台依赖性。
超级链接,使用起来好多技巧,我就个人发掘了一下。总结到下载中。
down