1.SSM项目
2.原来使用的是DBCP连接池
配置如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="#{dbConfig.url}" />
<property name="username" value="#{dbConfig.username}" />
<property name="password" value="#{dbConfig.password}" />
<property name="driverClassName" value="#{dbConfig.driverClassName}" />
</bean>
3.使用Druid连接池时做了如下更改:
①导入druid1.1.6jar包
②将配置文件中DBCP的配置改为:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="#{dbConfig.url}" />
<property name="username" value="#{dbConfig.username}" />
<property name="password" value="#{dbConfig.password}" />
<property name="driverClassName" value="#{dbConfig.driverClassName}" />
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minIdle" value="10"></property>
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxActive" value="120"></property>
<!--初始化接数据库连接池 -->
<property name="initialSize" value="2"></property>
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxWait" value="12000"></property>
<!--配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒。 -->
<property name="timeBetweenEvictionRunsMillis" value="60000"></property>
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<!-- 用来检测连接是否有效的sql,要求是一个查询语句 -->
<property name="validationQuery" value="SELECT 1 FROM DUAL"></property>
<!--空闲时是否进行验证,检查对象是否有效 -->
<property name="testWhileIdle" value="true" />
<!--取得对象时是否进行验证,检查对象是否有效 -->
<property name="testOnBorrow" value="false" />
<!--返回对象时是否进行验证 -->
<property name="testOnReturn" value="false" />
<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
<property name="filters" value="stat" />
<!-- 长时间不适用的连接强制关闭 -->
<property name="removeAbandoned" value="true" />
<!-- 超过30分钟开始关闭空闲连接 -->
<property name="removeAbandonedTimeout" value="1800" />
</bean>
4.项目启动后,登录系统(第一次执行sql)时,报错
报错内容:
Caused by: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NullPointerException
### The error occurred while executing a query
### Cause: java.lang.NullPointerException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy23.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43)
at com.sun.proxy.$Proxy24.selectByUsername(Unknown Source)
at cn.sxau.vc.service.ShiroUserSer.findUsername(ShiroUserSer.java:173)
at cn.sxau.vc.realm.UserRealm.doGetAuthenticationInfo(UserRealm.java:82)
at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568)
at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:180)
at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:267)
at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198)
... 87 more
看这个想是连接不上数据库,查到的东西是空?各位大神求解啊,难道换Druid连接池的步骤不是这些吗?为什么会链接不上数据库呢?