发表于: 2017-10-14 22:20:24
2 739
1;工具类,早学早用吧Log4j
写代码的过程中,输出各种调试信息。在没有使用工具之前,都会使用 System.out.println 来做到,直观有效,但是不知道这句话是在哪个类,哪个线程里出来的,不知道什么时候前后两句输出间隔了多少时间,也无法关闭调
试信息,多了之后,定位信息难。
这里的设置级别,低于该级别不会输出的,同时那个sleep1000ms是用来观察时间的
问题不大,就是package下的包要注意,我有时候会让他自动生成,但是这次就出错了;导入的包类型出错了。
log4j的核心在配置文件上
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息 message
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
按照上面格式随意修改,很方便,比如这里的%5p [%t] (%F:%L) - %m%n 就表示宽度是5的优先等级 线程名称 (文件名:行号) - 信息 回车换行;其中宽度只是为了格式好看,自动补齐。
另外一个就是配置文件中第二个输出位置r即example.log
然后改下配置文件中的r格式风格,用那个宽度,很完美输出格式就自动对齐了
网上教程还有说可以用xml文件来配置的,这暂时不看了。
2;然后是任务一入门的第一步mvn,直接说好处吧,我也记不清日报上水了几次的mvn作用。。。。不管怎么说一次比一次清晰,嗯,这是个好事。
使用Maven管理的项目都有着相同的项目结构,也就是用pom.xm维护当前项目都用了哪些jar包,具体结构的话就是,代码都放在 src/main/java 下面,测试代码都放在test/main/java 下面。而pom是通过仓库来管理维护这些jar的,仓库这个不就不说了,关键是自己修改一下位置。
接着就是下载配置环境变量,给MySQL比起来,这个简直不能再轻松了,记得在安装目录下setting.Xml里修改一下仓库位置,以及默认下载路径;这两个改的原因,仓库位置在c盘以后重装系统会丢失,而且占用系统盘的内存;而下载路径默认是国外服务器,很慢,通常改成国内镜像阿里云,这样当本地没有jar就去镜像下载了,当然,别忘了找大佬要一份超级jar,毕竟是他们积攒的,数量客观,直接放到仓里,以后连镜像用的都少。
然后就是,mvn项目,其实第一次接触的话,不能叫mvn项目吧,在命令行里建立的是Java项目,叫做mvn风格的 Java项目,最后会生成上述的结构,然后直接用命令package来打包,就会生成SNAPSHOT.jar,其实这里package做了编译,测试,打包这些才生成的jar,这里也没什么细说的,毕竟以后都是ide工具了,也就这几个专属词记一下
archetype:generate 表示创建个项目,-DgroupId 项目包名, -DartifactId 项目名称,-DarchetypeArtifactId 项目类型,在xml配置文件里经常出现。
接着是在idea里配置mvn。。说出来丢脸,这还真是第一次。。。。还是贴个图吧,配路径,配仓库
在这之前还是先弄一下普通java项目的建立,是怎么导入jar包的
先建立一个需要第三方类的项目,然后没有jar包会报异常notfound
然后按教程导jar包,结果还是报异常,换了三种导jar包的方式,还是不行,然后复制了教程的代码,发现可以,最后发现是标点符号错了,这代表驱动类型与导入的类不匹配,毕竟一个是点,一个是逗号。。。亏我换那么多花样,那么多jar版本。。。
然后,真正体会一下mvn。。。先试一下之前命令行的简单例子,做个对比学习吧,类似选择项目名包名类型
这个是import是初始化mvn项目,比命令行方便多了。
然后重复上面加载第三方jar的类,来体验一下mvn是怎么导入jar的,嗯,也很方便,直接在pom里添加,这里遇到一个有意思的问题,在下面说,这里添加号就ok了,没什么好说的,做就是pom里面除了一些简单的项目信息,还自动成了junit的信息。
3;然后,又简单操作了一下之前的github重复一下步骤,算是换口味吧,放松一下,前提就不多说了,之前水过了,先配置好git到idea就行了。
首先是把本地项目推送到远程,这个简单来说就是先建立项目,然后建立本地仓库,然后在本地仓库推送到远程仓库;这里可以把仓库理解为项目名吧,至于项目名字改成其他的能不能推送上去?没有尝试,时间紧。。
这里又发现之前没用到的,提交修改后的代码CTRL+k,直接提交,然后CTRL+t更新就可以了
然后是从远程pull一个项目到本地,比推送要简单不少
4;然后回到正题,jdbc吧先说下快捷键,真是好用极了。。就说一个吧,简直不能再完美try catch块自动生成。
然后按部就班吧,创建连接,这里发现一个技巧,可以把多余重复的catch块放到一起,代码看起来就更简洁了
接着是创建对象,具体都写到注释里了
最后是执行sql语句这里直接用的student表。。但是字段太多了,就选了俩,有效
关闭连接这,不是很理解吧,勉强知道。
try-with-resource的方式自动关闭连接,这个更方便虽然也不太懂。。。
明日计划的事情:
时间应该还来得及,上午继续过,下午准备听干货
遇到的问题及解决方法:
1;log4j这里的trace好像怎么都没法输出,直接默认配置不行,用配置文件,也报错。是跟踪信息太多,并且无用??
2,pom文件里导入jar包的时候不知道为啥找不到,明明仓库里有的。。。这个最后发先好像必须按照groupid artifactid的路径放才会生效。
然后,我就自己按照路径建立一个5.1.18文件夹,把jar包放进去,仍然爆红。。。最后对比了不暴红的文件发现,实际上这中依赖仓库的导入不仅仅需要一个单独的jar,还需要其他的辅助性文件。
然后想着爆红问题也不大,应该可以自动从镜像下载的,实际上确实是,而且下载后的jar果然多出一些文件,同时我自己加入的jar就是摆设了。。。
另外一点就是下载的时候国内镜像比国外快,奇葩的想试一下,把之前的下载阿里云路径暂时去掉,对比一下,确实慢了一些,需要一点反应时间,不过差别也不是很大吧,可能是翻墙的原因吧
3,jdbc执行sql语句那提示数据源问题,似乎可以改进的样子,看不懂,虽然不影响执行
收获:
能学会,也有想学的欲望了,还需要再专注点,状态好转,逐渐调整到最佳吧
评论