发表于: 2018-03-17 22:09:41

1 715


                         任务一知识总结

一,深度思考:

(1)怎么样能让Maven跳过JUnit?

     第一种:下载下载Surefire 插件(可以在pom.xml中配置) Maven命令 mvn install -Dmaven.test.skip=true。

     第二种:配置 Maven 跳过单元测试的方法是给你项目的 pom.xml 添加这个配置。

(2)为什么要用Log4j来替代System.out.println?

        log4j可以对日志分级别,还可以控制输出的类型和格式。能够得到自己想要的信息。如果用Sys.out.pringtln控制台打出一堆掺杂的信息,比较乱

(3)为什么DB的设计中要使用Long来替换掉Date类型?

1. 因为DATE有固定的格式,不同的地区有不同的时间表示方法,而且外国有夏令时与冬令时之分,非常麻烦;

2. 其实使用BigInt也能较为清晰的表示时间;

3. 大多数时候我们并不关心某一个时间点,而是发生一个动作后,需要的时间,BigInt非常方便做减法而不用转化。

4,long也就是bigint,更容易实现储存和传输,提高效率。

(4)唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。

区别:唯一索引不允许出现相同值,在插入之前会检查。 

在某个字段数据唯一的时候可以使用;业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引.

(5)怎么进行分页数据的查询,如何判断是否有下一页?

 使用limit进行分页查询,例如:

select from student_copy where name like  '%${value}%'limit 5

或者

select from student_copy where name like  '%${value}%'limit 55

详见:https://www.jianshu.com/p/1daccf24240c

(6)Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

Ioc—Inversion of Control,即“控制反转”

Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制

传统方式,对象和对象之间发生严重的依赖关系,耦合度非常高而且依赖关系都写死在了代码里,项目不易修改和维护,必须要改代码

现在:通过IoC或DI,我们只需要通过简单的配置,而无需任何代码就可以指定UserManager中所需的UserDao的具体实现。

详细资料:https://www.jianshu.com/p/3ff0942efd2e;

           http://blog.csdn.net/jiuqiyuliang/article/details/42920751;


(7)为什么要处理异常,Try/Catch应该在什么样的场景下使用,在真实的系统中,会出现网络中断,DB连接不上的错误吗?多久会发生一次?

      异常exception 
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 
异常发生的原因有很多,通常包含以下几大类: 
1.用户输入了非法数据。 
2.要打开的文件不存在。 
3.网络通信时连接中断,或者JVM内存溢出。 
Try/catch语法 
使用 try 和 catch 关键字可以捕获异常。 
try/catch 代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码。 
一个 try 代码块可以后面跟随多个 catch 代码块,叫多重捕获。 
如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。 
java提供了抛出异常捕获异常的逻辑用于处理异常,当程序抛出异常时,如果不存在捕获异常逻辑,正在执行的方法将停止执行,并将该异常向外抛出,调用该方法的程序进行同样的处理,如果也没有进行捕获,则将一层一层的向外抛出,直到到达当前线程处时将会终止线程的执行。 
正常情况下mysql对于空闲的连接可能会8小时自动关闭。

(8)日志应该怎么打,在什么位置,需要打印出来什么样的关键参数?

        在业务执行中,每一个步骤判断执行成功与否都要打日志,对于异常,视情况记录日志并进行相应处理。 
需要打印出当前执行操作的如id,正在操作的对象,异常的具体内容等等。

Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。

Loggers组件在此系统中被分为五个级别:DEBUG < INFO < WARN < ERROR < FATAL.

Appenders:控制日志输出的目的地.

Layouts:日志输出样式.


深度思考参考链接:http://www.jnshu.com/daily/51093?dailyType=others&total=63&page=16&uid=19000&sort=0&orderBy=3&cpage=1;

                 http://blog.csdn.net/creatill/article/details/79522131;


二,任务一问题及解决方法回顾。

(1)MySQL 创建表时,怎样设置时间字段自动插入当前时间。

  (2)使用Mybatis的时候为什么不需要Impl。

        MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录

(3)使用JDBCTemplate连接数据库时出现Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory错误。

        该问题在请教师兄后得知是导入同一类包下的各个jar包的版本不一致出现的。解决办法就是统一jar包版本。

     

(4)开始下载的最新的JDK9,结果运行程序总是出错,显示缺少文件,经百度后得知JDK9版本还不稳定有很多BUG,改为下JDK8后运行程序成功。启示:程序出现BUG 有可能不是code本身的问题,还可能是版本,软件之间不兼容,系统不支持。

(5)购买金山云服务器后,开始配置的window系统,后来师兄说linux系统更稳定,开发人员使用linux.改为linux后,下载Xshell, 用 

Xshell下载及配置JDK与maven.在下载配置MySql时总是出现找不对应文件的消息,但是我远程服务器里明明有啊。后来百度后发现是

centOS不支持MySql,CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。解决办法是下载mysql的repo源。

详见:http://blog.csdn.net/win7system/article/details/53579500;


 任务一思维导图:







     


返回列表 返回列表
评论

    分享到