发表于: 2017-12-30 23:02:03
1 640
一、今天完成的事情
1、学习了关键词this的用法,并做了一个小练习
总结:
当成员变量和局部变量重名的时候,我们可以用关键字“this”来区分他们
1、this:代表对象,代表哪个对象呢?代表的是当前对象
2、 this就是所在函数所属对象的引用
3、哪个对象调用了this所在的函数,this就代表哪个对象
4、用this调用构造函数的时候 放在第一行
5、只要在本类中用到了本类的对象,都用this
2、学习了连接池的相关概念,重点看了c3p0数据库的配置和用途
为什么用连接池
我们最初jdbc连接数据库需要
1. 安装驱动
2. 取得连接
3. 打开窗口
4. 书写语句、执行语句和查看结果
5. 关闭到数据库的连接
其中1,2和5完全可以重用,这样就加快了执行。也即:
同一个连接可以打开多个窗口
同一个窗口可以多次执行语句
我们发现jdbc连接数据库时对于同一个项目来说,如果每次操作数据库的话,每一次查询添加…,使用上面的方法就是要建立多次数据库连接,而每一次获得连接对于Java代码来说都是重复动作,不仅占用了空间,而且在执行效率上也产生了浪费
解决连接重用的方法
我们想象火车站售票大厅的情况,平时客流比较少时,我们只开几个售票窗口,不管有没有顾客来买票:多时间处于空闲状态。在如节假日等高峰期,所有售票窗口都会启用。特别地,在春运这样的最高峰期,可能会有临时窗口。但临时窗口也不是无限制地多开,开窗口要耗费物力人力。这样在高峰期只能让客户等待长一点的时间。春运最高峰时排队,这个时间客户就需要等待。
我们在重用数据库连接时也可以采用类似的方案。我们先打开一批连接等待客户使用(如同非高峰期我们开几个窗口) ,不管用没有客户使用。在高峰期到来时,我们可以多开几个连接让浏览器客户使用。如同春运一样不可能为了让每个人都有一个窗口服务,我们的数据库连接也不能无限开启(数据库连接要占用内存等资源,同时每个数据库能支持的并发连接数也不是无限的).在不能为需要的数据的客户立马服务时,只能让客户排队等待。如果用户一直无法得到一个连接对象时,就不要让用户无限期等待。
从上面可以看出,我们重用连接的方案,需要提供以下信息:
- 1、预先开启的连接数
- 2、能开启的最大连接数
- 3、一个连接要被多个客户使用,因而连接用完不能关闭
- 4、一个超时时间,如果超过这个时间,用户就无法获取连接而得到数据。
5、在JDBC连接数据库的连接重用的方法,就是我们所说的连接池。
1、导入连接池相关jar包
2、配置c3p0-config.xml文件
3、编写代码,并跑通
3、帮助同学解决了一些bug,由于进度在他前面,所以就当做复习mybatis了,几个bug都顺利解决了,对自己解决问题能力的提高有帮助
4、掌握Java必备单词
access:访问 package:包
mport:导入 static:静态的
void:无(返回类型) extends:继承
parentclass:父类 base class:基类
super class:超类 child class:子类
derived class:派生类 override:重写,覆盖
overload:重载 final:最终的,不能改变的
abstract:抽象 interface:接口
二、明天计划完成的事情
1、专心做任务,先把任务一做完验收过关再说
2、把连接池的原理彻底弄清楚,现在只知道用途,不知道工作的原理
三、遇到的问题
1、连接池是跑通了,但是不知道他的工作原理是什么,很多代码根本看不懂,看得很吃力,这个东西师兄说很简单,但是我看了不下十个教程,都做不出来,智商估计不够高,像连接池里面要用到的try,catch,finally异常处理,花了1个多小时看书也没看明白,代码里面很多名词不知道是什么意思,教程的配置文件倒是容易看懂,但是代码真的是个阻碍我做任务的巨大难关
2、今天看视频看了很久,学到的内容很有限,发现这样的学习效率是不可能顺利在修真院结业的,之后还是以做任务为主
3、连接池的内容还没做完,明天估计是要经历一个痛苦的接受过程,得做好心理准备
四、收获
今天收获比较少,是效率比较低的一天,吸取经验,明天不能重蹈覆辙。收获如上所述
task1开始时间:2017.12.13
预计demo时间:2017.01.05
可能会提前一天左右
http://task.ptteng.com/zentao/project-task-350.html
评论