ssm 使用中的一些问题

1.问题:[org.mybatis.spring.SqlSessionUtils] - Creating a new SqlSession 
[org.mybatis.spring.SqlSessionUtils] - SqlSession[org.apache.ibatis.session.defaults.DefaultSqlSession@1a714e6e] was not registered for synchronization because synchronization is not active 
[org.springframework.jdbc.datasource.DataSourceUtils] - Fetching JDBC Connection from DataSource 
[org.mybatis.spring.transaction.SpringManagedTransaction] - JDBC Connection [jdbc: mysql://localhost:3306/iot, UserName=root@localhost, MySQL Connector Java]* will not be managed by Spring*
[com.haoyifen.mySSMTemplate.dao.UserMapper.selectByPrimaryKey] - ==> Preparing: select ID, USER_ID, USER_NAME, SEX, ADDRESS, PHONE_NUMBER, MAIL_BOX from user where ID = ? 
[com.haoyifen.mySSMTemplate.dao.UserMapper.selectByPrimaryKey] - ==> Parameters: 1(Integer) 
[com.haoyifen.mySSMTemplate.dao.UserMapper.selectByPrimaryKey] - <== Total: 1 
[org.mybatis.spring.SqlSessionUtils] - Closing non transactional SqlSession[org.apache.ibatis.session.defaults.DefaultSqlSession@1a714e6e]

 

原因:重复扫描事务配置所致,spring-mybatis中扫描了一遍service

<context:component-scan base-package="cn.yzh" >

  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />

</context:component-scan>

spring-mvc中又扫描了一遍

<context:component-scan base-package="cn.yzh" >

spring如果要使事务生效,就需要cglib为userService生成代理子类,在spring.xml中已经生成了代理类,而在spring-mvc.xml中,又重新扫描了一遍,使得原先cglib生成的代理子类失效,从而事务拦截也失效。

解决:

于是在spring-mvc中改成<context:component-scan base-package="cn.yzh.controller" > 只让它扫描controller,而spring-mybatis不扫描controller就好了

参考:https://blog.csdn.net/haoyifen/article/details/51172647

 

2.报错:

java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()
解决:在pom中更新c3p0 jar包版本

 

3.

java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

解决:jdbc中加上&serverTimezone=UTC,以此来解决乱码问题

 

posted @ 2018-04-23 14:36  maidouerer  阅读(211)  评论(0编辑  收藏  举报