ssh的经验

1.struts值栈分两个区域,root  (push object)  context (put map )

2.insert 完成后重定向到list

3.upate,先获取对象,再把修改好的值,更新到数据库,如果不获取,那么没有得到修改的值,就会改成0 ,“”等等

4.分页:做两件事,总记录数和当前页的记录

5.EL:总是从栈顶取值,假如page在栈顶,那么取links,只要${links}

6.struts有属性驱动

7.form提交:name   value

8.在子父关系的记录中,增加排序号的话,那么在递归删除不会有问题,只要删除时保证叶子在前面

9.一对一级联,用户分两张表:用户表和用户扩展信息表,由用户表级联用户扩展信息表,基于主键的1对1,userinfo_id,既是主键也是外键(貌似不需要设置外键),user.hibernate配置:<one-to-one name="userinfo" class="Userinfo" cascade="all"></one-to-one>

10.hibernate配置文件,如何给属性复杂值:

给出用户表配置:

<hibernate-mapping package="com.oetennis.jk.domain">
    <class name="User" table="user_p">
       

目标是给属性dept一个Dept对象

<many-to-one name="dept" class="Dept" column="DEPT_ID">

alter table USER_P add constraint FK_Reference_24 foreign key (DEPT_ID)   references DEPT_P (DEPT_ID)

猜测:<name="dept" class="Dept">说明是给属性dept一个Dept对象column="DEPT_ID"指的是USER_P.DEPT_ID,根据外键约束拼出select * from DEPT_P where DEPT_ID=xx.

目标是给属性userinfo一个Userinfo对象

<one-to-one name="userinfo" class="Userinfo" cascade="all"></one-to-one>

alter table USER_INFO_P add constraint FK_Reference_23 foreign key (USER_INFO_ID) references USER_P (USER_ID)

猜测:cascade="all" 说明根据主键去找外键,主键为USER_P (USER_ID)class="Userinfo"表示到USER_INFO_P去找外键,foreign key (USER_INFO_ID) references USER_P (USER_ID)表示反向找到外键USER_INFO_ID,拼出sql语句select * from user_info_p where  USER_INFO_ID=xx

总结:目的是拼出sql语句,要确定到哪张表根据哪一列去找,如果根据外键去找,那要写上column="外键",如果根据主键去找,那要写上cascade="all"

11.用户表和用户扩展信息表的id要分配的

<class name="User" table="user_p">

<id name="id" column="USER_ID">
            <generator class="assigned"></generator>
        </id>



<class name="Userinfo" table="USER_INFO_P">
        <id name="id" column="USER_INFO_ID">
            <generator class="assigned"></generator>
        </id>

12.让数据库默认值起作用:在<class name="User" table="user_p">,添加dynamic-insert="true"

dynamic-update="true",mysql也许用不着这样

13.不必建立外键关系也能级联删除:

<class name="User" table="user_p">

<one-to-one name="userinfo" class="Userinfo" cascade="all"></one-to-one>

</class>

当删除user时,会删除userinfo,不必建立外键关系(alter table USER_INFO_P add constraint FK_Reference_23 foreign key (USER_INFO_ID)      references USER_P (USER_ID) on delete restrict on update restrict;)

因为user对象中包含userinfo对象,userinfo对象中包含userinfo_id,就能根据主键删除userinfo

14.向oracle插入 更新默认值时,在映射文件中加入

<class name="Contract" table="CONTRACT_C" dynamic-insert="true" dynamic-update="true">,

否则会报sql异常,null之类的

15.如果要累计,像总金额,设置初始值为0,否则插入null.

16.struts2具有同名的一组属性提交,以逗号空格来分隔。

17.Quqrtz实现调度时,比如每10秒输出一次,但tomcat出现两次,修改tomcat的server.xml :

<!--<Context docBase="jk_web" path="/jk_parent" reloadable="true" source="org.eclipse.jst.jee.server:jk_web"/>-->

18.eclipse配置scheme约束:好处是在写该约束的xml标签时能提示相关信息

     windows-->preference-->xml-->xml catalog-->


19.eclipse同时复制包名和类名:


20.A类想要使用B 类,在A类中注入B类就行:

    private EpService epService;
    public void setEpService(EpService epService) {
        this.epService = epService;
    }


    <jaxws:client id="exportClient" address="http://localhost:8080/jk_export/ws/export?wsdl" serviceClass="cn.itcast.export.webservice.EpService"></jaxws:client>


<bean id="exportAction" class="com.oetennis.jk.action.cargo.ExportAction" scope="prototype">       
        <property name="epService" ref="exportClient"></property>
    </bean>
21.解决jar包冲突:例如出现这样的问题

java.lang.NoSuchMethodError: org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;


右键xmlschema


22.fastJson:

    @JSONField(name="products")   改名字
    private Set<ExportProduct> exportProducts;    //报运下的货物

    @JSONField(serialize=false) 该字段不参与转换

23.freemarker:替换

24.codemachine改变数据库时,改两处:   

1.

2.25.mysql 与oracle互转:

1.


2.


3.hql语句会不一样

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值