发表于: 2017-10-08 22:46:33

1 802


今天完成的事情:

1 上传项目到云服务器上:


Spring+mybatis的结合使用:

Application作为javabean,其属性一一对应数据表,重写toString。

ApplicationMapper定义操作一个接口,包含对数据库的CRUE。

ApplicationService实现具体控制台与用户的交互。

ApplicationMapper.xml映射sql语句。

mybatis-config.xml定位Mapper.xml,映射别名。

Springconfig.xml管理连接数据库的操作。

jdbc.properties是数据源的属性文件。


具体实现:



2 Q25:不关闭连接池10000次查询测试:


未使用dbcp:


使用dbcp:

pom添加依赖:

<dependency>

  <groupId>org.apache.commons</groupId>

  <artifactId>commons-dbcp2</artifactId>

  <version>2.1.1</version>

  </dependency>

  <dependency>

  <groupId>org.apache.commons</groupId>

  <artifactId>commons-pool2</artifactId>

  <version>2.4.2</version>

</dependency>


xml中增加dbcp2的bean:

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">

    <property name="driverClassName" value="${jdbc.driverClassName}" />  

        <property name="url" value="${jdbc.url}" /> 

        <property name="maxTotal" value="50"/> 

        <property name="initialSize" value="50"/>

        <property name="minIdle" value="10" />     

        <property name="maxWaitMillis" value="30000" />       

</bean>

结果:


使用连接池,速度明显提高了!


3 Q26

trycatch处理正常。



明天计划的事情:

总结任务一。
遇到的问题: 

1 maven打包问题:

Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]

pom.xml中加入如下插件:

  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-shade-plugin</artifactId>  
  4.     <version>1.4</version>  
  5.     <executions>  
  6.         <execution>  
  7.             <phase>package</phase>  
  8.             <goals>  
  9.                 <goal>shade</goal>  
  10.             </goals>  
  11.             <configuration>  
  12.                 <transformers>  
  13.                     <transformer  
  14.                         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
  15.                         <resource>META-INF/spring.handlers</resource>  
  16.                     </transformer>  
  17.                     <transformer  
  18.                         implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
  19.                         <mainClass>org.shunly.ApplicationService</mainClass>  
  20.                     </transformer>  
  21.                     <transformer  
  22.                         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
  23.                         <resource>META-INF/spring.schemas</resource>  
  24.                     </transformer>  
  25.                 </transformers>  
  26.             </configuration>  
  27.         </execution>  
  28.     </executions>  
  29. </plugin>  

2 使用dbcp时候。。

实际上用的是dbcp2的jar包,但是按照教程写了class="org.apache.commons.dbcp.BasicDataSource"之后,报错:

Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [Springconfig.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

修改:dbcp加个2

收获:

1对于maven的打包问题有了一些了解

2 由于数据库连接,关闭的操作是一个高耗能操作在遇到复杂情况时(资源的频繁分配,释放问题),会极大的降低了系统的性能。

为解决这个问题,开发了提前开辟数个连接,根据实际情况动态增加减少连接等一系列管理操作。这种数据库连接池技术提供了资源重用、响应速度提升、统一管理等优势,实现了更高效更安全的连接。


基本的dbcp2配置属性:

initialSize0当这个池被启动时初始化的创建的连接个数,起始生效版本:1.2
maxTotal8可以在这个池中同时被分配的有效连接数的最大值,如设置为负数,则不限制
maxIdle8可以在池中保持空闲的最大连接数,超出设置值之外的空闲连接将被回收,如设置为负数,则不限制
minIdle0可以在池中保持空闲的最小连接数,超出设置值之外的空闲连接将被创建,如设置为0,则不创建
maxWaitMillisindefinitely(如果没有可用连接)池在抛出异常前等待的一个连接被归还的最大毫秒数,设置为-1则等待时间不确定


dbcp2参考博客:http://bsr1983.iteye.com/blog/2092467



返回列表 返回列表
评论

    分享到