工作中遇到的问题

1.Cannot set property  'index'  of  undefined

 不能设置 index的属性为未定义

出现问题的原因:<table>

<tr>

<td></td>

</tr>

    </table>

因为自定义的tableAjax可以自动生成表格,你自定义的<tr><td>,就会和自动生成的表格冲突。所以就报错了!!!

 

解决方法:把自定义的tr,td注释掉即可!!!!!(花了整整4个小时啊!心好累啊!)

 

2.当控制台报告的文件名或者方法名与你的不同的时候,可以试着把项目缓存清了

myeclipse

   1.普通的java项目、javaweb项目:

             1).  点击菜单栏上面的project---选择clean ..

            2). 选择clean projects selected below --在想要清理的项目前面打上勾----点击ok

       3). 稍等片刻。。。  完成清理了

3.org.apache.ibatis.binding.bindingexceptio:Invalid bound statement (not found):

一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,我经常就是写错了一两个字母搞的很长时间找不到错误

按以下步骤一一执行:

1:检查xml文件所在的package名称是否和interface对应的package名称一一对应

2:检查xml文件的namespace是否和xml文件的package名称一一对应

3:检查函数名称能否对应上

4:去掉xml文件中的中文注释

5:随意在xml文件中加一个空格或者空行然后保存

一般来说到此就可以排除错误了

 

项目中显示的问题是  MyTaskDao.java 中有个方法而MyTaskDao.xml中并没有与之对应的方法,所以报了这个错误!

 

4.当你存的汉字用excel导出来时,变成了Oracle数据库的一个地址时的解决方法

原因是 我在数据库里存的汉子个数超过2000,使用的是clob,这个类型是没有办法直接转化为字符串的

之前:<result   column="controlMeasures"    property="CONTROLMEASURES"  jdbcType="clob">

  <result  column="controlMeasures"    property="CONTROLMEASURES"  jdbcType="clob"  javaType="string"       typeHandler="org.apache.ibatis.type.ClobTypeHandler">

 

5.tomcat启动的一个项目时,却报了另一个项目的错!

报错原因:tomcat启动时候会自己加载webapp下面的所有的项目

解决方法:右键点击tomcat你要启动的项目--->选择Browse  deployment  location--->删除你不用启动的那些项目

                 重启tomcat就可以了。

 

6.当传入的值为Map时取值的方法

