发表于: 2017-10-06 22:31:41
1 833
明天计划完成的事情:今天写了一个spring+mybatis,和jdbc的实例
今天搞了两三个深度思考
1.maven是什么,和Ant有什么区别?
什么是maven:
Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从中央信息管理项目的构建,报告和文档。
什么是Ant
Apache Ant是一个Java库和命令行工具,其任务是将构建文件中描述的进程驱动为依赖于彼此的目标和扩展点。Ant的主要用途是Java应用程序的构建。Ant提供了许多内置任务,允许编译,组合,测试和运行Java应用程序。Ant也可以有效地用于构建非Java应用程序,例如C或C ++应用程序。更一般地说,Ant可用于引导任何类型的可以根据目标和任务进行描述的过程。
Ant是用Java编写的。Ant的用户可以开发包含Ant任务和类型的自己的“antlib”,并提供大量现成的商业或开源“antlib”。
Ant非常灵活,不会将编码约定或目录布局强加于采用其作为构建工具的Java项目。
区别
*maven约定的目录结构,而Ant没有
*maven是申明式的,用pom文件,而ant是程序式的,构建过程需要自定义
maven有三段生命周期,而ant没有
maven内置依赖管理和repository来实现依赖的管理和统一存储;而ant没有
maven配哦比较简单,因为他有许多规范,标准.而ant配置比较麻烦,但是它相对更加灵活
总结:1.ant是个软件构建工具,maven的定位是软件项目管理和理解工具.maven除了包含ant所有功能,它还增加了其他功能,1.内置更多规则,标准,规范2.内置依赖管理3.内置生命周期4.约定文件目录
4.为什么要用Log4j来替代System.out.println?
log4j是什么:Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
应用程序中为什么要添加日志记录
1.监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;
2.跟踪代码运行时轨迹,作为日后审计的依据;
3.担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。
假如没有log4j等日志记录框架,应该怎么做
最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的主体。
使用log4j可以只通过一个配置文件,在不增加代码量的情况下,方便灵活的控制日志向哪传(控制台,本地文件,或远程),传什么(日志级别),怎么传(日志格式)
而使用SOUT来打印日志的话,一方面增加了代码量,二,控制日志输出也不方便
5.为什么DB的设计中要使用Long来替换掉Date类型?
首先要知道两种类型的格式:
long类型对应数据库里的bigint类型:范围是-2^63~2^63-1
DATE类型是1000-01-01~9999-12-31
这个问题其实见解不一,有的人认为什么类型就应该用什么类型
替换有什么好处
1.因为每个地区都有不同的时间表示格式,,而且国外有夏时令和冬时令之分,所以表示时间会比较麻烦
2.bigint也可以清晰的表示时间
3.我们通常需要知道时间不是想要知道当前的时间,而是需要知道过程进行的时间段,这时使用bigint就非常方便计算.
明天计划完成的事情:明天打算上午先总结整个任务一的思路,然后下午开始写ssm的实例
遇到的问题:今天遇到一个问题
今天写spring+mybatis的实例的时候,因为我故意将字段名和实体类属性名设置的不一样,然后编写代码,测试,能跑通,但是输出一长串null
返回四个null,说明已经和数据库连接上,并且对数据库进行了操作,那为什么会返回一个null呢
原因:因为我这个项目实体类属性和数据库字段名不是一样的,所以数据库查询返回出来的结果集和我的实体类对应不上,要映射(暂时不懂)
在深入ResultMap标签前,我们需要了解从SQL查询结果集到JavaBean或POJO实体的过程。
1. 通过JDBC查询得到ResultSet对象
2. 遍历ResultSet对象并将每行数据暂存到HashMap实例中,以结果集的字段名或字段别名为键,以字段值为值
3. 根据ResultMap标签的type属性通过反射实例化领域模型
4. 根据ResultMap标签的type属性和id、result等标签信息将HashMap中的键值对,填充到领域模型实例中并返回
解决办法:
收获:加深了对任务一整体了解,明天再集中整理一下思路,但是还有好多索引什么知识点都没看.
评论