java ssh项目启动异常说明

来源:互联网 发布:2016网络直播红人排名 编辑:程序博客网 时间:2024/06/05 20:12

1、异常信息如下:

ERROR - Servlet.service() for servlet action threw exception
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Every derived table must have its own alias

 

当前配置使用 MySQL数据库。

 

解决方式:

修改 hibernate的 hibernate.dialect属性 为当前配置的数据库对应的类。

 

 

 

2、项目运行过程中报错信息:No Dialect mapping for JDBC type: -1

 

解决方式:

自定义一个方言类:

该类需要继承与我们使用的数据库相应的方言类。比如:如果我们用的是MySql(版本为5.x.x),我们需要继承“org.hibernate.dialect.MySQL5Dialect”;如果我们使用的是DB2,那么我们应该继承“org.hibernate.dialect.DB2Dialect”;我用的是SqlServer2008,所以我要继承“org.hibernate.dialect.SQLServerDialect”

package com.cai.util ;import java.sql.Types;    import org.hibernate.Hibernate;  import org.hibernate.dialect.MySQL5Dialect;  /**  * 重写MySQL5Dialect类,注册Types   * @author lz  *  */  public class CustomMySQLDialect extends MySQL5Dialect {   public MyDialect(){    super();        registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());    registerHibernateType(Types.LONGVARCHAR,Hibernate.STRING.getName());    registerHibernateType(Types.BINARY,Hibernate.STRING.getName());    registerHibernateType(-1, Hibernate.STRING.getName());   registerHibernateType(Types.LONGVARCHAR, Hibernate.CLOB.getName());//注册text,Types.LONGVARCHAR的值就是-1    registerHibernateType(Types.LONGVARBINARY, Hibernate.BLOB.getName());//注册blob,Types.LONGVARBINARY的值就是-4         }   }  


 


说明: 如果你的数据库是mysql,而又用了decimal类型,报错应该是 No Dialect mapping for JDBC type: 3 . 注意这个3, 它说明hibernate不能将这种数据类型映射到你的java类中. 就需要在自定义的方言中用到:说明:

如果你的数据库是mysql,而又用了decimal类型,报错应该是 No Dialect mapping for JDBC type: 3 . 注意这个3, 它说明hibernate不能将这种数据类型映射到你的java类中. 就需要在自定义的方言中用到:

registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
 

如果你用了text数据类型,hibernate根本就不认识这种数据类型,所以会返回No Dialect mapping for JDBC type: -1

这样的话,就需要在方言中加入:

registerHibernateType(-1,Hibernate.STRING.getName());

<prop key="hibernate.dialect">     com.cai.util.CustomMySQLDialect</prop>


3、 java.sql.SQLException:Incorrect integer value: '???è???‰??????????'  for column "paramName" at row 1

解决方式: 检查数据库表字段类型是否和程序一致。

 

4、org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count

解决方式:

保存时设置主键字段为null

关于Hibernate的 Batch update returned unexpected row count from update异常
ERROR [http-8080-Processor22] (BatchingBatcher.java:60) - Exception executing batch:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
出现这一错误的主要原因有两个
(1)使用的是hibernate的saveOrUpdate方法保存实例。saveOrUpdate方法要求ID为null时才执行SAVE,在其它情况下执行UPDATE。在保存实例的时候是新增,但你的ID不为null,所以使用的是UPDATE,但是数据库里没有主键相关的值,所以出现异常。

=================================================================
异常:
在插入时:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
解决方法:
unsaved-value="null"是否设置
可仔细看http://www.iteye.com/topic/1604
(2)在Hibernate映射一对多,多对一,多对多的时候新增常常会出现这个异常,代码如下:

Java代码 复制代码 收藏代码
  1. public void saveFunctionCell(FunctionCell functionCell, Integer pid) {    
  2.   System.out.println("现在进行新增操作");    
  3.   FunctionCell fc = new FunctionCell();    
  4.     try {    
  5.    BeanUtils.copyProperties(fc, functionCell);    
  6.   } catch (IllegalAccessException e) {    
  7.    e.printStackTrace();    
  8.   } catch (InvocationTargetException e) {    
  9.    e.printStackTrace();    
  10.   }    
  11.   fc.setFuncCellID(null);    
  12.   // 获得父权限    
  13.   FunctionCell pfc = functionCellDao.findFunctionCellByID(pid);    
  14.   fc.setParentFunctionCell(pfc);    
  15.   functionCellDao.saveFunctionCell(fc);    
  16. }   


关键是beanutils的用法!!!!
注意特别标识出来的这个地方,BeanUtils拷贝Bean属性的时候,它会将你的Integer类型全部设置成0,在这里设置一个空,这样就不会抛出错误了。
这个解决办法来自
http://hain.iteye.com/blog/105744

update by id    

  1. if(id==0)    
  2.   org.hibernate.StaleStateException:  Batch  update  returned     
  3. unexpected  row count  from  update:  0  actual  row  count:  0  expected:  1    
  4. else    
  5.   success  


 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 不想干了想辞职怎么办 药流期间老是吐怎么办 在工厂上班辞工后没发工资怎么办 培训期三天想走怎么办 药流吃了药吐了怎么办 工作3天不下去怎么办 在新公司融不进去怎么办 药流吃药吐了怎么办 药流期间发烧了怎么办 药流时第一天出现呕吐怎么办有事吗 药流第一天忘记第二次吃药了怎么办 药流吃药后吐了怎么办 药流只排血块不见孕囊怎么办 药流三天还有血怎么办 药流15天同房了怎么办 药流22天同房了怎么办 药流一直不排出怎么办 宝宝脸过敏红了怎么办 小孩湿疹脸上都是红红的怎么办 眼周刺痛红红的怎么办 脸敷面膜刺痛红红的怎么办 脸上有凹凸不平的坑怎么办 宝宝脸上角质层薄有红血丝怎么办 红衣军到决赛圈怎么办 宝宝湿疹留下的黑印怎么办 出牙宝宝很烦躁怎么办 法斗嘴唇破了怎么办 狗嘴巴周围红了怎么办 脸上起红包还痒怎么办 睾丸胀痛有下坠感怎么办 英语不好又不会读怎么办 七个月宝宝手上长倒刺怎么办 字母纹身纹反了怎么办 花甲生的吃了怎么办 别人告我欠他钱怎么办 实习手册没有公司的印章怎么办? 家长管的太严怎么办 对于老公沉迷于股票怎么办 月经期吃了香瓜怎么办 月经漏到内裤上怎么办 上班没时间养狗怎么办