发表于: 2017-09-16 23:50:26
1 681
今天完成的事情:
1.完成深度思考的题目:
13.怎么进行分页数据的查询,如何判断是否有下一页?
分页查询分为两中:
逻辑分页:第一次访问时将所有数据获取,放在session中,在分成小的list,实现分页。因为此种方法是在内存的session对象中进行计算分页显示的,而不是真正的将我们数据库进行分页的。缺点是:数据量大是耗费内存,更新不及时。适用于小规模的数据量。
物理分页:使用数据库自带的分页机制来实现。好处是更新及时,占用内存少。并且是常用的方法。
Mysql中:使用limit:select * from table_name limit 10,5// 从第十条开始后面的五条。
或者使用SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;
最后是使用FOUND_ROWS()函数;
Select found_rows *from table where…
15.什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?
强制使用贫血模型可能是因为这种方式将代码分的比较明确,并且实现起来简单,对于初学者来说有一些重复之类的问题也可以接受。
19.日志应该怎么打,在什么位置,需要打印出来什么样的关键参数?
日志可以打在控制台,也可以打在文件中记录,
#输出到控制台
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
输出到E盘的log.log文件
log4j.appender.B=org.apache.log4j.FileAppender
log4j.appender.B.File=E:\\log.log
一般使用日志时主要记录不同的几个级别,其他的使用到了再具体说。需要打印的参数可看情况,但是一般都需要info,error,waring这三个。
20.为什么需要单步调试?Debug的时候IDE是怎么找到源码的?
单步调试可以确定出程序出错的范围,并且帮助我们解决问题。。ide怎么找到源码的查不到,后面去问问师兄。
21.可否远程连接到线上直接调试?真实的项目中,遇到问题的排查方案是什么?
可以远程连接调试,可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。但是在线上调试应该不行,因为其他用户的操作肯定会影响到调试结果。
1.重新读一遍程序,按照自己以前设计的思路来看,是否偏离的现象。
2.然后使用debug看看是否会出现报错
3.在程序中间设置一些输出的结果,比如在排序后输出一下看看是否正确,
4定位了错误以后,在查看是否出错。
2.数据库连接池,插入大量数据。
今天我看了很多数据库连接池的代码,发现连接池还是和普通的jdbc的连接还是有些不一样,然后需要插入大量数据比较快的方法是使用addbach()把若干sql语句装在到一起然后一起在数据库执行,需要的时间就比每次都要进行传递语句connection.setAutoCommit(false); 就是不自动提交。
connection.commit();手动提交
明天的计划:
写任务一的总结。
然后整理代码准备上传
遇到的问题:
实现数据库连接池,用了太多时间,主要还是对jdbc的配置原理不清楚所以导致在使用连接池的时候很多东西都有点坑。。。明天继续。
收获:
深度思考的问题都做完了,但是有一些还是不够了解,要继续看。
连接池的内容感觉深刻一些了。
评论