• 阅读809
  • 回复3

[资源共享] 【推荐视频】Java私塾新春贺礼系列,天天都有新惊喜——S2H3项目

  [复制链接]
发表于 2010-1-27 14:32 | 显示全部楼层 |阅读模式
一直关注他们的视频,真不错。在新春来临之际,Java私塾又送来新春贺礼,强悍的Struts2+Hibernate3的项目视频,可谓是一道‘料味十足的年夜饭’。推荐给大家细细咀嚼。每天都会有最新视频推出,好好消化吧,在长膘的同时,也长长知识。
整体视频大纲:
Java私塾的这一套Struts2+Hibernate3的项目视频是完全真实课堂录制,实际上课时间为六天,
课程重点还是放在对技术的深入学习和应用上,不追求业务的完整,还不到完整实现业务的时候。

视频主要内容包括:
1:Struts2和Hibernate3在实际项目开发中的使用
2:自定义泛型、反射、注解、枚举等技术在实际项目中的应用
3:通用的DAO实现
4:模型属性和配置文件自动生成
5:使用枚举进行常量管理
6:根据自定义注解的配置来自动生成代码
7:用Taglib来封装翻页
8:IT设备管理系统的业务和实现

重要声明:关于这套视频的难度
    这套视频在技术上有一定的难度,有些朋友可能会觉得有点困难,
但事实上,这就是一个合格程序员的正常水平,这也是Java私塾的学生都能够接受的水平,所以难度并不高。
    那么为什么有朋友会觉得困难呢?主要有如下两个原因:
    (1)相应的基础知识水平不够,这套视频涉及的知识较多,而且是在开发中应用,要求掌握到一定的深度,有些朋友储备不够,
                    不像Java私塾的学生,是系统学习上来的,这个项目是Java私塾在两个半月学完Struts2和Hibernate3之后的一个练习小项目。
    (2)开发思维或者编程思想达不到一定的高度,这套视频有很多公共功能的抽取和通用化实现,很多朋友程序写得比较少,
                    也没有受到真正项目开发的熏陶,更不要说这种功能的通用实现了,所谓眼界决定境界。
   
    因此:如果你只喜欢看你看得懂的,只喜欢学习你觉得容易的东西,那么请不要观看本视频。
   
    同时:对于有一定的技术储备,愿意认真学习新知识,切实提升自己开发实力的朋友,请认真学习本视频!
第一部分下载网址:
javass.qupan.com/
六安论坛
 楼主| 发表于 2010-1-28 15:12 | 显示全部楼层
顶上去一起分享一下
六安论坛
回复 鲜花 臭蛋

使用道具 举报

 楼主| 发表于 2010-1-29 15:38 | 显示全部楼层
接上面的第二节
下载地址是:xz.qupan.com/down/javass_5739697.html
以下是第二节内容:

第二节重要说明 通用DAO的实现
1、泛型要解决的问题
        泛型就是为了解决一个类可以处理多种对象,如List可以容纳不同的东西;那么,DAO的抽象父类可以处理不同的Model

2、应用自定义泛型
        在类或接口的声明后定义泛型,并且可以用extends关键字对泛型进行边界控制

3、抽取DAO的实现
        在抽象的DAO类里面实现各种增、删、改、查方法。
        不同的DAO的getByCondition方法中,方法的架子都是一样的,只不过准备hql和向query里面设值,随着不同的model变化而变化,因此把他们做成抽象方法由子类实现;在父类里面由getByCondition调用
        每个DAO类都已处理一种Model为主,因此,在写联表的查询和不联表的查询时,getAll和getByCondition方法中有四个地方不一样。因此,在抽象类实现了不联表的情况,如果子类想使getAll和getByCondition中联表,就必须同时实现那四个抽象方法。

4、新建泛型类的对象,必须用Class对象
        这就是为什么必须把Class对象用构造方法传上去,当然,我们可以反射的读出UserDAOHibernateImpl<UserModel,UserQueryModel>中定义的第一个泛型的类,但是太复杂,在课堂上没有演示。

