发表于: 2017-01-12 23:33:54
3 2059
一、了解了什么是贫血模型和充血模型。
贫血模型:面向过程,贫血模型是指领域对象里只有get和set方法(POJO),所有的业务逻辑都不包含在内而是放在Business Logic层(service层)。层次结构清楚。使用spring的时候通常时贫血模型。会导致service层过于庞大。
充血模型:面向对象,大多业务逻辑和持久化放在Domain Object里面,Business Logic只是简单封装部分业务逻辑以及控制事务、权限等。缺点是如何划分业务逻辑,什么样的逻辑应该放在Domain Object中,什么样的业务逻辑应该放在Business Logic中,这是很含糊的。而且要把持久层的业务逻辑全部封装,属于重复的劳动工作。依赖持久层
二、唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
是否有重复值,没有重复,很少使用curd
三、如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
SELECT COUNT(*) FROM xxx WHERE ID=xxx;
if (x == 0)
INSERT INTO xxx VALUES;
else
UPDATE xxx SET ;这样写代码比较简陋而且操作性能上有所缺失
-----------------------------------------------------------------
INSERT ... SELECT
INSERT ... ON DUPLICATE KEY UPDATE
INSERT ... ON DUPLICATE REPLACE
例如:select * from player_count where player_id = 1;//查询统计表中是否有记录
insert into player_count(player_id,count) value(1,1);//没有记录就执行insert 操作
update player_count set count = count+1 where player_id = 1;//有记录就执行update操作
insert into player_count(player_id,count) value(1,1) on duplicate key update count=count+1;
四、varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
varchar是变长,但不但表就可以给一个很大的数字,因为会消耗本地内存,内存会预先读取你的varchar设置的长度,然后分配足够的内存。开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。
一个汉字两个字节,英文数字一个字节。
Test: 最大长度65535个字元(2^16-1)
LongTest: 最大长度4294967295个字元 (2^32-1)
五、怎么进行分页数据的查询,如何判断是否有下一页?
Mysql比较简单:有一个方言:limit
limit关键字的用法:
LIMIT [offset,] rows
offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。
例:取第11条到第15条数据,共5条
Select * from table limit10,5
六、为什么不可以用Select * from table?
个人感觉如果不是导出数据库,时间长,效率慢
七、Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?
IOC:控制反转 。资源不由使用资源的双方管理,而由不使用资源的第三方管理。
所谓的依赖注入,则是,甲方开放接口,在它需要的时候,能够讲乙方传递进来(注入)、所谓的控制反转,甲乙双方不相互依赖,交易活动的进行不依赖于甲乙任何一方,整个活动的进行由第三方负责管理。
为什么要用IOC而不是New来创建实例:
使用factory来实例化要比new创建实例化轻松,维护少。
传统方法依赖严重,改动一个地方其他地方也有很多需要改变的。
具体的我还需要研究:
八、为什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?
编写程序要实现高内聚,低耦合。Interface和Impl刚好可以。
1. 需要实现多态。2. 要实现的方法(功能)不是当前类族的必要(属性)。3. 要为不同类族的多个类实现同样的方法(功能)。
九、为什么要处理异常,Try/Catch应该在什么样的场景下使用
例子:这么讲,你需要从磁盘读取数据,正读到一半时,有人把磁盘给拔了,你的程序会怎样?
1 捕获了异常,报告读取错误,然后由用户处理
2 程序继续读,还读不到,继续读。。。。。直到永远...
对于处理不了的异常,只能抛给调用者自己处理,如果都不处理,那就main结束好了。
无法抛出异常时就需要捕获
十、为什么需要单步调试?怎么Debug?
以debug方式运行java程序后
(F5)单步执行程序,遇到方法时进入;
(F6)单步执行程序,遇到方法时跳过;
(F7)单步执行程序,从当前方法跳出;
(F8)直接执行程序。遇到断点时暂停;
按F5就是一层层深入的debug相当于剥葱样,会进入每个方法内部;
按F6就是在当前函数一步步debug,不理会深层次运作;
按F7就是如果当前进入了某个方法内部,都跳转到该方法的结尾代码处;
按F8就是如果后面还有断点,则运行到下一断点处,否则运行完程序;
另,在debug时,会有很多有用信息显示在debug框里,如堆栈信息,需要自己实践;在程序界面里,鼠标移到变量上时会有当前变量的属性值。
认识debug视图,红色部分框为线程堆栈视图,黄色部分框为表达式、断点、变量视图,蓝色部分为代码视图。
F5进入方法内部,看代码中的参数是否有值。
十一、编写Mybtis,规范名称
十二、在虚拟机上安装mysql
1. sudo apt-get install mysql-server
2. sudo apt-get install mysql-client
3. sudo apt-get install libmysqlclient-dev
安装过程中出现了MySQL ERROR 1698 (28000) 错误。
参考网址:http://blog.csdn.net/ryshiki/article/details/50459008
明天计划
继续在虚拟机上安装环境变量.
学习一些基本命令,和简单的操作。
mybatis和spring的学习.
遇到的问题
在虚拟机上安装mysql,jdk和Tomcat一点头绪也没有。请教了莎莎才明白。然后在沈明的帮助解决了问题。
收获:
ubuton的基本命令
在虚拟机上的基本操作
评论