传智播客JAVA培训数据采集系统2010-6- 6
数据采集系统对于我而言,是在传智的最后一个正式的项目了。因为我个人对 3G并不是非常感兴趣,当所有的对此趋之若骛时,我没兴趣.我始终认识J2EE才是王道,更是基础之道,连基础的知识都没有掌握,就要去掌握这些知识, 是不是有一点飞跃的感觉,这个没有学会走路就去奔跑,这样,你不摔跟头,谁摔跟头呢?所以啊,做任何事情还是要脚踏实地的做,千万不要好高骛远,当然,你也可以把我写的当成笑话,一笑了之!所以,我會好好的把所有的基礎知識掌握牢固,才對三G項目從長計義吧!
項目過程中的知識要點:
hibernate映射技艺:
1.timestamp:年月日,时分钞都可以!
2.hibernate默认都是 lazy=true
3.如果不想一个数据生成之后发生改变,就可以设置 update=false;
4.batch-size=""
5.子元素与column 是互斥的,只能用一个。
savaOrUpdate()到底是保存还是更新呢?
取决于:
默认:<id unsaved-value="null"> unsaved-value="null" 就是给saveOrUpdate看的!其的作用就是:当id的值库null时,就执行插入操作。但如果是基本类型时,id就为0了,就可以把null 改为0。
整合hiberante,spring的入口:
HibernateDaoSupport 这是spring提供的类,但这样会让spring与hibernate紧密耦合在一起!
在设置关联关系都是设置的: lazy="true" fetch="select"(默认)
Dao面向数据 数据库中的表数据,基本上每一个表都有一个DAO与之相对应
Service 对DAO方法的重新组合,
为什么有DAO之后还要抽象出Service?
答:可扩展,可维护
Get/load的区别:
都走缓存,一级(session)和二级(sessionFactory)
Load:如果数据库中没有将产生异常,没有给定id号
检索策略有影响。
Get:如果数据中没有返回空(null)
在实现抽象 dao的时候:
ParameterizedType type = (ParameterizedType) getClass()
.getGenericSuperclass();
clazz = (Class<T>) type.getActualTypeArguments()[0];
仍然非常重要。
使用注解来让 spring容器管理,默认使用名字库类名。
Dao都是单例的,设计好之后,轻易是不会变的
Propagation:设置传播行为
Isolation:设置隔离级别 通常库默认
脏读 幻读 不可重复读
1.读未提交
2.读已提交
4.可重复读
8.串行化(悲观) 问题:可不可以设置一条sql语句库悲观锁
(第一天视频四,需要仔细的看看看)
错误消息添加及显示:
addFieldError("tom","fffff");
<s:fielderror>
<s:param>
</s:fielderror>
模型驱动这个接口:ModelDriven,有一个ModelDirven的拦截器,会将Model打碎,把里面的属性放在valueStace顶。就可以直接取出来了!