5、抽象的优缺点
        我们使用抽象减少了重复代码,这样既可以减少简单重复的劳动,又减少了出错的机会。但是,这样做打散了DAO的代码,让程序员难窥全豹,使得程序员刚开始的时候不太习惯。不过,在真实的工作中就是这么做的,需要大家习惯。


下面分技术点来简要描述一下视频的内容:

一:泛型加强
1、以第一个月的项目为载体讲自定义泛型
2、使用泛型
3、泛型容器之间的赋值
4、自定义泛型
5、泛型类型的限定
6、自定义泛型、传递泛型和使用泛型

二:通用DAO的实现
1、泛型要解决的问题
2、应用自定义泛型
3、抽取DAO的实现
4、新建泛型类的对象,必须用Class对象

三:新版的增删改查
1、应用通用的DAO
2、真实值/表现值的转换
3、通用拦截器
4、查询条件放在列表页面上,保存查询条件,新版翻页
5、My97DatePicker日历控件的使用
6、新版的翻页

四:真实值/表现值转换深化强调,model属性和配置文件自动生成
1、各种真实值/表现值转换体现在model里面的代码
2、使用ResultSetMeta和DataBaseMetaData反射的读一个表里面的所有字段
3、自动生成model里面的属性
4、自动生成配置文件里的<property>

五:常量管理
1、使用枚举来管理枚举式真实值/表现值转换的缺点,枚举内有大量相似代码无法去掉
2、自己编写代码模拟枚举(灵感来自<<Effictive Java>>第一版)
3、使用缓存保证只反射的读取一次
4、使用taglib封装,使得action不再为页面的<select>做准备
5、constance使得项目中期再增加枚举里的数据项非常简单,同时做到了一次注册到处使用

六:入库模块
1、整个项目的大致业务
2、完整的入库模块实现
3:UUID自动生成

七:DAO条件的配置生成、自定义注解的应用
1、dao中的generateHQLWhere方法和prepareQuery方法比较机械,使用配置生成可以提高工作效率并免于错误
2、根据自定义注解的配置自动生成这些代码
3、反射读取model的所有field的时候要递归的读取

八:报修模块
1、报修模块业务
2、报修模块实现
3、派工单的反馈人是可以为null的主键,必须用左外联处理,在hql中使用临时表模拟左外联

九:抽象页面代码的重复部分
1、通用的处理下拉框选项过多问题,使用弹出页面进行按关键字查询,注意:做的是通用的,任何下拉框都可以用
2、把分页的那一大段代码抽成了taglib,使得以后方便引用

十:分配模块
1、分配模块业务
2、分配模块实现
3、改善用户体验

十一:项目总结
1、以正向的方式进行分析,分析实体、角色、单据之间的关系,以及操作的适用角色、前置条件和操作结果。
2、项目组人员构成,人员分工,人员的发展轨迹。
六安论坛
回复 鲜花 臭蛋

使用道具 举报

 楼主| 发表于 2010-1-30 15:38 | 显示全部楼层
第三节视频又出来了,一起分享
第三节 新版的增删改查
1、应用通用的DAO
2、真实值/表现值的转换
        在Model里面一定要既提供真实值,又提供表现值,让表现层程序员去选用。
        写的时候要把真正的field和为真实值/表现值转换写的field/setter/getter写在不同的区域。
3、通用拦截器
        在Action执行之前打印出这次web请求的参数以及运行的是哪个Action,在Action执行之后打印出转到哪个JSP页面,只是方便程序员调试用,在开发的时候加上;在真正运行的时候需要去掉。
4、My97DatePicker日历控件的使用
5、查询条件放在列表页面上,保存查询条件,新版翻页
        在翻页的时候也是post提交,所以可以把查询条件一起提交过去,重新查询。这和我们以前学的专门的查询页面把条件放在session里不同。要注意,在改变查询条件的时候,要把翻页的按钮禁掉。
六安论坛
回复 鲜花 臭蛋

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

侵权举报:本页面所涉内容为用户发表并上传,相应的法律责任由用户自行承担;本网站仅提供存储服务;如存在侵权问题,请权利人与本网站联系删除!举报微信号:点击查看