您的位置:首页 > 其它

用SSH做采购系统遇到的问题

2016-01-09 17:03 239 查看
1、注入sessionFactory

 <bean id="userDao" class="com.UserDaoImpl">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>

把<ref bean 改成<ref local

2、


SQL Error: 1064, SQLState: 42000错误原因

 


保留字被引起来后可以用作识别符。如果在表中使用这些会报1064,42000错误。

ADDALLALTER
ANALYZEANDAS
ASCASENSITIVEBEFORE
BETWEENBIGINTBINARY
BLOBBOTHBY
CALLCASCADECASE
CHANGECHARCHARACTER
CHECKCOLLATECOLUMN
CONDITIONCONNECTIONCONSTRAINT
CONTINUECONVERTCREATE
CROSSCURRENT_DATECURRENT_TIME
CURRENT_TIMESTAMPCURRENT_USERCURSOR
DATABASEDATABASESDAY_HOUR
DAY_MICROSECONDDAY_MINUTEDAY_SECOND
DECDECIMALDECLARE
DEFAULTDELAYEDDELETE
DESCDESCRIBEDETERMINISTIC
DISTINCTDISTINCTROWDIV
DOUBLEDROPDUAL
EACHELSEELSEIF
ENCLOSEDESCAPEDEXISTS
EXITEXPLAINFALSE
FETCHFLOATFLOAT4
FLOAT8FORFORCE
FOREIGNFROMFULLTEXT
GOTOGRANTGROUP
HAVINGHIGH_PRIORITYHOUR_MICROSECOND
HOUR_MINUTEHOUR_SECONDIF
IGNOREININDEX
INFILEINNERINOUT
INSENSITIVEINSERTINT
INT1INT2INT3
INT4INT8INTEGER
INTERVALINTOIS
ITERATEJOINKEY
KEYSKILLLABEL
LEADINGLEAVELEFT
LIKELIMITLINEAR
LINESLOADLOCALTIME
LOCALTIMESTAMPLOCKLONG
LONGBLOBLONGTEXTLOOP
LOW_PRIORITYMATCHMEDIUMBLOB
MEDIUMINTMEDIUMTEXTMIDDLEINT
MINUTE_MICROSECONDMINUTE_SECONDMOD
MODIFIESNATURALNOT
NO_WRITE_TO_BINLOGNULLNUMERIC
ONOPTIMIZEOPTION
OPTIONALLYORORDER
OUTOUTEROUTFILE
PRECISIONPRIMARYPROCEDURE
PURGERAID0RANGE
READREADSREAL
REFERENCESREGEXPRELEASE
RENAMEREPEATREPLACE
REQUIRERESTRICTRETURN
REVOKERIGHTRLIKE
SCHEMASCHEMASSECOND_MICROSECOND
SELECTSENSITIVESEPARATOR
SETSHOWSMALLINT
SPATIALSPECIFICSQL
SQLEXCEPTIONSQLSTATESQLWARNING
SQL_BIG_RESULTSQL_CALC_FOUND_ROWSSQL_SMALL_RESULT
SSLSTARTINGSTRAIGHT_JOIN
TABLETERMINATEDTHEN
TINYBLOBTINYINTTINYTEXT
TOTRAILINGTRIGGER
TRUEUNDOUNION
UNIQUEUNLOCKUNSIGNED
UPDATEUSAGEUSE
USINGUTC_DATEUTC_TIME
UTC_TIMESTAMPVALUESVARBINARY
VARCHARVARCHARACTERVARYING
WHENWHEREWHILE
WITHWRITEX509
XORYEAR_MONTHZEROFILL
3、SQL Error: 1364, SQLState: HY000 ;Field 'account' doesn't have a default value

解决方法:把<generator class="native"></generator>改成<generator class="increment"></generator>

4、No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here

这里不是每次都能拿到当前的session的,即getCurrentSession不是总是能获取非空值。
你可以在getSession方法里面给一个判断,如果sessionFactory.getCurrentSession();的返回值为空的话,就用sessionFactory.openSession();方法来新开一个session来返回就行了。

5、jsp如何获得action中保存的session

jsp获取action传来的session值问题有一下几种方法:

比如我action中有个session ("sessionid","11111111")

一、用struts标签获取:<s:property value="#session.sessionid"/>

二、<%=request.getSession.getAttribute("sessionid");>  session也是内置对象之一,可以直接用session,比request.getSession方便多了

       也可以写成<%=session.getAttribute("sessionid");>

三、el表达式获取:${sessionScope.sessionid}

  如果赋值的是个bean,也是一样的,类似于${sessionScope.bean.beansth}

6、No suitable Log implementation没有合适的日志实现

应该是打开日志的时候出现的错误

7、struts2的action需要继承或实现什么

Struts2的action主要有两种方式:
1.实现Action 接口 (implements Action)
2、继承ActionSupport类(1)Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。 (2)另外,Actionsupport还提供了一个getText(String key)方法还实现国际化,该方法从资源文件上获取国际化信息,这样在自定义标签时可以定义一个变量为new actionsupport对象实现国际化。9、@BeforeClass什么作用@BeforeClass @AfterClass注解是junit提供的另外的两个注解。

一般用在AOP方式的测试上。
一个是前置执行,一个是后置执行

10、Don't
know how to iterate over supplied "items" in <forEach>
解释:传的不是集合所以不能遍历

11、org.hibernate.exception.DataException:
Could not execute JDBC batch update

有可能是你的实体类总的数据类型与数据库中字段的类型对应的不一致,导致更新的时候出错.比如数据库是number类型,但是你在实体中设置为string.检查一下,也有可能是属性的个数不一致

12、java.sql.BatchUpdateException: Data truncation: Data too long for column 'price' at row 1

这个是因为数据库字段的长度为0

13、thread pool Exception线程池异常

	解释一:对象中没有足够的自由线程来完成操作
14、java.lang.OutOfMemoryError: PermGen space
对于我的程序出现这种情况是因为我再服务器上多次发布了我的同一个项目(大量的class文件)引起的,其实项目只要第一次发布到服务器上就可以了,不用再次发布(重启服务器的时候)

网上解释原因:

 一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
 解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 
 建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
 二、java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。 
 解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m" 
 三、实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true " 

15、java.lang.reflect.InvocationTargetException

我碰到该问题的根源是实体文件被我改过,而映射文件没有修改导致的问题

16、The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-
 mappings?,action*)".
原因:package里元素必须按照一定的顺序排列:

result-types
interceptors
default-interceptor-ref
default-action-ref
default-class-ref
global-results
global-exception-mappings
action*(所有action放到最后)
我得情况是struts里面有没被标签包住的字符

17、Encountered "<EOF>" at line 1, column 1. 
SQL语句语法错误,最有可能的是你的引号""少了一个,没有引好。
18、com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'number' in 'where clause'
这个错误一定产生在sql语句中,不要在其他错误上浪费功夫
以上是我开发阿德一个简易采购系统遇到的一些问题整理出来(部分),供以后查阅
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh