发博文
个人资料
javafly
javafly
  • 博客等级:
  • 博客积分:84
  • 博客访问:6,419
  • 关注人气:2
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
分类
博文
标签:

杂谈

今天终于从基础班升到高级班了,而且前三天是 张孝祥老师讲课,一个字——爽,毕竟人家是大师级的人物啊。

老师,给人的印象是一个属于爱钻研的人,他的著作——《深入体验JavaWeb开发内幕—

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

不知不觉中我们已经进入了项目阶段,这段时间的摸爬滚打,觉得自己对程序的开发已经有了
进一步的了解,没有以前那种对程序开发的神秘感。这是我对目前学习状态的概括。
 冯威老师
 在JavaWeb这阶段,一直是冯威老师带着我们学习,目前他已经去教另外一个班的JavaWeb课了。
但是冯威老师给我们留下了深刻的印象。冯老师现在已为人父,但是平时的言行给人不是那种深沉、
老练的感觉,而是一副嘻嘻哈哈的形象。听冯老师的课,不会感到无聊,他没事就和我们开玩笑,
尤其到了下午第一节课,大家午睡过后都觉得很困倦,但是冯老师总会想方设法跟大家讲几个笑话,
让大家调整一下自己的精神状态,然后开始讲课。我不善于言辞,可能这些言语都表达不了冯老师
的性格,大家有机会的话,可以过来听一听冯老师的课。冯老师的课没有一大堆的理论,用他自己
的话讲“我就是一个实干主义者”。我想这也是有必要的,我大体计算了一下,我们就业班4个月的
时间,要学习比较大的模块、框架等,加在一起大约要十多个。例如:XML,Servlet,数据库,Struts1,
Struts2,Hibernate,Spring,AJAX,Jquery,Lucene
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

OA项目中的Struts部分,Struts给我的印象是不难,不像Hibernate中那么多的配置,但是
代码写的多了,有的时候对于Struts的执行流程就晕了,一会转向到这,一会重定向到那,
因此我自己对Struts的执行流程做了一次总结,加深一下自己的印象,希望这篇总结对网友
们的Struts学习能有帮助。

2.OA项目中的Struts个人理解总结
 |--修改数据
  |--既然是修改数据,那么也就是说数据原来是存在的,因此要修改的这个对象
   就不能是new出来的,而是通过查询数据库查找到的。即:
   Role role = roleService.getById(roleId);
  |--在修改数据之前,就应该把数据准备好,然后利用Struts的回显机制,
   将数据回显到修改页面。
  |--数据回显的方法是:roleActionForm.setXxx(role.getXxx());
  |--这时,准备数据和数据回显的工作都准备好了,因此下一步就是转发到数据编辑
   页面。在RoleAction中使用mapping.findForward('editUI');来完成此工作。
  &nb

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

OA项目的Hibernate部分,学习Hibernate给人的感觉是配置太多,不容易记忆,因此
我把我们涉及到的各种关联关系列举出来。给大家一个建议,其实在学习的时候,遇到
Hibernate就总结一次,这样对自己理解Hibernate是大有好处的。如果以后在遇到问题,
可以回过头来看看自己的总结。

