发表于: 2017-07-12 22:11:05
1 1349
今日完成的事情:任务小结一下,昨天一直在搞mybatis。然而出不了问题,日报很水,愧对我的师兄了。今天看了一波视频好像有点深刻的样子,知道了一些细节方面的东西,明天把代码写好就准备交任务了。
jdk和jre的区别
在听了师兄的讲解之后,自己在去查找资料得知。jdk是java语言开发用户需要用到的一个开发环境。没有他无法开发java程序。
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
jre呢就是运行一个java程序的环境,在一台机器上想要运行一个java程序,必须要有jre。可以没有jdk
JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
cp30
1.JDBC数据库连接池的必要性
在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:
在主程序(如servlet、beans)中建立数据库连接。
进行sql操作
断开数据库连接。
这种模式开发,存在的问题:
普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。数据库的连接资源并没有得到很好的重复利用.若同时有几百人甚至几千人在线,频繁的进行数据库连接操作将占用很多的系统资源,严重的甚至会造成服务器的崩溃。
对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将导致重启数据库。
这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,也可能导致内存泄漏,服务器崩溃.
2.数据库连接池(connection pool)
为解决传统开发中的数据库连接问题,可以采用数据库连接池技术。
数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。
通过查找资料,我觉得连接池的优势在于
1.资源反复使用,
2.效率高
3.对创建的连接统一管理
juint
对于今天来说,我一直不知道一个程序写好了怎么去编写这个junit。只知道用工具生成,虽然现在都是这么干的。因为不知道要在什么样的状态下加个@Test 也不知道为什么加Before,当然这是基础知识来的,需要去补。
通过资料复习查看,知道了一点
1.注意后者是静态导入import static。
2.testXXXX测试的方法名前加test
3.所有测试方法返回类型必须为void且无参数。
4.测试类上面@Test注解 ,而且这个类是没有父类的。就是师兄们口中main方法吧估计,前些日子,一直看网上的demo就一直报错,可能就是这个原因咯~还是没基础的锅
5. 还有一点注意到的是,测试类是这样开头 private void *****
名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出一个异常。这一点我之前其实经常看到,只是根本不知道这是个什么玩意。只知道要给我的代码找一个父类,找一个mian的方法给他加上去。
6.还有其他的暂时不懂
常用需要记住的sql语句:
insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
如果表中只需要加单个字段的值,就只填需用加的那个字段就好了
insert [into] 表名 [(列名1)] values (值1);
update 语句可用来修改表中的数据, 基本的使用形式为:
update 表名称 set 列名称=新值 where 更新条件;
delete 语句用于删除表中的数据, 基本用法为:
delete from 表名称 where 删除条件;
where 关键词用于指定查询条件, 用法形式为: select 列名称 from 表名称 where 条件;
where 子句不仅仅支持 "where 列名 = 值" 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些扩展运算符 is [not] null、in、like 等等。
什么是try catch ,分别用在哪
字面意思是尝试,抓取, 结合在一起有个术语叫捕获异常。通常一个程序不可能永远没有错误,可能会因为设备,代码错了,用户实用程序操作不当啊,磁盘满等等原因出错。然后一个程序不能让其在这些错误的地方继续下去。不能让他错误的执行,抛出异常在类方法声明,就是这个IOException的东西。得要让代码运行过程中发生异常就立刻中止程序并反馈信息。这个时候应该是安全了。然后需要一个东西来查找到底哪里出错了,出错的原因大概是那些。在抛出异常之前,前面需要有个对象进行捕获,我们才能进行捕获。(终于知道这个是干什么用的)。就是所谓的try catch。我认为就是在想捕获的地方捕获吧? = =?是这样吗。这个得求师兄解答一波了。
好像抛出异常还有几种写法,我见到最常见的写法是public *** *** *** *** ()throws IOException
clean,install有什么作用,在命令行中怎么实现
mvn install 就时将编译好的项目打包 还要放到你本地.m2仓库下存放
mvn安装
此命令在执行安装之前按顺序(验证,编译,打包等)执行每个默认生命周期阶段。您只需要调用最后的构建阶段才能执行,在这种情况下,请安装:
mvn clear 就是来删除打好war包或者jar包产生target目录下的东西
mvn清洁部署
相同的命令可以在多模块场景(即具有一个或多个子项目的项目)中使用。Maven遍历每个子项目并执行清理,然后执行部署(包括所有之前的构建阶段步骤)。
Interface impl 分别是什么意思
额。对于这个~~~我只能说 贼 TM 抽象~我愣是没看懂,没有前面的一点基础实在难懂。找了个小图瞅瞅。应该是这么理解吧,就是说有个人,不能直接就找到这个目标。(至于为什么,日后再研究)但是可以搞一个东西(就是接口)去得到这个东西。举个例子,我去4儿子店买保时捷,第二天提车出去给人撞了,这个时候我想把车修好。但是我不可能自己去修,就算要自己修也得学也要时间。加上我根本不会,而且我也没有工具等等条件。那么我只能通过会懂修车技术并且有相关工具的地方 修好我的保时捷了。 又或者说医生不可能单凭一双手做好一个手术。必须得有工具才能做好手术。这个工具就是一个接口吧。Interface 大概是这样吧估计
impl我以为是一个单词,全称貌似叫implements。这个估计是就我去修保时捷的方式了,我送4儿子店修还是送去修理厂修,还是找个人修。反正总得修就对了。嗯~~好抽象啊~受不住了。上面貌似还有个叫做父类的东西。extends 日后慢慢加深对这些概念吧。
对于idea全自动导包的方式
不知道是不是能每次创建项目的时候,会自动导入需要的包。不用再自己去创文件夹或者添加依赖了。
明日的计划:写好代码提交任务1
遇到的问题: 我再mybatis中parameterType在数据库中对应的id类型为long。不知道为什么run后报错,说找不到相对应映射的参数值。当我换到integer的时候却能正确执行。
收获: 很开心,对于任务1的基础知识了解有了进步。
评论