发表于: 2017-12-08 19:15:20
1 803
今天完成的事情:
1、通过增加数据库中的记录数,测试了一下索引对数据库性能的影响,结果如 [图1] 所示:
图1 索引对数据库插入检索数据的影响
测试条件:数据库中一条记录有两个属性 分别是 id 和 name ,其中 id 从 0 自增,name 则为 "王" + id ,总共有 95W 条记录。索引添加在 name 上。
单从所用时间看 添加索引 似乎对于 [插入数据] 没有太多影响,而对于 [检索数据] 则影响很大,能够有效提升检索的效率。
从查询的资料来看,提及提高检索效率的占多数,与之相关的热门话题就是 数据库的 [性能分析优化]。而提到对于插入的影响的文章则少很多...
参考1 = http://blogs.360.cn/360qa/2013/05/24/性能测试中sql索引引起的性能问题-2
参考2 = https://www.cnblogs.com/chenshishuo/p/5030029.html
2、简单复习了一下 [DAO]
DAO = {
english = Data Access Object
说明 = 程序中专门用于处理访问数据库的模块。至少应该包含基本的 [CRUD] 操作。
}
CRUD = {
说明 = 增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete) 的英文首字母。
}
[CRUD] 作为 [DAO] 的最基本操作,所对应的基本流程如 [图2] 所示:
图2 CRUD 的基本执行流程
可以看到,在编码上 插入、修改、查询 可以写成一个方法,而查询则与它们不同,区别在于所用的 [执行语句]。
有三个基本的执行语句,分别是:
execute()、executeUpdate()、executeQuery()
1. ResultSet executeQuery(String sql); 执行SQL查询,并返回 [ResultSet] 对象。
2. int executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。
3. boolean execute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回 [ResultSet] 。
需要做的事情 和 想要的结果 决定了你要使用的 [执行语句]。
如果仅用于执行简单的 [CRUD] 操作,很明显 只用 executeUpdate() 和 executeQuery() 就足够了。
参考1 = https://www.cnblogs.com/bukudekong/archive/2011/06/22/2086531.html
参考2 = https://kanghao126.iteye.com/blog/134697
此外,如何 [管理数据库的链接资源] 是一个值得思考的地方,你可以用数据库连接池 如 [C3P0] 或 [DBCP] 等...
除此之外,[结果的处理] 也是值得仔细思考的地方。例如对于查询而言,如何把多个结果转化为 [对象的列表] ,同时保证这个方法的通用性,可能就需要 [反射] 或 [JavaBean] 方面的东西。
好在...这些 复杂、重复 而又 不关乎 业务重点的部分 早就有前人造好了 轮子 等着我们去用,然而目前我还不会 = =||
3、Maven 3 的基本配置与基本使用
看了介绍觉得 [Maven] 真的是个好东西...可以用来 [管理] [下载] 依赖包,想想以前自己写东西都是从官网一个一个的下...有时候找半天还找不到下载的地方...唉...
可实际用起来还是觉得有一些不满意的地方。
(1).从官网下载 [Maven 3]
Maven 需要 [JDK] 的支持,之前已经安装过了,所以没有遇到这个问题。
官网链接 = http://maven.apache.org/download.cgi
然后如 [图3] 所示,下载 apache-maven-3.5.2-bin.zip
图3 Maven 3 官网对应文件
(2).安装与配置
解压到合适的位置...
我解压到了 C:\Program Files (x86)\apache-maven-3.5.2
然后在 [环境变量] 中将 C:\Program Files (x86)\apache-maven-3.5.2\bin 添加到 [Path] 中,这样在 [系统命令行] 中就可以通过 mvn 命令使用 Maven 了
这里 使用 mvn -v 查看 Maven 的一些信息,如 [图4] 所示:
图4 mvn -v 命令显示 Maven 相关信息
通常很少单独使用 Maven ,一般是在 [IDE] 中使用,我是用的是 [Eclipse] 所以要在 Eclipse 中添加 Maven 3
添加步骤:Eclipse 界面 -> Windows -> Preferences -> Maven -> Installation -> Add
如 [图5] 所示:
图5 Eclipse中设置 Maven 路径
配置方面,需要修改 C:\Program Files (x86)\apache-maven-3.5.2\conf 目录下的 [settings.xml] 文件
首先修改 [本地仓库] 的 [位置] 大约在 49行 开始 54行 结束,原始内容如下:
…
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
…
这里我把 [仓库] 设定在了 D:/Maven/repository 目录下,修改后的内容如下:
…
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
-->
<localRepository>D:/Maven/repository</localRepository>
…
之后对下载源进行修改, 大约在 setting.xml 文件的 146行 至 159行 ,目的是提高下载速度。
原始内容如下:
…
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
</mirrors>
…
根据范例添加一个,目前国内阿里提供的源是很不错的。
添加后的内容如下:
…
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>ali</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
…
保存,然后在 Eclipse 中加载 Maven 的 [配置文件]
加载步骤:Eclipse 界面 -> Windows -> Preferences -> Maven -> User Settings
如 [图6] 所示
图6 Eclipse 加载 Maven 配置文件
这样 就配置完毕了。
(3).基本使用
新建一个 Maven 项目
在 [pom.xml] 文件中添加 spring
执行 clean install
参考1 = http://www.cnblogs.com/sunddenly/p/4340121.html
参考2 = http://how2j.cn/k/maven/maven-eclipse-setting/1335.html
参考3 = http://www.yiibai.com/maven/maven_eclispe_ide.html
明天计划的事情:
学习下 [Spring] 的基础,尝试用 [Spring] 提供的 [JDBC Template]
遇到的问题:
1、Maven 的 [pom.xml] 添加依赖包的时候 不知道 [Group Id] 和 [Artifact Id]
这也是我认为 Maven 有不方便的地方。
当然也可能是因为我用的少,不够熟悉,或者以后会有专门的人负责这部分...或者我的使用方式有问题...
后来发现有可以提供 [依赖包查询] 的功能的网站
地址 = http://maven.aliyun.com/nexus/
这个可以直接查询到某个 依赖包在 [pom.xml] 文件的写法。
不过我还是觉得应该提供一个 [本地搜索] 和 [网络搜索] 依赖包的功能:
网站提供所有依赖包的 [信息文件],并且提供模糊查询功能,并且根据热度提供排序,除非有重大更新。
每次通过网络查询的时候都先获取这个信息文件的hash值,如果和本地的一样,那就不用更新。
不过也就是想想...
2、刚开始不知道在哪里用 mvn clean install 命令
后来发现有两种方法:
(1).进入 [项目文件夹] 后使用 [系统命令行]
cd /d [项目文件夹]
dir (能够看到 [pom.xml] 文件)
mvn clean install
(2).在 Eclipse 中右键项目 Run as -> mvn clean -> mvn install
3、mvn 命令的具体含义...
因为涉及到很多 [软件开发周期] 方面的知识,所以在看到教程有这方面相关东西的时候有点看不懂...
收获:
学习到了 Maven 的基本用法
JDK 和 JRE 的区别:
JDK = {
english = Java Development Kit
说明 = Java 开发工具包
}
JRE = {
english = Java Runtime Environment
说明 = Java 运行环境
}
参考 = https://www.zhihu.com/question/20317448
评论