您的位置:首页 > 编程语言 > Java开发

2015年创业中遇到的技术问题:31-40

2015-05-03 00:00 441 查看
31.Linux下启动Mysql有N种方式。

service mysql start;

service mysqld strat;

上述2种方式是,mysql已经安装作为了服务,有的叫做“mysql”,有的叫做“mysqld”。

如果没有服务,还得手动启动。

比如,/usr/bin/mysqld start &。

一段时间不搞,记忆已经模糊了。

o(︶︿︶)o 唉

32.用户表-索引-类型。

user表:uid,name

A类用户:1开头,10001

B类用户:2开头,20001

C类用户:3开头,30001

按照我之前的想法,想给用户增加一个type字段,感觉更清楚一些。

boss觉得呢,从长远和性能角度,加前缀的方式更合适。

加前缀,查询一类用户,用uid < 10001 ,uid >= 20000 and uid < 30000。每次查询可以走索引。

根据类型type查询,type =1, type =2.

type的值是固定的1,2,3。

据说,索引的值不同反而更好。

数据库索引这一块一直没有认真细看过)

33.jquery事件委派。

jquery提供了delegate方法。

// tab 选项卡

$(".tab-package").delegate(".tab-menu li", "click", function() {

var self = $(this);

var parent = self.parents(".tab-package:first");

var content = parent.find(".tab-content");

content.eq(self.index()).show().siblings().not('.tab-menu').hide();

self.parent().children().removeClass('on');

self.addClass('on');

});

弊端就是,页面改版后,如果样式被改了,很多依赖JS的效果出不来,不容易发现问题原因。

34.HTML表格的colspan。

想简单实现横跨所有列,网上找了个资料,感觉很坑啊,又说0表示横跨到列组的最后一列,又说没有浏览器支持。

只好去动态计算应该横跨多少列。

定义和用法

colspan 属性规定单元格可横跨的列数。

浏览器支持

所以浏览器都支持 colspan 属性。

没有浏览器支持 colspan="0",这个值有特殊的意义。(参见属性值表格中的描述)

语法

<td colspan="value">

属性值


描述

number

设置单元格可横跨的列数。

注释:colspan="0" 指示浏览器横跨到列组的最后一列。

template="<tr><td></td><td></td></tr>";

横跨2列。

实践发现,把colspan设置大一点,比如20,就能横跨所有列了。

35.SpringMVC异常处理,不需要加多余的“后缀”了。

<bean id="exceptionResolver" class="com.p2p.base.util.MyExceptionHandler">

<property name="exceptionPage" value="/error/500" />

</bean>

错误的写法:

<property name="exceptionPage" value="/error/500.html" />

36.表格分页组件fupage,实现加载动画。

加载数据的时候,显示动画效果。

在组件刚刚执行的时候,先设置表格内容为“展示加载图片的html代码”。

等加载完之后,再重新设置表格的主体内容。

//动画效果

function loadingAnimation(bodyHolder,loadingImageUrl,isTable) {

console.log("fupage-loading...");

var loadingText = "加载中...";

var loadingImage = "<img src='" + loadingImageUrl + "' alt='玩名加载中...'/>";

var loadingDiv = "<div style='text-align:center;' >";

//表格才加“<tr>”

if(isTable){

//偷懒,一般表格不会超过20列,设置为20,横跨所有列

loadingDiv +='<tr><td colspan=20>';

}

if (loadingImageUrl) {

loadingDiv += loadingImage;

} else {

loadingDiv += loadingDiv;

}

if(isTable){

loadingDiv +='</td></tr>';

}

loadingDiv += "</div>";

$("#" + bodyHolder).html(loadingDiv);

}

37.Truncate Table。

在第21个问题,说到快速清空表数据的一种方法,drop table tablename,然后再重建表。

有粉丝给出了另外一种方式:Truncate Table。

Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用。

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。

如果要删除表定义及其数据,请使用 DROP TABLE 语句。

对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

TRUNCATE TABLE 不能用于参与了索引视图的表。

参考资料:
http://baike.baidu.com/link?url=ZQerws0xw22RxNSqcVbbATypqv6S9uxuP8k-SInjNBxRsnc9OmRsqWSBslWY8GxRlPr_OzAnU93EkkufepWFAa

38.kinMaxShow轮播图异常,最终发现是WebUploader图片上传坑爹,图片被压缩了。

宽度由350变成了250,因此显示不正常了。

39.Java生成某个范围的随机数。

方法一:

int max=20;

int min=10;

Random random = new Random();

int s = random.nextInt(max)%(max-min+1) + min;

参考:
http://www.cnblogs.com/xwdreamer/archive/2012/06/13/2547426.html

方法二:

import org.apache.commons.lang3.RandomUtils;

Integer n=RandomUtils.nextInt(100, 1000);

System.out.println("3位数的随机数:"+n);

40.

订单编号等唯一字符串,用17位的时间+3位的随机数。

/**

* 20位的唯一数,前17位是系统当前时间,后3位是随机数。

*/

public static String uniqueNo() {

String dateStr = DateFormatUtil.format(new Date(), "yyyyMMddHHmmssSSS");

Integer threeRandomStr=RandomUtils.nextInt(100, 1000);

return dateStr+threeRandomStr;

}

System.out.println("20位唯一时间戳:"+uniqueNo());

20位唯一时间戳:20150319101506558462
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息