发表于: 2017-06-17 22:54:56
1 1092
今天完成的事情
任务24-29,任务1基本完成了,但有很多细节没有顾及。在云服务器上跑通了main。
测试一下不关闭连接池的时候,在Main函数里写1000个循环调用会出现什么情况:写了1000个CURD的循环,没出现什么情况,就是速度非常慢
测试一下连接DB中断后TryCatch是否能正常处理:ORM的代码换成了mybatis,JDBC的代码删掉了,没法测试TryCatch
检查一下自己的代码是否符合规范,如果DB的表格有改动,应该改哪些内容,需要多久:回头看之前设计的DB,发现少了很多东西,之前也没理解一对多之类的关系,业务模型非常简陋。明天写任务小结的时候重新写一下。
数据库里插入100万条数据,对比建索引和不建索引的效率查别:建立索引的话,插入数据的速度会变慢,因此最好先插入完数据再建立索引。三千万和两亿条数据的没做测试等不下去了。
遇到的问题
1.昨天的bug解决了,但还是很诡异,是由于一个spring-jdbc包的问题,在服务器上4.3和5.0的版本都编译不过,换成4.25就好了。但在本地的项目上无论什版本都能编译通过。
2.另一个bug是sqlException,原因是忘了在服务器上配置mysql编码,需要在my.ini中设置utf8
昨天误以为是直接将项目复制粘贴过去运行,原来是打成jar包,需要自定义配置文件MANIFEST.MF文件,MANIFEST文件用于描述
版本号,依赖jar包的位置和指定要执行程序的MAIN入口。maven下可以通过maven-jar-plugin插件生成。
其中打包方式可在pom文件中设置<packaging>jar</packaging>
maven-jar-plugin插件的配置如下:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath> //
<classpathPrefix>lib/</classpathPrefix> //在MANIFEST中配置引用的lib
<mainClass>com.imooc.RunTest</mainClass>//配置主类入口
</manifest>
</archive>
</configuration>
除此之外还需要使用maven-dependency-plugin插件配置lib,将依赖添加到jar包中,否则打出的jar包会报找不到某某类的异常
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
最后在eclipse中maven build可以跳过单元测试进行打包。
最后项目在本地就可以打成jar包,也可以正常执行MAIN,完全没有问题。放到服务器上死活就是不行,连jar都打不出来全是bug,最后发现是没把lib加过去。
最后在服务器上跑通了CURD,但另外一个全部查询的方法总是出问题,耗了一下午,本地没问题100W能全查出来,放到服务器上就是不行报异常估计要解决只能重装服务器系统了。
收获
对maven的理解更深了,了解了maven的打包(jar/war/pom)和打包插件(maven-jar-plugin/maven-dependency-plugin),了解了索引的建立方法(alter table tbl_name add index index_name(字段名)),了解了github desktop的使用方法,将代码上传到了github
评论