发表于: 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层,专门用于数据库操作。就是只有get和set方法。
充血模型: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语句,感觉更容易理解,也方便
评论