发表于: 2017-12-31 23:25:07
1 489
一、今天完成的事情
1、完成task1-25——task1-28
2、测试一下不关闭连接池的时候,在Main函数里写1000个循环调用会出现什么情况。
不关闭连接池的时候,进行1000次循环插入
发现代码运行时卡壳了,然后检查对应的数据库表格
发现只插入了10条数据,之后再也没有插入数据的动作,然后手动停止了代码运行并寻找原因
原来是c3p0连接池在配置的时候限制了最大连接数为10,若是不关闭连接池,那么只能对数据库进行10次数据的调用
之后再次尝试调用1000次数据,并关闭连接池
成功插入1000条数据,结论不言而喻
3、数据库里插入100万条数据,对比建索引和不建索引的效率查别。再插入3000万条数据,然后是2亿条,别说话,用心去感受数据库的性能。
还是用老方法,循环调用100万次sql插入语句,在不加索引的情况下:
在不加索引的情况下用时为21分5秒
然后为studentName列创建一个普通索引
然后再次尝试插入100万条数据
这次用时为23分48秒 比没建立索引的时候插入用时多了2分多钟,说明创建索引以后会影响插入数据的速度,不过会减少搜索的时间
然后我发现按照这个插入速度想要完成千万级别的数据插入,耗费的时间实在是太长,所以从网上看了教程,学习了log4j日志的配置和打印,然后使用以下方法插入2000万条数据
在没有创建索引时
用时为1075秒(约18分钟)
然后创建索引之后再次尝试插入2000万条数据
用时为1133秒(约为19分钟)
结果和之前相符,说明创建索引确实会影响数据库性能,这大概就是为什么即使索引好用,也要用在关键的字段的原因了吧
3、添加数据返回ID,删除或更新数据返回True/False
完成了返回id的任务,首先在mapper.xml文件下增加如下配置
在配置之前,查询的结果为:
添加数据后返回的id显示为null
在配置后:
删除或者更新数据后返回true或者false的任务暂时没有完成
4、看了关于接口类的知识,因为之前虽然在任务钟写过接口类,但是不明白用处到底在哪里
例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现方法,那我不如直接就在这个类中写实现方法岂不是更便捷,还省去了定义接口?
接口就是个招牌。
比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC,然后你就知道今天中饭有着落了。
KFC就是接口,我们看到了这个接口,就知道这个店会卖炸鸡腿(实现接口)。
那么为神马我们要去定义一个接口涅,这个店可以直接卖炸鸡腿啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不能直接简单粗暴的冲进去叫服务员给两个炸鸡腿了。
要么,我们就要进去问,你这里卖不卖炸鸡腿啊,卖不卖汉堡啊,卖不卖圣代啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。
要么,我们就要记住,中山路108号卖炸鸡,黄山路45号卖炸鸡(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖炸鸡腿,我们也不可能知道(不利于扩展)。
5、掌握Java必备英语单词
throw
Java语言的关键字,允许用户抛出一个exception对象或者任何实现throwable的对象
throws
Java语言的关键字,用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。
transient
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
try
Java语言的关键字,用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。
void
Java语言的关键字,用在Java语言的方法声明中说明这个方法没有任何返回值。"void"也可以用来表示一句没有任何功能的语句。
volatile
Java语言的关键字,用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。
while
Java语言的一个关键字,用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。
二、明天计划完成的事情
1、完整性的回顾任务一的知识点,拿笔记本出来把任务一里面还不懂的东西全部网上查教程弄懂然后记上去,以备不时之需
2、学习mvc的知识,将任务一所有代码上传到服务器上让师兄观赏
3、如果还有时间,拓展一些知识
4、新的一年,要用最好的面貌来迎接,要好好把握在修真院学习的时光,应该要以小时为单位来规划自己的学习进度,3个月的时间转瞬即逝,如果不能争分夺秒,那就说明我这个人只能做到这种程度了。
三、遇到的问题
1、更新删除语句的返回值那里没有整出来,明天早上先搞定那个部分
不知道为什么resultType和resultMap这俩参数写不进去,写了就提示报错,但是网上的教程都是显示要返回Boolean类型是要这个参数的
2、明天虽然是元旦节,但是还是不能松懈,自己基础本来就比别人差,要是还没有别人努力的话根本不可能顺利毕业
3、任务一里面还有很多细节问题没搞懂,明天复习的时候争取全部搞懂,一天不行就用两天
四、收获
如上所述
task1开始时间:2017.12.13
预计demo时间:2017.01.05
可能会提前一天左右
http://task.ptteng.com/zentao/project-task-350.html
评论