发表于: 2018-03-21 21:03:04

1 625


今天完成的事:

1.理解mybatis.

2.知道了什么是连接池.

3.了解了一下多线程.

4.关于注解 -Mybatis

5.完成了一些 深度思考.



1.关于mybaits 控制文件中连接方式的意义.



我百度了一下连接池的意思:下面用我自己的话理解一下.

       在我之前使用    JDBC     往数据库插入数据的时候, 用错了方法,  每执行一次  sql语句 ,就要取得和断开一次服务器的连接.当时是在远程服务器上构建连接,发现 执行sql语句 用5ms的时间,而取得在关闭连接,在加上 执行SQL语句就要花费3-5s的时间,当时只觉得慢,今天百度了一下.发现 如果一个网站 ,我们打开网页 就是相当于一次取得连接,而一个连接 要花费几秒钟,那好多用户都要操作,就要花费很久的时间,这样会让用户体验极差,可能还会让 电脑在不停的连接关闭之下崩溃....

2       所以就产生了一个连接池的概念

       连接池 顾名思义 ,就是一个包含了很多连接的池子,当我们想要获得一个连接的时候,就在连接池 取出一个连接出来,当我们在实现类写出sqlsession.close(),并不是关闭连接池,而是把该连接又放回了连接池,供其他方式(人)来调用.


       这里,就又出现了 sqlseeion, 他是又sqlseeionFactry创建出来了一个例子,它包含了 JDBC 中的connection  statement (连接,执行SQL语句)等,他是一个单线程操作.  

3       这里有出来了一个单线程和多线程.  我的理解是.....(在这里我皮一下)...

        关于单线程:当我想吃饭的时候,我只能用嘴吃饭....这就是单线程.

        关于多线程:当我想打师兄的时候,有两种方式:    *  我同时用拳头和脚打师兄   叫多线程.

                                                                               *  或者是  我用拳头打师兄, 然后在用脚提师兄,拳打脚踢不能同时,但是可以通过不同方式.叫多线程

 

         不太明白,关于多线程到底哪个正确......少楠 师兄用代码给我说- -但是我不太懂,百度了一下,就是这两种答案的感觉


      再看深入一点的解释就不是特别懂了


       最后少楠师兄用电脑cpu来给我讲了一下,大概是说以前单核CPU时候 是没有 多线程的,但是我们能打开多个应用 却不觉得 他中断连接是因为, 各个应用是在后台断开连接的,只不过因为他刷新的很快,所以我们感觉不到.

       


       



4.关于mybatis 注解.

红框标记的箭头所指就是Mybatis注解, 就是舍弃了 使用xml  上拼写sql语句来使用注解方式直接在   接口上每个方法上使用注解提供语句....  他会比  xml文件方便,而且在SQL语句比较简单的情况下,会让代码或者你的这个快看着比较简洁.但是一旦sql语句 复杂起来但是会让接口带看很乱不好看,不利于修改.....还需要单独创建一个 class 来放置复杂的 sql语句..


    使用XML 来 写上sql 语句的话,一旦SQL语句复杂的话,我们只用添加不同的表情 对XML进行改变 不用去改变别的calss就好...,关于主注解的关键字      where  choose when set 等 都是需要记忆的东西.



4.深度思考.

2.clean,install,package,deploy分别代表什么含义?

        这些关键字 ,都是 maven 操作的关键子, 

mvn-package----打包执行命令,使用他会在target 中形成一个jar包或者war包

Mvn package

执行 mvn package命令,完成打包操作执行完毕后,会在target目录中生成一个文件,该文件可以是jar、war等

Mvn install

执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

Mvn deploy

将打好的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

  mvn install---执行该操作,会在我们的本地仓库将,打包好的jar 包安装到本地仓库....

mvn deploy---- 将打好的包放到远程仓库中,供需要的人下载

maven pom.xml 中 添加的jar包就是 首先通过package打包后使用,在通过Insatll安装在本地目录,当那个人觉得,哇我打包的这个jar包so coooool ,他就是把jar包放在 网上 通过deploy命令 供大家加载使用...

        嗯,现在觉得做jar包的都是大神!!!!


mvn clean 会把 根目录下的targer移除 


3.怎么样能让Maven跳过JUnit?

       知道了给pom.xml 添加字段可以让maven 跳过 Junti  不过查不到为什么....

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

嗯.....等我用自己的话能讲出来的时候在来说一次....,知道了是使用SQL语句中的limit语句来分页,但是如何判断不知道....


15.什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?

      贫血模型:    只包含属性 和一些简单的  set get 方法 ,那如果接口上  注解了SQL语句,算不算贫血模型


      充血模型:      包含属性和复杂逻辑方法

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

17.为什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?

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

         - -在有可能抛出异常的方法中 使用try catch   ,他就是一个 能抛出异常的  语句 catch 用来接 异常类型 ,try后面能跟多个catch   一个异常不对就继续往下抛

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

20.为什么需要单步调试?Debug的时候IDE是怎么找到源码的?

21.可否远程连接到线上直接调试?真实的项目中,遇到问题的排查方案是什么?


2.今天的收获.

          有了目标感觉每天都有收获,今天主要懂了很多基础概念.一个问题上卡太久  我!再!也!不!要!来!了!

3明天的计划:

        打包jdbctemple    ,尽量完成剩下的深度思考..






返回列表 返回列表
评论

    分享到