老师,编码都设置为了utf8,登录界面还是不能跳转。

老师,编码都设置为了utf8,登录界面还是不能跳转。

Caused by: org.springframework.jdbc.UncategorizedSQLException: 
### Error updating database.  Cause: java.sql.SQLException: Incorrect string value: '\xE5\xA4\xB1\xE8\xB4\xA5' for column 'result' at row 1
### The error may involve imooc.sm.dao.LogDao.insert-Inline
### The error occurred while setting parameters
### SQL: insert into log values(?,?,?,?,?,?)
### Cause: java.sql.SQLException: Incorrect string value: '\xE5\xA4\xB1\xE8\xB4\xA5' for column 'result' at row 1
; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1366]; Incorrect string value: '\xE5\xA4\xB1\xE8\xB4\xA5' for column 'result' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xE5\xA4\xB1\xE8\xB4\xA5' for column 'result' at row 1
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
	at com.sun.proxy.$Proxy19.insert(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
	at com.sun.proxy.$Proxy23.insert(Unknown Source)
	at imooc.sm.service.Impl.LogServiceImpl.addLoginLog(LogServiceImpl.java:27)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
	at com.sun.proxy.$Proxy24.addLoginLog(Unknown Source)
	at imooc.sm.global.LogAdvice.log(LogAdvice.java:68)
	at imooc.sm.global.LogAdvice.loginLog(LogAdvice.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:603)
	at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:46)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
	at imooc.sm.controller.SelfController$$EnhancerBySpringCGLIB$$95aa8bd6.login(<generated>)
	... 30 more
Caused by: java.sql.SQLException: Incorrect string value: '\xE5\xA4\xB1\xE8\xB4\xA5' for column 'result' at row 1
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
	... 65 more


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

16回答
好帮手慕阿莹 2019-06-09 10:13:59

之前添加不进去,看起来是中文的问题,建议同学可以先插入一条非中文的数据,然后再试试。如果没有问题,那说明同学的程序是没有问题的,

建议同学可以把表重新新建一下。新建表格的时候,同学可以通过Navicat等或者课程中讲的workbench 等图像化界面添加一下数据。先测试一下,是数据的格式问题,还是代码的问题。祝学习愉快。


提问者 慕神1262057 2019-06-07 18:13:28

http://img1.sycdn.imooc.com//climg/5cfa389c0001cc3d02770122.jpg

老师,数据库staff里面是空的

好帮手慕柯南 2019-06-07 14:41:58

同学你好!

  1. idea的校验较为严格,所以此处可以忽略

    http://img1.sycdn.imooc.com//climg/5cfa06720001e7d903650041.jpg

  2. 应该是数据库中没有查到值,同学检查一下以下语句要查询的数据是否在数据库中,可以用sql语句在数据库中查询一下

    http://img1.sycdn.imooc.com//climg/5cfa06c90001209905500073.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

提问者 慕神1262057 2019-06-07 11:39:41

http://img1.sycdn.imooc.com//climg/5cf9dc1900013ea213660768.jpg

http://img1.sycdn.imooc.com//climg/5cf9dc19000180c913660768.jpg

老师,我发现这里的staff一直为空不知道是怎么回事?我查看了selfDao.xml文件和咱视频上写的一样,不知道接下来该怎么解决呢老师?


提问者 慕神1262057 2019-06-07 10:25:47

http://img1.sycdn.imooc.com//climg/5cf9caf70001cefd05370277.jpg

老师,请问这个问题是不是idea的通病,不用管?

提问者 慕神1262057 2019-06-06 19:53:39

控制台后边两个窗口没有报错,数据库log里是这样的:(其中登陆成功的插入的数据。)http://img1.sycdn.imooc.com//climg/5cf8fea00001befc06320357.jpg

好帮手慕阿满 2019-06-06 15:44:44

同学你好,控制台没有报错,建议同学看一下控制台后边的两个窗口是否有报错,如:

http://img1.sycdn.imooc.com//climg/5cf8c43d00010f3b05210074.jpg

另外同学的数据库中有数据吗?登录时使用的用户名及密码正确吗?建议同学检查一下。

