发表于: 2017-11-22 23:31:27

1 689


今天完成的事情:

任务一思考总结:

任务一总结:

自己是10.25号开始接触java,当时什么基础都没有,然后按着任务来做,安装配置程序,文件什么的,很快就搞定了。知道第17步,编写DAO。开始接触代码,这一步,卡了很久。也思考了很久,最后还是决定来线下看看,就目前而言,这个决定很正确。虽然自己问题多,不过好在自己脸皮厚。不会就问。总结主要是一些深入思考里面的内容。

maven与Ant区别:

maven定位是除了以程序构建能力为特色之外,还提供高级项目管理工具。而Ant只是软件构建能力出色。


Maven:clean:清除install:打包到本地仓库package:打包deploy:上传至远程仓库

Maven跳过测试:命令行中:mvn  -Dmaven.test.skip=trueMvn -DskipTests

配置文件中:

<build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>

          <skip>true</skip>

        </configuration>

      </plugin>

    </plugins>

</build>

Log4j:可以控制日志信息输送的目的地是控制台、文件。不过自己目前对它的使用很少。

DB设计:timestamp 更灵活  且便于存储 Long(bigint)型 。

select unix_timestamp(18:00:00); 返回一个时间戳  

select from unixtime(21341241); 返回一个常用时间格式

自增ID:数据量大且需要删除添加新数据不实用,因为删除数据后,不会重新计算ID值,而是跟在被删除数据之后。

普通索引,唯一索引:定位,优化查找速度。创建唯一索引的列,不允许存在相同值。数据库还可以防止添加相同数据。对某一列建立唯一索引进行操作时,不需要判断是否重复。

CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值:CreateAt 指在创建时赋值。updateat是在对数据做出修改就赋值,会记录最后操作该数据的时间。应对update设置根据当前时间戳更新。

修真类型设置为varchar 因为会区分为前端,后端,等等。

Varchar 长度如何确定,以及Text和LongText的区别:varchar存储可变长度的字符串 。Text,LongText :长度不一样。Text: 2^16-1 LongText:2^32-1 

分页数据查询:select * from xxx limit m,n 对于这个分页查询其实还存在很多疑问,如何判断是否有下一页?如何设置返回上一页? 等等。

不可以用Select * from table:全部数据,数据量太大,速度缓慢。

贫血模型,什么是充血模型:充血模型:面向对象设计(有对象、状态、行为)。

贫血模型:只有属性,没有方法。DB之中用的很多,把属性与行为分离,就是JDBCtemplate的思想。

Mybaits: 不需要写impl(实现类),  把sql语句写在配置文件中。

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

由spring来控制对象的生成对象,控制对象的生命周期,以及对象间的关系。

为什么使用interface:

接口就是调用端和实现端做个规范,调用端和实现端按照规范做正确的输入和输出调用,异常的输入输出捕获,双方对各自内部的业务都不需要了解,这个是和语言无关的。

如果说同时有orcale 与 sql 数据库。这时候只需要一个interface即可,然后不同的程序去实现接口就可以了。 实现了Dao层与其它层的分离。提升了代码的复用性。

来自 <https://www.zhihu.com/question/29019642> 


为什么要处理异常,Try/Catch应该在什么样的场景下使用:

Try/catch是一种报错机制。为了增加代码的健壮性,对于异常要打印出来。

为什么需要单步调试?

单步调试,可以看程序一步一步的执行情况。掌握代码的执行。便于查找问题。

Spring IoC(反转控制) SpringDI

原理:由spring来控制对象的生成对象,控制对象的生命周期,以及对象间的关系。

这里知乎上有个回答对这个的有点阐述的很好:这里贴出来

Spring IoC有什么好处呢? - Sevenvidia的回答 - 知乎 https://www.zhihu.com/question/23277575/answer/169698662


自己理解:java程序中本来是上层结构依赖底层结构,如果这时候底层结构改变,那么整个上层结构都会改变。springDI 可以实现依赖注入,由上层结构去控制下层架构 这样如果下层结果需要变化,只需要改变下层结构,而不需要修改整个结构。降低了耦合。

类似于中介,它自身不使用资源而是提供资源给我们使用。

当我们需要一个新的对象,这时候不需要了解对象到底是如何创建的,springIoc 会自动建立好,它能够自己去找到依赖关系。如下图:

初步尝试了任务二:

在网上找到了对应的教程。跟着教程一步一步走下来。成功运行。下面贴出代码结构以及运行成果。

代码结构:

//主程序

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)

throws Exception {
ModelAndView mav = new ModelAndView("index");
   mav.addObject("message", "Hello Spring MVC");
   return mav;
}

//xml配置

<bean id="viewResolver"

     class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="prefix" value="/WEB-INF/page/" />
   <property name="suffix" value=".jsp" />
</bean>
<bean id="simpleUrlHandlerMapping"
     class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
   <property name="mappings">
       <props>
           <prop key="/index">indexController</prop>
       </props>
   </property>

</bean>


很气啊今天。被web的一个报错折磨了一下午。最后发现原来是表头少写了一行。以及有一段时间8080端口被占用。

运行效果:

 


明天计划的事情:

继续深入学习springMVC。

遇到的问题:

在任务一中,接触了很多东西。java mysql  maven mybatis spring lunix junit这些做java经常会接触的东西,在任务一全部接触了。

任务一也是真的很难。自己对java毫无基础。

今天主要还是在配置springMVC的过程中遇见的问题。很气。

收获:

大体总结了任务一。不过有很多地方都没有深挖,只是处于一个了解,能用,会用的阶段。自己基础还是相当缺乏。慢慢来吧。争取在以后任务中,

多遇见问题,这样成长更快,单纯的学习某一样知识,当时会了,很容易忘记。还是要自己遇见问题的时候,解决了,记录下来,这样自己印象深刻,以后遇见类似的问题,更容易解决。

禅道链接:http://task.ptteng.com/zentao/project-task-418.html

以上!


返回列表 返回列表
评论

    分享到