我的程序适用ibatis连接数据库,由于某些项目的原因,无法适用spring管理dao,因此只能自己写代码来创建dao 配置文件如下: <?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> 
<properties resource="DB.properties" /> <settings 
lazyLoadingEnabled="true" 
useStatementNamespaces="false" 
cacheModelsEnabled="false" 
enhancementEnabled="false" 
/>   <transactionManager type="JDBC"> 
    <dataSource type="SIMPLE"> 
      <property name="JDBC.Driver" value="${driver}"/> 
      <property name="JDBC.ConnectionURL" value="${url}"/> 
      <property name="JDBC.Username" value="${first}"/> 
      <property name="JDBC.Password" value="${second}"/> 
    </dataSource> 
  </transactionManager>   <sqlMap resource="publishReport.xml"/> 
</sqlMapConfig> 初始化salmap的代码如下: public static synchronized SqlMapClient initSqlMapClient() 

if(sqlMap == null) 

try 

LOGGER.info("开始初始化数据库连接"); String resource = "SqlMapConfig.xml"; 
Reader reader = Resources.getResourceAsReader(resource); 
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); 
reader.close(); LOGGER.info("数据库连接初始化结束"); 

catch(Exception e) 

LOGGER.error("数据库初始化失败:" + e.toString()); 

} return sqlMap; 

通过日志可以看到程序中的确只有一个sqlMap 但是在项目运行之后,发现oracle数据库中 
select count(*) from v$process 
值增加了很多,而且好像有数据库连接就会增加,但不是每次都增加那么多,但规律没有明确。 
个人感觉似乎是我每次执行sqlMap.query或sqlMap.update等的时候就会增加session 
不明白这是为什么,select count(*) from v$process值总增加,到了150时,就连接不上数据库了,虽然可以调整数据库设置,使最大值增加,但这样增加还是早晚会出问题,请问如何解决?