2.一对多,多对一,多对多,一对一关联映射代码实现。
  |--Employee实体
   public class Employee {
    private Long id;
    private String name;

    private Department department;
    private Set<Role> roles = new HashSet<Role>();

    private String sex; // 男 or 女
    private Date registerTime;
    private String phoneNumber;
    private String email;
    private String description;

    private

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

今天使我们项目开始的第一天,在传智播客学习了这么长时间,终于可以通过项目检验一下
自己定的学习成果了,今天我们讲解的是Dao层的设计。其中最重要的是反射技术,在这里
我把反射技术部分的个人理解总结出来。

 

3.在BaseImplDao中获取要操作的POJO的类型——反射。
 |--因为在BaseDao中要操作的POJO类型未知,但是还要用hibernate的Session对象
  来操作此对象来进行增删改查,因此我们可以通过泛型来操作。例如:
  public class DaoBaseImpl<T> implements DaoBase {
   protected Class<T> clazz;
   public void delete(long id) {
    this.getSession().delete(this.getSession().get(clazz, id));
   }
   ……
  }
   |--但是这样声明的clazz是一个null,既然UserDaoImpl继承了BaseImplDao,
    我们声明一个UserDao的时候,由于没有给clazz传值,因此对从BaseImplDao
&

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

JBPM是一个工作流的框架,它使我们在面对工作流的开发中变得简单,给我们上课的是汤阳光老师,
他是对比着Hibernate来给我们讲解JBPM的,呵呵,大家也许会糊涂,两者是两个框架,分属的业务
领域也不一样,怎么能对比着讲呢。其实,我这里说的对比着讲指的是他们的API,两者的API在很大
程度上有相似之处。

1.JBPM的API
 |--对Jbpm所有实体的操作(增、删、改,不含查询),都要使用Jbpm提供的API。

 |--有两个重要的类:JbpmConfiguration和JbpmContext。JbpmConfiguration是
  jBPM的相关配置信息,并有创建JbpmContext的功能,可以把JbpmConfiguration想像成
  Hibernate中的Configuration与SessionFactory的结合体。使用JbpmConfiguration.getInstance()方法
  创建一个JbpmConfiguration对象,这会使用默认的jbpm配置文件:在classpath根目录中,
  并且名字为jbpm.cfg.xml。或者是使用getInstance(String configFilePath)方法,用指定的配置文件构造。

 |--Jbpm中所有的持久化操作都是通过JbpmContext完成的,可以把他想像成

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

2.父子关系
 更强程度上的关联关系。
 表中原来存在一些“孤儿”,后来把表中的数据声明成父子关系。
 那么原来这些“孤儿”还是存在的。并不会因为这种后加上去的
 声明而消失。因为父子关系强调的是父亲来掌控孩子的生命周期,
 本来就不存在父亲,就不会影响到这些“孤儿”的生命周期。

3.清理缓存
 
 Session.flush();//清理,让数据库中的记录与缓存同步,让缓存执行一系列的sql语句,但是不提交,以便于回滚操作。
 Session.refresh();//刷新,让缓存内容与数据库的记录同步。
 Session.clear();//清空,缓存中加入了大量的信息,为了避免堆栈溢出,需清空缓存

4.Hibernate中对象的状态:临时,持久,游离
 |--临时态,是刚刚被new出来的,数据库中没有与之对应的记录。
  |--临时态--->持久态:save(),saveOrUpdate()
  |--持久态--->临时态:delete()方法。
 |--游离态,是从持久态转变过来的。
  数据库中是有与之对应的记录的。
  |--临时

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

   这里的说明大部分是老师上课提到的细节知识点,对映射文件的配置进行了详细的说明,大部分都是自己总结的,因此肯定存在疏漏、错误之处,因此请网友批评指正。

*.Customer.hbm.xml配置说明
 <?xml version='1.0'?>
 <!DOCTYPE hibernate-mapping PUBLIC
  '-//Hibernate/Hibernate Mapping DTD 3.0//EN'
  'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'>
 <hibernate-mapping>
  <class name='cn.itcast.hibernate.domain.Customer' table='hib_customers' lazy='false'>
   <!-- type映射类型 -->
   <id name='id' column='id' type='integer'>
    <generator class='increment' />
   </id>
   <property name='name' column='name' type='string' length='20' access='property'/>

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

*.Hibernate的好处(面试)
 它是一种持久化技术,封装了数据访问细节,体现了面向对象的思想。
 --->什么是细节?
  组织sql语句,遍历结果集。

*.关联:类之间的引用关系,以属性声明的方式体现
  或者一个类中的属性是另一个类的集合。
  通过主外键约束来实现。
  依赖:类之间的访问关系,一个类的方法实例化另外一个类或
  访问另外一个类的属性
  聚集:强调生命周期(逻辑上的约束),如人和手的关系,
  整体与部分的关系。部分类的对象不能单独存在,他的
  生命周期依赖于整体类的对象的生命周期,整体消失时,
  部分也随之消失。

  一般化:又叫泛化,类之间继承关系。

*.持久化层
 |--传统的典型软件3层架构
                          |
  表示层  --->  业务层 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

|--创建JavaBean——User
  |--User的内容如下
   public class User {
    private String id;
    private String name;
    private String password;
    private Date createTime;
    private Date endTime;
    ……//Getters and Setters
   }
 |--创建JavaBean的映射文件——User.hbm.xml
  |--该文件主要用来记录JavaBean的相关信息,以便被Hibernate所了解。
   该文件可以在hibernate-3.2\eg\org\hibernate\auction  ——3.2版本
   或hibernate-distribution-3.3.1.GA\project\tutorials\eg\src\main\java\org\hibernate\auction  ——3.3版本
   下找到。

  <?xml version='1.0'?>
  <!DOCTYPE hibernate-mapping PUBLIC
   '-//Hibernate/Hibernate M

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

   bernate的配置文件涉及到的属性配置较多,我个人觉得没有必要死记硬背,老师讲过的知识点,自己心里列一个类似于数据库中索引的东西,用到的时候,翻一翻笔记,查一查资料,或者看一看自己以前写的代码,就OK了。

|--在工程内引入如下jar包
  |--HIBERNATE_HOME/hibernate3.jar
  |--HIBERNATE_HOME/lib/ *.jar (所有的jar包)
  |--MySql jdbc驱动
 |--创建hibernate配置文件hibernate.cfg.xml
  这个配置文件可以在 hibernate-3.2\etc  ——3.2版本
  或在 hibernate-distribution-3.3.1.GA\project\etc  ——3.3版本
  找到,该文件的主要功能是告知Hibernate“做事情”的方式。该文件的格式如下:
  <!DOCTYPE hibernate-configuration PUBLIC
   '-//Hibernate/Hibernate Configuration DTD 3.0//EN'
   '

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有