jbpm与OA项目开发过程实录 (三)

1、一般情况下,如果数据要进行回显,则把数据放入对象栈中,页面上可以根据name属性的值进行回显
   如果把数据放入到map栈中,则页面根据value的值进行回显,而且value=“%{ognl表达式}”
2、strtus2的模型驱动一般不会把其中的数据直接放入数据库,而是会赋值给一个相应的对象,
3、一个参数在连续的几个压面中用到,怎样传值
    *在页面中设置隐藏域
    *利用cookie
4、chain与rediection的区别
5、泛型:
    *泛型是java中的类型
    *java.lang.Type可以代表java中所有类型
    *泛型是被参数化的类型
         *类型----Class
         *被参数化-Class类型可以传递参数
    *泛型存在的意义
          *多态的不足
          实际的类型和需要的类型有可能不匹配,则会报类型转换异常
          *泛型可以再编译的时候告诉Class类型,传递的参数是什么类型,
          如果类型错误,则会在编译的时候报错
    *泛型所表现的形式
           *ArrayLisy<T>
          *ArrayList是Class类型
          *T是一个形式参数,在传实参的时候确定其的具体值
          *在创建ArrayList对象的时候就确定实参
          *表现:ArrayList <Person> a = new ArrayList<Person>();
           *public Interface PersonDao<T>{}
              *public class PersonDaoImpl implements PersonDao<Person>{}
          *谁上面加的T谁给T传值
           *public class Person<? extends Cooleaction>传递的参数只能是结合的子类
    *泛型的用法
           *T传过来是要用的
             *public class Person<T>{}
            那么这个T可以用在字段和方法(参数和返回值)上面
           *getClassGenericSuperclass()代表子类获取父类的泛型类
6、页面显示多表的时候,该怎么去做更方便
    *现在有一个用户表一个订单表,要求把用户和用户的订单全部显示出来?
       *get(from user) ----- user.getOrders()效率低
       *框架排错技巧  整合s-h s-s2
          思路一定要清晰,逐步排错
       *当你觉得一件事很不好做的时候吗,你坚持个30天,习惯了就不是难事了
    *一个泛型的类不能实例化,所以不需要加注解
   用户查询
    *单表的查询
       *页面显示的字段和数据库中字段的比太少
            投影:select new Person_Select(pid,pname) from Person
        当select语句仅仅选择查询持久化类的部分属性时,Hibernate返回的查询结果为关系数据,
        而非持久化类对象。持久化对象会一直位于session的缓存中,而应用程序若不再引用关系数据,
        就会释放所占的内存,可以利用这个原理提高查询的性能。
        如:只需显示一个对象中的几个属性,则可考虑定义一个新的BEAN,保存查询数据,且操作上是面向对象的方式。
       *页面显示的额字段和数据库中字段差不多
        from Person查询
    *多表查询(根据页面来决定)
       *客户订单表
          *在一个页面中显示客户信息,在客户信息中有一个超级链接,点击,在另外一个页面中显示该客户的订单信息
             *后台:from Customer
            *一对多集合默认的加载模式是懒加载,所以在执行上述hql语句的时候并没有加载订单信息,
         *点击超级链接的时候
            *后台:from Order o from o.customer.cid = ?
            利用这样的hql语句就能够加载订单信息
           *在一个页面中既显示客户信息又显示订单信息
                *使用迫切左外连接:让结构变好一点,只发出一条sql语句
       *要显示的数据来自于多张表怎么办?
           *三张表(一对多,多对多)采用三张表迫切左外连接的方式来做
           *若果页面上字段比数据库中少的多怎么办?
               后台from User:字段太多
            user.getDeparts();--部门
            user.getPosts()--岗位
            在不影响性能的情况下,新建一个javaBean
                显示username,dname
            select new UserView(u.username,d.dname) from User u inner join u.depart d
            显示username,dname,pname
            select new UserView (u.username,u.posts,d.dname)这里hibernate是不支持的,因为post是个集合
              
                如果有很多用户,一个用户有多个岗位,既不是要查询很多次?
               三张表关联:这样发出sql语句就减少(方案:抓取策略)
                  from User u left join fetch u.depart d left join fetch u.posts p
              这里会有重复的查询出来:把查询的集合放在set里面
            *页面提交问题:
            一个页面提交的数据属于使用单个表:使用模型驱动
            属于多张表的字段
              注册员工
                *利用模型驱动和属性驱动的模式
                   属性驱动的数据类型是怎么获取转换的呢?
                     V-String -> A->Long这个过程是怎么样获取转换的呢?
                multiSelectIntercept拦截器
                *vo-bo 如果工作繁琐的话
                       
7、在session环境下进行对象的更新操作,需不需要进行update操作?
    *增删改,无论你处不处于session环境中,你首先必须处于事务中,没有事务哪来的增删改
    session是否关闭,update需要事务,反正我service调用完毕,事务关闭了,所以说需要进行
    update操作,只有session环境是执行不了增删改查的


你可能感兴趣的:(ssh,开发笔记)