祝:学习愉快~

  • 提问者 慕神1262057 #1
    控制台后边的两个窗口没有报错,而且insert into log values(2019/6/5,'log','wang','SelfController','login','登录成功') 数据库能插入数据,但是登录界面依然不能跳转,我贴了数据库log的数据,显示登录失败,老师,不知道是怎么回事了
    2019-06-07 07:53:50
  • 提问者 慕神1262057 #2
    数据库用户名和密码是正确的,人员管理系统登录时使用的用户名是wang,密码是123456,我记得视频里设置的密码是这样子的
    2019-06-07 07:55:57
  • 好帮手慕珊 回复 提问者 慕神1262057 #3
    同学,你好!你在登陆功能执行的代码中添加输出语句,比如:System.out.println("1");这种类似,随便输出内容就行,目的是跟踪一下登陆功能的执行过程,看一下为什么登录失败。祝学习愉快!
    2019-06-07 09:53:38
好帮手慕阿满 2019-06-06 09:41:50

同学你好,如下代码是同学测试时添加的吗?

http://img1.sycdn.imooc.com//climg/5cf86f2a0001503a06600089.jpg

建议同学删掉再试试。

祝:学习愉快~

  • 提问者 慕神1262057 #1
    老师,这个我已经删了,我最新提问的不是这个问题,是控制台不报错,但是一直在登录界面不跳转,请您再看一下问题可以吗?
    2019-06-06 15:20:22
提问者 慕神1262057 2019-06-05 20:12:08
Connected to server
[2019-06-05 08:12:25,443] Artifact sm_web:war exploded: Artifact is being deployed, please wait...
05-Jun-2019 20:12:27.035 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[2019-06-05 08:12:27,125] Artifact sm_web:war exploded: Artifact is deployed successfully
[2019-06-05 08:12:27,125] Artifact sm_web:war exploded: Deploy took 1,682 milliseconds
05-Jun-2019 20:12:27.755 淇℃伅 [http-nio-8080-exec-3] org.springframework.context.support.ClassPathXmlApplicationContext.prepareRefresh Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6a4ed78f: startup date [Wed Jun 05 20:12:27 CST 2019]; root of context hierarchy
05-Jun-2019 20:12:27.845 淇℃伅 [http-nio-8080-exec-3] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions Loading XML bean definitions from class path resource [spring.xml]
05-Jun-2019 20:12:28.739 淇℃伅 [http-nio-8080-exec-3] org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName Loaded JDBC driver: com.mysql.jdbc.Driver
05-Jun-2019 20:12:35.235 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [E:\01soft\1studySoft\Tomcat\apache-tomcat-8.5.40\webapps\manager]
05-Jun-2019 20:12:35.305 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [E:\01soft\1studySoft\Tomcat\apache-tomcat-8.5.40\webapps\manager] has finished in [70] ms

老师,现在控制台是这个样子,但是登陆界面输入用户名和密码之后还是不能跳转,一直让登录


提问者 慕神1262057 2019-06-05 20:05:01


http://img1.sycdn.imooc.com//climg/5cf7af560001a15706370260.jpg

数据库可以插入数据但是依然不能跳转,显示如下错误:

Caused by: org.springframework.jdbc.BadSqlGrammarException: 
### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2
### The error may involve imooc.sm.dao.LogDao.insert-Inline
### The error occurred while setting parameters
### SQL: insert into log values(?,?,?,?,?,?)         insert into log values(now(),'log','wang','SelfController','login','登录成功');
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2
	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
	at com.sun.proxy.$Proxy19.insert(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
	at com.sun.proxy.$Proxy23.insert(Unknown Source)
	at imooc.sm.service.Impl.LogServiceImpl.addLoginLog(LogServiceImpl.java:29)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
	at com.sun.proxy.$Proxy24.addLoginLog(Unknown Source)
	at imooc.sm.global.LogAdvice.log(LogAdvice.java:60)
	at imooc.sm.global.LogAdvice.loginLog(LogAdvice.java:65)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:603)
	at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:46)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
	at imooc.sm.controller.SelfController$$EnhancerBySpringCGLIB$$d209416b.login(<generated>)
	... 30 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.Util.getInstance(Util.java:408)


