您的位置:首页 > 编程语言 > Java开发

java开发遇到的问题总结(一)

2015-10-12 16:59 573 查看
0、搭建框架(SSI)时注意事项:1)写好jsp、Action、bean、dao、service里所用的类后,需要在src/struts-config中配置struts2<action name="前台所要跳转到的action" class="action类名"method="action中的方法名"></action>2)在WebRoot/spring-config/名.xml中配置spring: <bean id="Dao类名" class="Dao的实现类全路径" > <property name="sqlMapClient"> <ref bean="sqlMapClient" /> </property> </bean> <bean id="service类名" class="service的实现类全路径" > <property name="Dao类名里的属性名(为防止意外可以与下一行的ref bean里填写的一样)"> <ref bean="Dao类名(与上面配置Dao的id名必须一致)" /> </property> </bean> <bean id="Action的类名" class="Action的全路径" singleton="false"> <property name="service里的属性名(为防止意外可以与下一行的ref bean里填写的一样)"> <ref bean="service类名(与上面配置service的id名必须一致)" /> </property> </bean>3)配置sqlMapConfig.xml:把你在bean中所写的.xml文件配置到此文件中,如<sqlMap resource="com/ailk/bomc/report/itsm/bean/KpiPerMonSys.xml"/>需要写全路径4)注意在.xml文件中需要有完整的头部,否则会报错,完整头部:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="emergencyKPIspace10"><typeAlias alias="map" type="java.util.Map"/><typeAlias alias="list" type="java.util.List"/></sqlMap>5)在DaoImpl类中需要继承SqlMapClientDaoSupport因为在spring的Dao时里面依赖注入了它的属性sqlMapClient。6)注意在sericeImpl类中要写Dao的setter与getter方法,Action类中也要写service与Bean的setter和getter方法。项目运行流程:Action――>service――>serviceImpl――>Dao――>DaoImpl――>bean中的.xml所对应的sql。1、报错:Thereis no statement named emergencyKPIspace.codename in this SqlMap.原因:自己写的.xml没有加载到sqlMapConfig.xml中,应写:<sqlMap resource="com/ailk/bomc/report/emergencyKPI/bean/Kpi.xml"/>即:绝对路径/你所写的.xml2、注意:在ibatis中#变量#,是用来传值,$变量名$用来字符串拼接3、报错:Cannotmake a static reference to the non-static method queryNatureCodeName() from thetype KpiTotalEveNatureDaoInterf翻译:不能让一个静态引用非静态方法queryNatureCodeNameKpiTotalEveNatureDaoInterf()的类型原代码:




原因:return时应该为Dao的对象即小写的kpiTotalEveNatureDaoInterf4、报错:Themethod getSqlMapClient() is undefined for the type KpiTotalEveNatureDaoImpl原因:Dao层需要继承extendsSqlMapClientDaoSupport6、报错:


原因:框架搭建错误,或者.xml的sql空间名称冲突7、报错:Exceptionoccurred during processing request: nulljava.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)原因:查看dao中所引用的sql及命名空间是否正确,或者是xml中sql的id等是否匹配正确。8、报错:com.ibatis.common.jdbc.exception.NestedSQLException: --- The erroroccurred while applying a parameter map. --- Check theemergencyKPIspace3.getQueryEveList-InlineParameterMap. --- Check the statement(query failed). --- Cause: java.sql.SQLException: ORA-00933: SQL 命令未正确结束原因:在JAVA中接接字符串处对应不一致。9、报错:---Theerror occurred while applying a parameter map. --- Check theemergencyKPIspace3.getQueryEveList-InlineParameterMap. --- Check thestatement (query failed). --- Cause: java.sql.SQLException: ORA-00904:"B"."FLD_MAT_HAPPEN_DATE": 标识符无效原因:传入时间在.xml拼接的位置不对应,原SQL中的时间条件在哪写,拼接的<isNotEmpty prepend="AND" property="fromTime"><![CDATA[ b.fld_mat_happen_date>=to_date(#fromTime#,'yyyy-MM-dd hh24:mi:ss')]]>也要写在相应位置上,不能随便放置。10、当ibatis的SQL中有汉字时需要通过变量来传递。1)变量不参与业务逻辑时可以直接在DaoImpl中写,如:


然后在ibatis的xml文件中用到汉字的地方用#括起来,如select* from 表名 where 字段名=#fault#2)当其参与业务逻辑时需要在serviceImpl中写11、ibatis中条件in中传入的字符串会自动在其前加有空格(原因:?),导致匹配不正确,所以在要去掉其空格。例:for (int i = 0; i < loadcodename.length; i++) {if(i==(loadcodename.length-1)){ resultString=resultString+"nvl(sum(decode(A.fld_mat_kind,'"+loadcodename[i].trim()+"',nvl(taskcount,0),0 )),0)\"colum"+i+"\""; }else{ resultString=resultString+"nvl(sum(decode( A.fld_mat_kind,'"+loadcodename[i].trim()+"',nvl(taskcount,0),0 )),0) \"colum"+i+"\","; } }12、报错:Unableto instantiate Action, KpiPerMonSysAction, defined for 'queryPerMonSysList' in namespace '/'KpiPerMonSysAction翻译:KpiPerMonSysAction无法实例化操作,为“queryPerMonSysList”名称空间定义KpiPerMonSysAction“/”原因:在配置struts的文档中action的class里的内容必须与spring配置文档中的action的id值一致。如

13、报错:--- Theerror occurred while applying a parameter map. --- Check theemergencyKPIspace10.getQuerySysList-InlineParameterMap. --- Check thestatement (query failed). --- Cause: java.sql.SQLException: ORA-01840: 输入值对于日期格式不够长原因:sql中的日期格式不符合规定的格式14、报错:Exceptionoccurred during processing request: null原因:请求或传值时不匹配或传空值。15、给页面添加“加载中...”代码:document.getElementById("wholeEveNatureDataPanel").innerHTML =""; Ext.get("wholeEveNatureDataPanel").mask("加载中...","x-mask-loading"); 在 Ext.Ajax.request里再添加:Ext.get("wholeEveNatureDataPanel").unmask();其中括号里为你自己显示页面的Data要渲染到的地方16、async:false修改为同步(ajax)17、给导出的单元格加格式(括起来的为加背景色,两行代码才能设置成功。让其在坛坛坛坛循环单元格时调用)

循环单元格时调用以上方法:




本文出自 “java” 博客,请务必保留此出处http://haoxiaoli.blog.51cto.com/8691383/1702179
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: