发表于: 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中加入如下插件:
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <transformers>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
- <resource>META-INF/spring.handlers</resource>
- </transformer>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <mainClass>org.shunly.ApplicationService</mainClass>
- </transformer>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
- <resource>META-INF/spring.schemas</resource>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </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配置属性:
initialSize | 0 | 当这个池被启动时初始化的创建的连接个数,起始生效版本:1.2 |
maxTotal | 8 | 可以在这个池中同时被分配的有效连接数的最大值,如设置为负数,则不限制 |
maxIdle | 8 | 可以在池中保持空闲的最大连接数,超出设置值之外的空闲连接将被回收,如设置为负数,则不限制 |
minIdle | 0 | 可以在池中保持空闲的最小连接数,超出设置值之外的空闲连接将被创建,如设置为0,则不创建 |
maxWaitMillis | indefinitely | (如果没有可用连接)池在抛出异常前等待的一个连接被归还的最大毫秒数,设置为-1则等待时间不确定 |
dbcp2参考博客:http://bsr1983.iteye.com/blog/2092467
评论