提问者 慕神1262057 2019-06-05 19:12:15
  • 问一下同学有安装workbench吗?建议同学在workbench中添加一下数据试试呢。祝:学习愉快~
    2019-06-05 19:23:59
好帮手慕阿满 2019-06-05 18:27:41

同学你好,这里是建议直接向数据库中插入一条数据,不是通过程序插入,例如:

http://img1.sycdn.imooc.com//climg/5cf7990e00015a4706670075.jpg

查看是否能直接插入数据。

祝:学习愉快~

提问者 慕神1262057 2019-06-05 16:47:11

Caused by: org.springframework.jdbc.BadSqlGrammarException: 

### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2

### The error may involve imooc.sm.dao.LogDao.insert-Inline

### The error occurred while setting parameters

### SQL: insert into log values(?,?,?,?,?,?)         insert into log values(now(),'log','wang','SelfController','login','登录成功');

### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2

; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2

at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)

at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)

at com.sun.proxy.$Proxy19.insert(Unknown Source)

at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)

at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)

at com.sun.proxy.$Proxy23.insert(Unknown Source)

at imooc.sm.service.Impl.LogServiceImpl.addLoginLog(LogServiceImpl.java:29)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)

at com.sun.proxy.$Proxy24.addLoginLog(Unknown Source)

at imooc.sm.global.LogAdvice.log(LogAdvice.java:60)

at imooc.sm.global.LogAdvice.loginLog(LogAdvice.java:65)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:603)

at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:46)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)

at imooc.sm.controller.SelfController$$EnhancerBySpringCGLIB$$d209416b.login(<generated>)

... 30 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into log values(now(),'log','wang','SelfController','login','登录成功' at line 2

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)

at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)

at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)

at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)

at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)

at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)

at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)

at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)

at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)

... 65 more

老师,LaoDao.xml中的sql语句结尾加不加分号都是这个错误,这该怎么解决哦?

好帮手慕阿满 2019-06-04 18:28:19

同学你好,建议同学向数据库插入一条数据试试,查看是否会报错。如:

insert into log values(now(),'log','wang','SelfController','login','登录成功');

祝:学习愉快~

  • 提问者 慕神1262057 #1
    老师,这里的LogDao.xml文件不是不能加分号的吗?
    2019-06-05 16:34:14
提问者 慕神1262057 2019-06-04 11:12:19
//spring.xml里的配置:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!--spring是管理对象的-->
    <!-- spring 整合 Mybatis-->
    <!-- 数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/sm?useUnicode=true&amp;characterEncoding=UTF-8"></property>
        <property name="username" value="root"></property>
        <property name="password" value="110110"></property>
    </bean>
    <!-- session工厂-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="typeAliasesPackage" value="imooc.sm.entity"/>
    </bean>
    <!-- 持久化对象 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="imooc.sm.dao"></property>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>

    <!-- 声明式事务-->
    <!--事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--- 通知 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="get*" read-only="true"/>
            <tx:method name="find*" read-only="true"/>
            <tx:method name="search*" read-only="true"/>
            <tx:method name="*" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>
    <!-- 植入 -->
    <aop:config>
        <aop:pointcut id="txPointcut" expression="execution(* imooc.sm.service.*.*(..))"/><!--任意返回值-service包-任意类-任意方法-任意参数-->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"></aop:advisor>
    </aop:config>

    <!--自动扫描-->
    <context:component-scan base-package="imooc.sm"/>
    <aop:aspectj-autoproxy/>

</beans>

//my.ini里的配置:

[client]

# pipe=

# socket=MYSQL

default-character-set=utf8

port=3306

[mysql]

no-beep

default-character-set=utf8

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci


mysql 控制台输入show variables like  'character%';显示除了filesystem编码是binary其它都是utf8        在MySQLworkbench里挨个对数据库sm里表的字符串设置了Ddfault为'utf8'



好帮手慕阿莹 2019-06-04 11:00:49

请同学贴一下,你的编码是如何设置的呢?

相关的配置是写在xml中的还是写到配置文件或者java文件中的呢?

如果是写到xml中的,& 要用 &amp; 进行转译呦。请同学再检查一下

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师