posts - 8,  comments - 4,  trackbacks - 0
  2011年4月18日
如何在新建一个文档时就有默认的模板内容呢?
非常简单的执行以下操作:

  cd ~
  mkdir -p .vim/skel
  vim .vim/skel/Template.py

 在Template.py里随便写一些内容,如:

#!/bin/python
#write by shelley

然后,正题来了:
打开.vimrc
   vim ~/.vimrc
写入:
   autocmd BufNewFile *.py  0r ~/.vim/skel/Template.py
保存后用vim 新建一个.py文件试试吧:)


 关于autocmd,可以参考以下链接了解:http://man.chinaunix.net/newsoft/vi/doc/autocmd.html
posted @ 2011-09-26 16:22 林齐磊花 阅读(265) | 评论 (0)编辑 收藏
又是转贴分享,哈哈哈 

时间忽悠悠,一晃自己已经远离应届生2年了。 
今天公司招聘程序员,收到了很多简历,筛选了一下,然后,约了大家面试。 
面试完后,我想起了自己应届生的求职时候的情景,当然,也想到了当时自己犯的错误,在这里给大家总结下,希望大家借鉴。 

1、电话通知面试给人留下好印象。
 
有些同学,我通知他面试的时候,刚接电话的时候的语气基本上我就会给他一个判断,有人接电话很没有精神,像是没有睡醒;有甚至嘻哈嘻哈和我说话,旁边似乎还比较吵……我觉得这个很重要,即使你在一个比较复杂的环境下,你也应该给面试方说明一下,然后自己找个安静的地方回拨电话。 
另外,在你求职期间,请时刻保持你的手机畅通,并保证你自己的手边有个小本子和笔,这样,你方便记录下别人给你通知的面试时间和地点。不要总在那里说,你把公司名称和地址给我发来一下。 
要善于用“百度地图”。很多公司人家会告诉你公司名称和公司地址,至于怎么坐车,怎么来,有很多途径的,希望同学们自己知道用百度地图去搜索下路线怎么走,不要一开口就问,我怎么到那里去。 
总之,要在电话中实现以下目的: 
A 你这个人比较有精神; 
B 你这个人很精明; 
C 你这个人不会给企业找麻烦,会自己解决问题。 

2、面试的时候,请针对你的应聘职位进行着装。 

我们招程序员,招技术,有一个女生,穿的算是潮流类的吧,还提个小包包。不管怎么着 ,我一看这个人就不像是做技术的料,做技术的典型特征就是:休闲服装,外加一个电脑包。 

3、不要忽悠,不知道就坦诚点,企业要是不是什么都会的人。
 
哪个面试官是笨蛋,还给你忽悠的机会啊。很好玩的是,有人面试的时候,那么明显的忽悠着:当时我在项目中是做什么什么的,我负责什么什么的……可我忘记了当时是怎么做的了……作为一个合格的技术,睡梦中都知道那个事件的代码是怎么写的吧。 

4、时间观念。 

没有时间观念,你说要他2点到吧,他1点多点就来到办公室^……那时候我还没有准备开始呢。更牛的人:迟到,我简直要疯了。一般来说,你面试,提前5分钟左右还好吧,不要太早,迟到,更是不允许的。当然如果有意外,请你在规定时间前30分钟就应该通知对方。 

5、多点准备工作。
 
找工作,很多人着急忙于投简历,但并没有准备相关的面试工作。有时候,来了吧,基本的问题都没有回答好,甚至连自我介绍都没有准备。我想,大家起码应该在宿舍和同学之间搞一下模拟招聘吧。不要来到公司,一开口就给人一种没有准备的感觉,什么都像心里没有底。 
可以提前点到面试地点附近,自己转悠下,刚好,缓解下紧张气氛。 

6、忌讳说:给我一个学习的机会。 

“公司都不是慈善机构”这个是我当时面试的时候,一个长辈给我说的这句话,我一直都记着,在这里也送给大家。企业招人的话,是付出了很大的成本的,你告诉他你是来学习的,哪个老板有这么的好??!出钱给你来学习??所以,你可以说你的学习能力很强,但,绝对不是来学习的。 

