发表于: 2017-04-12 15:19:10

1 1342


今天完成的事情:

25.测试一下不关闭连接池的时候,在Main函数里写1000个循环调用会出现什么情况。

我设置的连接池的配置为:

初始化连接数5:setInitialPoolSize(5);

最小连接数1:setMinPoolSize(1);

最大连接数100:setMaxPoolSize(100);

最大空闲时间60毫秒:setMaxIdleTime(60);

单个连接所拥有的最大缓存Statement数:setMaxStatements(50);


总结:

连接池原理:预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去

JDBC原理:1.加载数据库驱动程序。2.建立数据库连接Connection。3.执行sql语句。4.关闭数据库资源

每一次web请求都要建立一次数据库连接。建立连接是一个费时的活动,每次都得花费0.05s1s的时间,而且系统还要分配内存资源。所以相比于JDBC,连接池提高了数据库连接的利用率,减小了内存吞吐的开销。


28.数据库里插入100万条数据,对比建索引和不建索引的效率查别。

CREATE INDEX idx_student on student(id);
CREATE INDEX nx_name on student(stu_name);
CREATE INDEX schx_name on student(stu_school);

有索引,数据库中插入了1000条

花费的时间为:133332毫秒。


DROP INDEX idx_stuid on student;

无索引,插入1000条数据。

花费的时间为:144349毫秒。


遇到的问题:我测试插入数据有索引要快,正常情况下不是无索引更快吗?三观尽毁!


深度思考:

1.maven是什么,和Ant有什么区别?

2.clean,install,package,deploy分别代表什么含义?

3.怎么样能让Maven跳过JUnit?

答:

1.

两者都是构建工具,用来构建项目。自己的理解:maven有一个本地库和中央仓库,这样开发人员不用每个项目都导jar包了。maven有一些基本命令方便开发人员编译、打包、部署。Ant没有了解过,就酱。

2.

clean:删除target文件夹里面的class文件。

install:把当前项目放在Maven的本地仓库中。

package:把项目打成jar包。

deploy:把包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

3.

学习了一波:https://www.zhihu.com/question/26760477/answer/33937123

在测试用例上添加注解@Ignore,表示本次测试不运行该测试用例

通过Maven命令mvn clean test -Dtest=ATest,BTest

通过POM文件配置


15.什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?

答:

一个对象有行为和状态。行为指方法,状态指数据。

贫血模型(Value Object)是指只有状态(数据)的对象。

充血模型是指有行为和状态的对象。



收获:

程度从强到弱
1、drop  table tb 
      drop将表格直接删除,没有办法找回
2、truncate (table) tb
      删除表中的所有数据,不能与where一起使用
3、delete from tb (where)
      删除表中的数据(可制定某一行)

区别:truncate和delete的区别
         1、事务:truncate是不可以rollback的,但是delete是可以rollback的;
              原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
         2、效果:truncate删除后将重新水平线和索引(id从零开始) ,delete不会删除索引    
         3、 truncate 不能触发任何Delete触发器。
         4、delete 删除可以返回行数



返回列表 返回列表
评论

    分享到