发表于: 2017-11-13 14:46:18

1 962


今天完成的事情:重新测试一下mysql插入100万条数据

http://www.cnblogs.com/fanwencong/p/5765136.html

先修改一下数据库表存储量的最大值

有索引的情况下,插入1000万条数据,220s无索引的情况下,210s

有索引查询快,但是增删改慢。无索引则反之


1.maven是什么,和Ant有什么区别?

maven是一个可以通过在pom文件里添加依赖自动导包的方便使用的管理工具。ant没用过,通过百度得知没有maven那么方便


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

clean可以清除上一次maven项目执行的结果

install将项目输出构件部署到本地仓库

package是将文件打包成一个可移执行的jar文件

deploy是将文件发布,可以供别人阅读和使用。


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

在pom中加入如下代码

<plugin>

       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
         <skip>true</skip>
       </configuration>
 </plugin>


4.为什么要用Log4j来替代System.out.println?

log4j可以以文件的形式输入日志,还有输出优先级(看百度说的,还没用过)


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

各地区区时不一样,long类型转换精确


6.自增ID有什么坏处?什么样的场景下不使用自增ID?

分库的时候ID就重新开始增长,不能连着之前的;再数据量很大的时候不使用,因为会超出限制。


7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?

索引是对数据库表中一列或多列的值进行排序的一种结构。我刚才用到1000万条数据,时间差了10秒。如果某列经常被用于查询,则应该对他建立索引,加快查询速度


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

有唯一索引的列不能有重复值,比如身份证这样的


9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

不需要,唯一索引本身就能约束数据不能重复


10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?

CreateAt在第一次插入的时候赋值,UpdateAt在每次修改的时候赋值。应该,因为都要赋值


11.修真类型应该是直接存储Varchar,还是应该存储int?

varchar。他是字符串类型,对应数据库就是varchar


12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?

根据数据长度确定,比如姓名,一般都是三个字左右,长度就在5-10就行了,太多了会影响查询速度

Text和LongText,如字面意思,longtext可以储存更长的数据


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

SELECT * FROM 表名称 LIMIT M,N(m代表第几页,n代表该页的条数)


14.为什么不可以用Select * from table?

如果列太多,而需要查询的只是其中少数,就会影响速度浪费资源


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

不知道这是什么。看了下师兄们的日报

贫血模型:所谓贫血模型,是指Model 中,仅包含状态(属性),不包含行为(方法),采用这种设计时,需要分离出DB层,专门用于数据库操作。就是只有getset方法。

充血模型:Model 中既包括状态,又包括行为,是最符合面向对象的设计方式。


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

控制反转。本来我们是写代码实例化,用ioc则是把实例化交给xml去执行;这样可以减少类之间的依赖,代码量和对代码的修改和维护


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

接口定义了一种规范,实现该接口的类都要按照他的规范执行,有利于代码的维护


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

控制台,或者以文件的形式输出。打印出要打印的,报错了就打印错误信息


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

一步步看变量值的变化,方便看到问题。后面的不知道了


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

可以,后面的不知道了


看了一下完成任务后的验收标准,感觉之前做的项目需要完善。

比如:加上根据学员名字,学号去查找报名贴的单元测试

mybatis多条件查询,我在网上看到有几种不同的方式

https://www.cnblogs.com/zhangyu0217----/p/7145704.html

我挑选其中一个,就是把实体类作为参数,然后把条件加进去,感觉这种方式比其他几种要灵活,因为如果我想换成其他条件,直接在定义实体类set那个条件就行了


比如annotation之前没做,现在搞一遍。annotation和mybatis区别就是把sql语句放在接口上面,用一个@接着就行了


还有mybatis添加数据返回ID(删改我是返回int,判断一下就行了,没有改成boolean)

然后是annotation添加数据返回ID

http://www.mamicode.com/info-detail-1878881.html

注意加上我选中的这行代码

结果:

其他的应该没什么问题

看看java疯狂讲义

明天计划的事情:学习使用github,提交任务一的代码


遇到的问题:新建xml文件,这个头文件我不知道怎么弄出来。。这么长一大段,打错了咋办,肯定有自动生成的办法吧



收获:学习annotation,注解方式写sql语句,感觉更容易理解,也方便

















返回列表 返回列表
评论

    分享到