7、敢于说出你的期望。
 
我喜欢问大家的期望:期望找一个什么样的工作,期望有一个什么样的公司环境?很多同学说:没有关系,我觉得什么样的都可以!简直是胡说!什么样的都可以?一个月500,我看你怎么生存??你会不在乎自己的职业?会对公司没有期望??因为公司只是想找和公司比较匹配的人,说出你的期望,这样对公司和你自己都是比较好的。不要说你什么都不在乎,你以为你什么都不在乎,企业就要你了??拿个企业敢要?? 

8、不要鄙视小公司。
 
在北京、上海等大城市,有很多都是创业的小公司。3、5人的,十几人的,好的有几十人的……我不知道大家找工作的时候,看重的是什么。但面试的时候,我发现了有很多人喜欢问:你们公司有多大?你们公司经营了几年了?说实话,关心这样的问题,没有什么不对,但,你不应该一开始就问。每个公司在面试完你之后,会给你一个机会交流公司业务的,并且,你投简历之前,应该也对那个公司有一定的了解了。 
但说句真话,国内的很多小公司都不错,呵呵,起码,国家的税、国家的就业都应该感谢他们。小公司有小公司的好,他们会相对的更加自由、发展空间不会比小公司小,甚至会大很多,同时,小公司的人性化一般都不错的。所以,给大家借鉴下,不要鄙视小公司,小公司能够活下来的,都很不错的。 

9、要学会抓住机会、学会感恩。
 
我应届生的时候,有位帅哥考官对我说过一个电影《当幸福来敲门》,建议大家有时间也看下。每个到你面前的面试机会都不是那么容易的,在中国,就业难,这个问题估计未来几个世纪都改变不了的,哈哈。所以,有了机会,千万要懂得珍惜,要学会抓住机会。 
另外要学会感恩。对于招了你的公司,你更应该加倍的感激,不要一搞就跳啊跳啊跳,公司培养了你3个月,你干了4个月就闪人,这样的人说真的,是比较可恶的,呵呵。对于没有招你的人,你也应该感激人家,起码人家认可了你的简历,还给了你一次面试的机会,从整个面试中你也应该可以学习到很多东西的。如果你没有感激的感觉,那说明你不善于观察,你自己没有学习到,是你的问题了。 


……………… 
先这么多,后续再加。 
希望大家多多努力,找个满意的工作。 
学会感恩!
恩,谢谢

posted @ 2011-04-22 18:20 林齐磊花 阅读(115) | 评论 (0)编辑 收藏
在struts升级到2.2.1后,common.upload.jar成为依赖包
以下为自身琢磨出来如何使用这个组件

在Action中定义与表单同名的File类型就可以简单获得此上传文件的引用,然后打开输入输出流将其复制到所要存放的地点即可。有几个重要的get;set方法需要说明

private File file;//上传的文件
private String fileName;//注意命名规范,或在set方法中修改,必须为上传文件+name,为不带路径的文件名
private String fileContentType;//文件属性



posted @ 2011-04-21 18:43 林齐磊花 阅读(131) | 评论 (0)编辑 收藏
整了半个上午,在javascript中使用类似${module.getName()}这样的EL表达式就会出现问题,后来查了半天,有人说在JAVASCRIPT中不能使用EL,或者有人说不规范,云云。后来在一位‘大侠’的言辞中找到答案,如下引用

       之前经常看到有人说js是客房端的,EL是服务端的,不能在js中使用EL表达式----真是扯淡

       要在javascript中使用El表达式,只需在el表达式两端加上单引号或者双引号即可

       如:

       <script>
            function(){
            alert('${sessionScope.user.name}');  //获取session中user对象的name属性
         }
         </script>
也就是说只要使用$就要加单引号


顺便附一下EL内置对象
类别 标识符 描述
JSP pageContext PageContext 实例对应于当前页面的处理
作用域 pageScope 与页面作用域属性的名称和值相关联的 Map
requestScope 与请求作用域属性的名称和值相关联的 Map
sessionScope 与会话作用域属性的名称和值相关联的 Map
applicationScope 与应用程序作用域属性的名称和值相关联的 Map
请求参数 param 按名称存储请求参数的主要值的 Map
paramValues 将请求参数的所有值作为 String 数组存储的 Map
请求头 header 按名称存储请求头主要值的 Map
headerValues 将请求头的所有值作为 String 数组存储的 Map
Cookie cookie 按名称存储请求附带的 cookie 的 Map
初始化参数 initParam 按名称存储 Web 应用程序上下文初始化参数的 Map


