spring整和mybatis报错 数据库链接不上 (已解决)

DEBUG 2018-04-05 14:54:51,328 org.mybatis.spring.SqlSessionUtils: - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@17fe6f4a] was not registered for synchronization because synchronization is not active
DEBUG 2018-04-05 14:54:51,335 org.springframework.jdbc.datasource.DataSourceUtils: - Fetching JDBC Connection from DataSource
DEBUG 2018-04-05 14:54:51,534 org.mybatis.spring.SqlSessionUtils: - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@17fe6f4a]
Exception in thread "main" org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)
### The error may exist in com/ysd/dao/UserInfoMapper.xml
### The error may involve com.ysd.dao.IUserInfoDao.login
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy5.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:82)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
at com.sun.proxy.$Proxy6.login(Unknown Source)
at com.ysd.service.UserInfoService.login(UserInfoService.java:19)
at com.ysd.test.Test.main(Test.java:18)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)
### The error may exist in com/ysd/dao/UserInfoMapper.xml
### The error may involve com.ysd.dao.IUserInfoDao.login
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
... 7 more
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:82)
at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:68)
at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336)
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:84)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
... 14 more
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 24 more
Caused by: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1041)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3496)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2460)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
... 28 more
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:992)
... 44 more

 

 

applicationContext.xml配置文件:

?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:p="http://www.springframework.org/schema/p"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xsi:schemaLocation="http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://mybatis.org/schema/mybatis-spring
   http://mybatis.org/schema/mybatis-spring.xsd">
   	
   	<!--扫描注解bean  -->
   	<context:component-scan base-package="com.ysd.service" />
	
	<!--DBCP数据源  -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton">
			<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
			<property name="url" value="jdbc:mysql://localhost:3306/springjdbcwork" />
			<property name="username" value="root" />
			<property name="password" value="qq123456" />
		</bean>
	
	<!--mybatis会话工厂  -->
	<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dataSource"></property>
      <property name="configLocation" value="classpath:mybatis.xml"></property>
    </bean>
	
	<!--mybatis映射文件扫描器  -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ysd.dao" />
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
    </bean>
    
<!--     spring事务管理器 
    <bean id="txMgr" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    
    声明式事务 
    <tx:advice transaction-manager="txMgr" id="txAdvice">
      <tx:attributes>
         <tx:method name="add*" propagation="REQUIRED" />
         <tx:method name="create*" propagation="REQUIRED" />
         <tx:method name="remove*" propagation="REQUIRED" />
         <tx:method name="delete*" propagation="REQUIRED" />
         <tx:method name="modify*" propagation="REQUIRED" />
         <tx:method name="update*" propagation="REQUIRED" />
         <tx:method name="do*" propagation="REQUIRED" />
        
         <tx:method name="find*" propagation="REQUIRED" read-only="true" />
         <tx:method name="search*" propagation="REQUIRED" read-only="true" />
         <tx:method name="get*" propagation="REQUIRED" read-only="true" />
         <tx:method name="*" propagation="REQUIRED" />
      </tx:attributes>
   </tx:advice>
   
   声明式事务管理 
  <aop:config>
      <aop:pointcut expression="execution(* *com.ysd.service.*.*(..))" id="txSrvMethod" />
      <aop:advisor advice-ref="txAdvice" pointcut-ref="txSrvMethod" />
   </aop:config>  --> 
    
</beans>

  IUserInfoDao:

package com.ysd.dao;

import com.ysd.entity.UserInfo;

public interface IUserInfoDao {
	//登录
	UserInfo login(UserInfo u);
	//注册
	int register(UserInfo u);
}

  UserInfoMapper.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ysd.dao.IUserInfoDao">
  <select id="login" parameterType="com.ysd.entity.UserInfo" resultType="com.ysd.entity.UserInfo">
    select * from userinfo where uid=1
  </select>
  <insert id="register" parameterType="com.ysd.entity.UserInfo">
  	insert into userinfo values(#{uid},#{uname},#{upass},#{age},#{birthday});
  </insert>
</mapper>

  IUserInfoService:

    

package com.ysd.service;

import com.ysd.entity.UserInfo;

public interface IUserInfoService {
     UserInfo login(UserInfo u);
     int register(UserInfo u);
}

UserInfoService:

package com.ysd.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import com.ysd.dao.IUserInfoDao;
import com.ysd.entity.UserInfo;

@Component
public class UserInfoService implements IUserInfoService{
    @Resource
    private IUserInfoDao iUserInfoDao;
    
    public UserInfo login(UserInfo u) {
        System.out.println(u);
        System.out.println(iUserInfoDao);
        return iUserInfoDao.login(u);
    }
 
    public int register(UserInfo u) {
        return iUserInfoDao.register(u);
    }

}

test:

  

package com.ysd.test;

import java.util.Date;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.ysd.entity.UserInfo;
import com.ysd.service.IUserInfoService;

public class Test {
    public static void main(String[] args) {
        UserInfo user = new UserInfo();
        user.setUname("曹操");
        user.setUpass("123");
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        IUserInfoService service = (IUserInfoService) context.getBean("userInfoService");
        UserInfo u = service.login(user);
        if(u!=null){
            System.out.println("登录成功");
        }else{
            System.out.println("用户名或密码错误");
        }
    }
}

 

已解决  是因为mysql版本太高而连接驱动太低的原因   安装旧版本的mysql版本就解决了    中间尝试换了一个mysql高版本驱动 又报出来 版本编译问题 是因为 jdk版本太低导致的   完

转载于:https://www.cnblogs.com/nawei/p/8722575.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值