【java 9】-----Name不能添加中文?

来源:互联网 发布:周立功编程器 5000u 编辑:程序博客网 时间:2024/06/04 01:06

 

【java 9】-----Name不能添加中文?


 

前言:

       

    在编程好的系统中,输入数字、字母都没有问题,但是输入汉字,就读不出来出现“?”问号:

     


数据库表中的显示如下:

          


报错日志如下:

Incorrect string value:'\xE5\x84\xBF\xE7\xAB\xA5' for column 'address' at row 1 2017-05-15 15:05:14,254 ERROR[org.hibernate.util.JDBCExceptionReporter] - Incorrect string value:'\xE7\x9A\x84' for column 'address' at row 12017-05-15 15:05:14,257 ERROR[org.hibernate.event.def.AbstractFlushingEventListener] - Could not synchronizedatabase state with sessionorg.hibernate.exception.GenericJDBCException:Could not execute JDBC batch update   atorg.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)   atorg.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)   atorg.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)   atorg.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)   atorg.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)   atorg.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:657)   atorg.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755)   atorg.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724)   at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475)   atorg.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270)   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)   atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)   at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)   atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)   atorg.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   at com.sun.proxy.$Proxy5.update(Unknown Source)   at com.daniel.action.InfoAction.update(InfoAction.java:49)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)   atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   at java.lang.reflect.Method.invoke(Method.java:606)   atcom.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)   atcom.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)   at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)   atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)   atorg.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)   atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)   atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)    atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)   at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atorg.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atorg.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atorg.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)   atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atorg.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atcom.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)   atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)   atorg.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)   at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)   atorg.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)   atorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)   atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)   atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)   atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)   atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)   atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)   atorg.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)   atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)   atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)   atorg.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2549)   atorg.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2538)   atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)   atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)   atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)   at java.lang.Thread.run(Thread.java:744)Caused by: java.sql.BatchUpdateException:Incorrect string value: '\xE7\x9A\x84' for column 'address' at row 1   at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1669)   atcom.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1085)   atcom.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)   atorg.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)   atorg.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)   ... 90 more


 

 

解决思路:

     

1,Eclipse/MyEclipse 软件改成utf-8:

       编辑工具中该项目,更改本项目的页面编码方式为utf-8

 

2,navicat 编码方式改成utf-8

       



3,数据库(mysql/oracle/sqlserver)的编码方式:

       改成国际统一编码方式utf-8,比如我自己用的是mysql数据库,更改方法如下,打开mysql控制台查看mysql编码当前表daniel 的编码方式“showcreate database daniel”;如果不是utf-8就进行更改,步骤是输入“alter database Daniel default character set utf8”在一次查看表daniel编码方式,步骤显示如下:

     



 

4,查看jdbc链接中有设置没有:

jdbcUrl      = jdbc:mysql://192.168.21.51:3306/itcastoa0720?characterEncoding=utf8driverClass  = com.mysql.jdbc.Driveruser         = rootpassword    = 1在数据库地址后面添加上“?characterEncoding=utf-8”jdbcUrl      = jdbc:mysql://192.168.21.51:3306/itcastoa0720?characterEncoding=utf8?characterEncoding=utf-8driverClass  = com.mysql.jdbc.Driveruser         = rootpassword    = 1

 

5,如果还是没有成功:

      单独的点击开你那字段的表,进行编辑改成utf-8:

   

 



结果:

   经过上面的一些更改,再一次输入中文字,哈哈,可以了!

     


 


总结:

       编码,听起来好简单,但是当时一直在查找解决方案,还问了曹学亮同学,农历好几个小时,感谢亮亮同我一起分析,进行思路的引导,最终还是一起分析出来了。

  


解决方案思路小结:

    1,Eclipse/myeclipse开发工具属性改成utf-8


    2,navicat 编码方式改成utf-8


    3,数据库(mysql/oracle/sqlservice)编码方式改成utf-8


    4,在项目jdbc文件中添加“?characterEncoding=utf-8”


   5,如果还是没成功,更改Navicat中单独字段为utf-8


一般是这几个地方更改成utf-8之后,成了国际统一编码,系统软件就乖乖的认了,想不显示汉字难了!

 

 

阅读全文
0 0