<insert   id="addWorkFlowLinkReport"  parameterType="java.util.Map">

      ............values(#{param.repoertId});

 

7.no processes deployed with key

启动工作流的时候报错: 报错原因:虽然把该流程的diagrams的压缩包文件放了进去,但是并没有部署到项目中去,

 解决方法:在项目的界面中,把压缩包部署进去就好了。。。。

 

8.登陆Oracle数据库报错:ORA-12154: TNS: 无法解析指定的连接标识符

报错原因:连接的时候就直接输入了用户名和密码,结果报错,其原因时因为没有在tnsnames.ora来配置文件中没有

  配置要连接服务器的哪个数据库

解决方法:在文件中添加新的数据库的配置信息 配置详解1,配置详解2

 小例子:

下面是一个tnsnames.ora文件内容举例:
ora =                                             //连接描述符名:ora
  (description =                               //描述
          (address =                                 //网络地址之一
                 (protocol = tcp)                        //网络协议(tcp表示TCP/IP协议)
                 (host = 129.9.114.22)              //服务器IP地址:129.9.114.22
                 (port = 1251)                          //服务器端口号:1251
         ) 
       (connect_data =                         //连接数据
               /* (sid = ora7)                            //数据库标识名:ora7

                (SERVER = DEDICATED)*/               //非必要

                (SERVICE_NAME = ora9i) //你想要连接的数据库

         ) 

 ) 

把这个添加上去,就可以连接了。。。。。。

9.Oracle 如何在左边显示所有的表

在菜单 Tools 下面有个 Object browser 将其打勾(如果已经打勾了就不用管了),之后在IDE的左边有个Objects窗口,其中有一个树型结构图,在里面找到Tables 展开就可以了看到所有的Table了

10.项目与tomcat8架包有冲突

HTTP Status 5000-Unable to  complie  class for  jsp:

description:The server encountered an internal  error  that  prevented it  from  fulfilling  this request

note: the full stack of the  root cause is available   in the  Apache  Tomcat/8.0.15 logs

项目启动正常,但是一发起请求就会报这个错误,前辈也提到过这个错误

于是有下了一个tomcat7,然后在esclipse中又配置了一个tomcat7,然后用tomcat7来启动

右键点击service--->选择Configure Server Connector --->tomcat  home directory:E:\tomcat-7.0.2

 tomcat  home directory:E:\tomcat-7.0.2

  tomcat  home directory:E:\tomcat-7.0.2\temp

然后把项目部署到tomcat7重启,项目运行正常。

 

11.java中的三目运算符

string id=request.getParamter("id")==null?" ":request.getParamter("id");

如果问号前面的式子成立,则id=" ";如果不成立的话id=request.getParamter("id");(也就是以冒号来区分)

 

12.navicat和sqlServer添加数据后,调出sql语句的方法

navicate:添加字段    当字段内容输入完毕,先不要点击“保存”,点击sql预览,就可以看到你的sql语句。

查看已添加的数据,选中表-->右键--->对象信息---->DDL即可看到sql语句

点击左上角的【工具】,选择历史日志选项,或者直接【ctrl+H】。

sqlServer:添加时,旁边直接有sql预览

右键选中表---->导出----->以sql文件导出,所有的添加的sql语句都记录在一个文本中导出

查看历史执行sql语句,CTRL+e

 

13.svn有提交时有冲突,怎么解决?

1.先把别人的代码粘贴过来(这时候时不能保存,不能提交的)

2.把粘贴后的文件,先复制一遍(待会覆盖提交之后要用)

3.点击覆盖/提交,这时文件变成和svn中一样的了

4.然后把代码清空,把之前的代码粘贴过来,就可以了

 

14.饼状图,柱状图

点击打开链接   spring定时器demo

 

15.The used SELECT statements have a different number of columns 错误解决

select

c.id  id,

c.code_value  value,

c.code_cn       name,

c.parentId       pid,

c.unit_type      type,

from e_code c

where  c.code_type=#{param.type}

   and   c.code_valeu=#{value}

union  all

select

c.id  id,

c.code_value  value,

c.code_cn       name,

c.parentId       pid,

c.unit_type      type,

from e_code c

where  parent_id in (

    select  c.id

    from e_code  c

                    where  c.code_type=#{param.type}

                        and   c.code_valeu=#{value}

 

   )

union all

select

c.id  id,

c.code_value  value,

c.code_cn       name,

c.parentId       pid,

c.unit_type      type,

from e_code c

where  parent_id in (

  select  c.id

    from e_code  c

where parent_id in(

    select  c.id

    from e_code  c

                    where  c.code_type=#{param.type}

                        and   c.code_valeu=#{value}

   )


出错原因:当时只是在第一个查询语句中加了 c.unit_type      type,剩下的两个查询语句中都没加,因为union all要求

       查询结果的列数,字段名称必须一致,所以会报错! 把剩下的两个查询语句都加上了 c.unit_type 就可       以了。

这里在说一下,union和union all的区别:

 

UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。 
1、对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复记录。 
2、对排序的处理:Union将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。 
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用UNION ALL。

 

使用union  all  的时候,如果需要排序的话,可以把查出来的结果当作一个临时表  然后后面加个order  by

错误的版本。

SELECT S.s1 AS n1, S.s2 AS n2, Y.y2 AS n3, S.s3 AS n4

FROM SINNERJOIN Y ON S.s1 = Y.y1WHERE S.s4 = 'student'

UNIONALL

SELECT S.s1 AS n1, S.s2 AS n2, Z.z2 AS n3, S.s3 AS n4 FROM S

INNERJOIN Z ON S.s1 = Z.z1

WHERE S.s4 = 'teacher'

ORDERBY n1 DESC;

正确的版本。

SELECT * FROM (SELECT S.s1 AS n1, S.s2 AS n2, Y.y2 AS n3, S.s3 AS n4

FROM SINNERJOIN Y ON S.s1 = Y.y1WHERE S.s4 = 'student'

UNIONALL

SELECT S.s1 AS n1, S.s2 AS n2, Z.z2 AS n3, S.s3 AS n4 FROM S

INNERJOIN Z ON S.s1 = Z.z1

WHERE S.s4 = 'teacher') t

ORDERBY t.n1 DESC;

 

16.在mybatis中什么时候使用$,什么时候使用#?

在sql语句中  如果值前面是#号,编译的时候会给值加“”

    如果值前面是$号,编译的时候不会加任何处理

例如:<if test="param.fFlyUnit!=null and param.fFlyUnit!=‘’">这是一个模糊查询的条件

AND c1.code_cn LIKE concat('%',${param.fFlyUnit},'%')注意现在是$,会报错

unknown column ‘ 传入的值’in ‘where clause’

如果是#号的就不会有问题

<if test="param.fStatus!=null and param.fStatus!=‘’">

AND t.fStatus in (${param.fStatus});这个时候,就不可以用#号了

17. 前台的数据全都反射封装到一个对应的类中的对应的属性,可能一个属性中封装了和多个数据

例如:前台传过来一个对象,对象里有一个属性userId,这个userId中对应了很多人的id,这个时候如何

处理这个值呢?

String userIds[]=userId.split(",");

List<Vo> list=new ArrayList()<Vo>;

Vo vo=new Vo();

for(int i=0;i<userIds.length;i++){

vo.setId(usertIds[i]);

}

一般就是这样处理的!

18.关于sql语句中的or关键字的使用方法

今天写一段sql语句中and和or连用,导致and后面的过滤条件不起作用,例子如下

<if test=param.area!=null andparam.area!=' '>

AND (c1.parent_ID in (select id from e_code where code_type='INCIDENT_UNIT' and CODE_VALUE in (${param.area})) or c1.code_value in (${param.area})

</if>

当时因为使用了or而没有加()导致了,下面的时间筛选条件没有起作用。当把()加上之后就可以了。。。。

下面是根据时间段查询的mybatis语句

<if test=param.fStartDate!=null and param.fStartDate!=' '>

AND t.FLY_MONTH&gt;=str_to_date(#{param.fStartDate},'%Y-%m');

</if>

 

<if test=param.fEndDate!=null and param.fEndDate!=' '>

AND date(t.FLY_MONTH)&gt;=last_date(str_to_date(#{param.fEndDate},'%Y-%m'););

</if>

18.Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]

点击打开链接链接就是解决方法

19.java.lang.NoClassDefFoundError: org/springframework/cglib/transform/impl/MemorySafeUndeclared

点击打开链接 解决方法

同样是把spirng的版本降下来就可以了

 

 

20.如果后台数据一个字段下面有多个值 如何查询出来

先看sql <select id="queryCodeMulitleName"  paramterType="java.util.HashMap"  resultType="java.long.String">

                    select GROUP_CONCAT(code_cn)

                    from

                    (    select  code_cn,code_value

                            from e_code

                            where  CODE_TYPE=#{codeType}

                    )c,

 

                    (    select  ${sourceColumn}

                            from ${sourceTable}

                            where  ${compareColumn}=#{compareValue}

                    )t

                    where instr(concat(',',t.${sourceColumn},','),concat(',',code_value,','))

                    </select>

                serviceImpl.java

                 List<SecurityRiskInfoVo>  list=this.securityRiskInfoDao.UeryRiskInfoByParam(param)

                HashMap<String,String>map =new HashMap<String,String>

                 map.put("sourceTable","e_security_risk_info");

                map.put("compareColumn","id");

                map.put("codeType","USER_OFFICE_TYPE");

                 for(SecurityRiskInfoVo  vo  :   list){

                map.put("comparaValue",String.valueOf(vo.getTd()));/监管局主管部门

                 map.put("soruceColumn","SUP_AUTHORITY");

                  vo.stSupAuthority(commonService.queryCodeMutileName(map));

                 }

                return  list;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值