1、需求描述:
最近做的需求有点杂,大部分还是之前需求的bug,所以为了以后代码质量更加好,这期就做一个近期技术的归纳总结吧。
2、遇到的问题和收获:
1)、在object对象get一个string类型的值时,尽量不用toString方法
可以使用object.getSting("key"),可以使用String.valueOf(object.get("key")),
这样可以避免报空指针异常,导致程序停止,后面两种方法值为空时,传的值为null,就不会报空指针。
2)、do { }while(); 的用法
int pageNo = 1;//页码
int pageSize = 200;//页面大小
int total = 0;//数据总量
int page = 0;//总页数
do{
//执行的代码
total = 1000;
pageNo++;
if (total % pageSize == 0) {
page = total / pageSize;
} else {
page = total / pageSize + 1;
}
}while(pageNo <= page);
先执行一遍do里面的代码,while条件为真,继续执行do里面代码,为假时跳出循环。
3)、需求中mysql中的收获:
SELECT * FROM table WHERE (id REGEXP '[^0-9.]')=0 (搜索表中字段id中值为纯数字的数据)
SELECT * FROM table WHERE (id = '0000') = 0 或者是 WHERE id != '0000' 和 WHERE id <> '0000' (搜索表中字段id中值不为为0000的数据)
SELECT中可以对数字和日期进行加减乘除运算
select u_name , u_score , u_score+10 , u_score-10 , u_score*2 , u_score/2 from table;
SQL中的连接符”||” 可将结果连接起来为一列,将u_name 和“的成绩为” u_score 连接起来
select u_name || '的成绩为' || u_score as 成绩 from table;
SQL中可以使用模糊查询like,其中 ‘_’ 占一位 ‘%’占多位。
查询名字中有 ‘清’ 字的记录
可以有三种表示方式,结果等价
包含’清’: %清%
第二位为’清’:_清%
倒数第二位为’清’:%清_
注:若要查询数据含有’_’ 关键字 则需使用 escape定义一个转义字符。如:like ‘%#_%’ escape ‘#’
SQL中可以对查询结果进行排序,DESC表示按从大到小排序,ASC表示按从小到大排序,默认为从小到大排序。
将T_USER表按成绩从大到小排序,
ORDER BY 语句也可以用逗号隔开,表示如果上一个条件相同,接下来的排序方式。
4、最后:
总结过后,我反省自己的sql能力还是有待提升的,很多mysql函数用的少,几乎都没见过,导致看见了都不明白这是干什么用的,这就有点可怕啦,学了这么久mysql居然有不明白的地方, 还有的一些Java代码需要写的规范,尽量避免空指针。这期内容还是很有必要的呀,对自己近期的开发需求中的技术做一个小小的总结,对自己的提升也是很多,出发吧,初级码农,向高级程序员进发吧!!!