posted @ 2011-04-20 10:14 林齐磊花 阅读(9290) | 评论 (4)编辑 收藏
在实际开发中,多对多双向表会尽量避免而无法完全避免,一旦遇到这个情况时hibernate的映射方法如下

举个例子:
多对多双向关联
关系举例:老师<-->学生,老师需要知道自己教了哪些学生,学生也知道自己有哪些老师.
数据库:中间表
Annotation:@ManyToMany
XML:<many-to-many>
多对多单向配置只需要在一端进行配置就可以了,双向需要配置两端.
关系模型(Teache多对多Student)
Teacher(id,name,students)多
Set<Student> students=new HashSet<Student>()
Student(id,name,teachers)多
Set<Teacher> teachers = new HashSet<Teacher>();
Annotation配置
在Teacher这一端的students上配置
//如果手动指定生成的中间表的表名和字段名
@ManyToMany
@JoinTable(name="t_s",
joinColumns={@JoinColumn(name="teacher_id")},
inverseJoinColumns={@JoinColumn(name="student_id")}
)
在Student一端的teachers只需要配置
@ManyToMany(mappedBy="students")
XML配置方式:两端配置一样,注意表名和生成的中间表的字段属性名要一致
Teacher那一端配置
<set name="students" table="t_s">
<key column="teacher_id"/>
<many-to-many class="com.xxx.Student" column="student_id"/>
</set>
在Student那一端配置
<set name="teachers" table="t_s">
<key column="student_id"></key>
<many-to-many class="com.xxx.Teacher" column="teacher_id"/>
</set>
生成的表为
create table Student (
id integer not null auto_increment,
name varchar(255),
primary key (id)
)
create table Teacher (
id integer not null auto_increment,
name varchar(255),
primary key (id)
)
create table t_s (//生成的中间表
teacher_id integer not null,
student_id integer not null,
primary key (teacher_id, student_id)
)
t_s表的两个属性分别references其它表的主键.
t_s(teacher_id, student_id)为中间表,ID策略为联合主键

@orderby(value="id")
posted @ 2011-04-19 19:52 林齐磊花 阅读(1367) | 评论 (0)编辑 收藏
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug
#log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE  //显示SQL语句绑定的参数
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace


posted @ 2011-04-19 19:26 林齐磊花 阅读(374) | 评论 (0)编辑 收藏
    Oracle的功能的确强大,但是如此一来面临会遇到更多的问题,在插入数据的时候Mysql只需一个now()就能很好的插入当前时间,但是如果在oracle中使用sysdate,首先格式不对,会导致在hibernate取时间的值的时候报错,stamptime格式不对,但在插入时又不能使用to_date函数,不知道是不是属性字段设置不对,最后只能在初始化数据时候使用如下语句
insert into t_user values(12,'08051312','080513012','080513012',to_date('2011-4-18

24:00:00','yyyy-mm-dd hh24:mi:ss'));

终于整理好了,倒霉了2天,居然只是因为强行将设置为字符串的‘生日’转化成timestamp,在一个没有错误的地方磨蹭了很久都没发现,唉!

测试初始化数据时 只要用sysdate就行了。在寻找这个不是错误的错误的时候学了很多函数,to_timestamp可以比to_date格式表示上多上毫秒级别
格式如yyyy-mm-dd hh:mi:ss.ff
还有,timestamp属性列可以直接插入字符串时间 如insert into T_USER (ID, USERNAME, PASSWORD, C_NUM, CREATE_DATE) values  (1, '08051301', '08051301', '08051301', '18-11月-11 12.00.00.990000 下午');

哎呀,不行 浪费太多时间了,赶紧继续学习

posted @ 2011-04-18 19:37 林齐磊花 阅读(228) | 评论 (0)编辑 收藏
<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