搬砖笔记(一)


title: 搬砖笔记(一)
date: 2019-11-03 10:11:05
updated: 2019-11-03 10:11:05
categories:

  • 搬砖笔记
  • java

tags:

  • java
  • jquery
  • mybatis
  • tomcat
  • jsp
  • javascript

搬砖笔记(一)

作为码农平时搜集一些小知识点个人认为是个不错的习惯,书上说

好记性不如烂笔头

我想即使是以前忽略或者新get的很简单的东西,自己动手记下来不管如何印象也会更深刻。

这篇笔记截至时间2019年11月3日。

1、tomcat设置jvm

-Xms128m -Xmx1024m -XX:MaxPermSize=512m

2、el表达式判断字符串是否为空
${值 eq null or 值 eq ’ '} 返回true 的话,表示为空。例:

test="${company.custName eq  null or company.custName eq ' '}"

${empty 值} 返回true ,表示为空字符串。例:

test="${empty  company.custNam}"

用empty方法更好,el表达式封装了

3、el表达式判断
==、eq、//相等
!=、ne、// 不相等(inequality)
<、lt、//小于(less than)
>、gt、//大于(greter than)
<=、le、//小于等于(less equal)
>=、ge。//大于等于(greter equal)
例子:判断传过来的值是否大等于2

test="${product.validity ge 2}"

4、mybatis遍历集合


   #{classIds}
foreach >

mybatis foreach的collection参数可以是java的Array或者List
5、 jQuery的data()方法,相比attr()更安全
访问id为test的元素 的data-name属性例子:

   $('#test').data("name"); 

6、数据库权限问题

  • cmd进入mysql/bin目录下后,mysql -u root -p并输入密码登陆
  • grant all privileges on . to root@"%" identified by “.”; 注意root替换为报的错
  • flush privileges;

7、mysql的date_format函数用法
语法如下:

date_format(now(),'%Y-%m-%d %H:%i:%s')<结束时间

  参考链接

8、mybatis中小于号都要写成<大于号可以不用转

9、mybatis传入参数为0被误认为是空字符串,解决方法是去掉等于0的判断

10、js保留两位小数方法

function toDecimal(x) {
	var f = parseFloat(x);
	if (isNaN(f)) {
		return;
	}
	f = Math.round(x*100)/100;
	return f;
}

11、jQuery判断checkbox是否选中的一些方法
方法一:

if ($("#checkbox-id").get(0).checked) {
    // do something
}

方法二:

if ($("#checkbox-id")[0].checked) {
    // do something
}

方法三(建议):

if($('#checkbox-id').is(':checked')) {
    // do something
}

12、checkbox赋值方法

$("#checkbox-id").prop("checked",true);

13、js页面加载前调用的一些方法
方法一:

$(function(){
//do something
})

方法二:

$(document).ready(function () {
 //do something
});

方法三:

if(document.readyState=="complete"){
 //do something
}

14、判断页面元素是否显示
  参考链接

15、加红色样式

<font color="red">测试font>
<span style="color:red">测试span>

16、连续数字或字母换行

style="word-break:break-all; width:200px; overflow:auto;"

17、表格内容过长时截取显示

<span title="鼠标放上去显示的内容">实际显示的内容span>

18、科学计数法格式化
java 返回字符串:

DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);//强制保留两位小数
String productPrice= df.format(productViewVo.getProductPrice());

注意这种方法还需要替换","

js简单粗暴的方法 返回字符串

var formatScientificNumber = function(value){
		let result = String(value);//可以用0.0000001测试
		if (result.indexOf('-') >= 0) {
			result = '0' + String(Number(result) + 1).substr(1);
		}
		return result;
	}
console.log(result);

19、输入框限制只能输入数字

onkeyup="this.value=this.value.replace(/[^\d]/g,'')" 

20、jquery需要用text()取span的值

21、jquery获取table的所有tr以及td

$('#tabbleId tr').each(function(i){          // 遍历 tr
  $(this).children('td').each(function(j){  // 遍历tr的各个td
	 alert("第"+(i+1)+"行,第"+(j+1)+"个td的值:"+$(this).text()+"。");
  });
});

22、mysql的concat_ws(sperator,str1,str2,str…)、concat()、repeat()方法

  • concat_ws()方法可以将两个字段的值拼接起来,它的本意是有分隔符的字符串连接。但要注意为null的情况(不然整个都会为null)
    例子:
    concat_ws(c.city_code,'',ifnull(c.company_address,''))
    
  • concat()函数可以连接一个或者多个字符串,只要一个为null就会返回Null
  • repeat()函数用来复制字符串,比如select repeat(‘ab’,2);//abab

23、mysql删除所有表数据(不是删除数据库)
返回所有drop table语句语法:

SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'saas_mcjd';

24、将Double类型的数据保留2位小数

Double a = 2.34566; 
BigDecimal bd = new BigDecimal(a); 
Double d = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 

d输出就是2.35, 注意会四舍五入

25、将String转Double,并保留2位小数

String a =6.145; 
Double d= Double.parseDouble(a); 
DecimalFormat df = new DecimalFormat(0.00); 
String s = df.format(d); 

s输出就是6.15,注意会四舍五入

26、js修改网页标题
可以在页面加载完时执行下面的代码

document.title ="产品详情"

27、js比较时间大小

function CompareDate(d1,d2)
{	
	return ((new Date(d1.toString().replace(/-/g,"\/"))) < (new Date(d2.toString().replace(/-/g,"\/"))));
}

28、页面定期刷新

setInterval(func,time);

29、jsp根据参数默认选中radio

<tr>
	<td class="va-m text-right text-dark6" width="20%">是否集团审批:td>

	<td colspan="3">
		<div class="checkbox checkbox-circle mn">
			<input type="radio" name="isApproval" id="isApproval"  value="1" if test="${businessModeViewVo.isApproval eq 1}">checkedc:if>/>
			<label class="font-bolder" for="isApproval">需要label>
		div>
		<div class="checkbox checkbox-circle mn ml10">
			<input type="radio" name="isApproval" id="noIsApproval" value="2" if test="${businessModeViewVo.isApproval eq 2}">checkedc:if>/>
			<label class="font-bolder" for="noIsApproval" >不需要label>
		div>
	td>
tr>

关键代码:

<c:if test="${businessModeViewVo.isApproval eq 2}">checkedc:if>

30、页面元素的禁用与启用
禁用:

$("#id").attr("disabled","true");  
$("#id").attr("disabled",true);  
$("#id").attr("disabled","disabled");

启用:

$("#id").removeAttr("disabled");  
$("#id").attr("disabled",false);  

注意:$("#id").attr(“disabled”,“false”);不起作用,disabled只能禁用button,对超链接不起作用

31、handlebars 时间格式化

<td>{{dateFormat addTime 'YYYY-MM-DD HH:mm:ss'}}td>

32、handlerbars判空,if 和unless

{{#if logisticsId}}
			<a type="button" class="text-button text-blue3 pr10" data-toggle="tooltip" data-placement="left" onclick="seeDetail('{{logisticsId}}')" >查看a>
{{/if}}

它是尝试去读取logisticsId属性,如果返回的为undefined、null、""、[]、false任意一个,都会导致最终结果为假。unless和if正好相反,当返回false的时候执行。

33、正则校验所有输入框

 $("input[name='unitPrice']").each(function(){
	var unitPrice = $(this).val();
	var reg = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/;
	var reslut = unitPrice.match(reg);
	if(reslut==null){
		toastrWarning('无效金额,整数8位,小数2位,示例:247.23');
		return false;
	}
});

34、

var htm = $($('#checkMethodDiv').html()); htm[0].outerHTML;//1     
var htm = $('#checkMethodDiv');htm.html();//2  

1返回的是文本 整个返回的貌似是一个对话框对象
2返回的是document对象

35、禁止textarea拉伸

style="resize:none"

36、做申请开票的时候,订单列表从表格中删除了,但下次点申请开票时还在。使用空串替换某一个订单号,则是可以实现去除指定字符串功能。

orderIds = orderIds.replace(orderId+","," ");

37、登陆后跳回原来的页面的问题
思路:点击登录的时候用一个springMvc获取到当前url,并把其放到session中,登陆后从session中取出url 清空后跳转

38、jquery在不知道数组元素下标的时删除数组元素

 if($.inArray(templateId.toString(),templateIdSelected)>=0){
		templateIdSelected.splice($.inArray(templateId.toString(), templateIdSelected), 1)
	}
  • $.inArray(),函数用于在数组中查找指定值,并返回它的索引值(如果没有找到,则返回-1),源数组不受影响
  • arrayObject.splice(index,howmany,item1,…,itemX)
    index: 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
    howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
    item1, …, itemX: 可选。向数组添加的新项目。
    splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

39、jsp千分位

<fmt:formatNumber value="${subscriptionMoney }" pattern="#,###.####"/>	
subscriptionMoney.replace(/(?<=\d)(?< !.\d*)(?=(\d{3})+(.|$))/g,',');	
paymentFee.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')

40、数组需要json格式化传到后台,不能直接用隐藏域

 var data = $('#settlementForm').serializeJson();//不是serialize();
 data.fileAttachIds = $("#uploader2").catUpload("getUniqueId");
url : '/member/purchaseentrustmgr/ajaxpaybond',
contentType:"application/json",
data :  JSON.stringify(data),

41、java千分位

DecimalFormat df = new DecimalFormat("#,###.00");	//0用于小数部分,不足补0.
System.out.println(df.format(vo.getStockPrice()));

参考链接

42、在使用removeAttr()移除了radio的checked属性后,使用attr()重新增加不起作用

 $("#invoiceStatus2").prop("checked","checked");
 $("#invoiceStatus1").removeAttr("checked");

即使用prop()可重新配置上该属性, 具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

43、mysql查询一张表的详细信息(注释)

show full columns from 表名;

use information_schema;
select * from information_schema.columns where table_schema ='数据库名' and table_name = '表名'  (and column_name='CONTRACT_status' limit 1)

44、查询mysql创建表的sql

show create table 表名

45、textarea开始标签和结束标签中间不要有“回车”。 否则内容不是从头开始的

46、js科学计数法还原
方法一:

const a = 0.00000001;
let result = String(a);
if (result.indexOf('-') >= 0) {
   result = '0' + String(Number(result) + 1).substr(1);
}
console.log(result);

方法二:

function toNonExponential(num) {
    var m = num.toExponential().match(/\d(?:\.(\d*))?e([+-]\d+)/);
    return num.toFixed(Math.max(0, (m[1] || '').length - m[2]));
}

47、textarea没有value属性

<textarea id="summary" name="summary" rows="8" cols="50" "><%= summary %>textarea>

48、mysql不等于null语法is not null,mysql等于null语法is null

49、js正则匹配

var reg = RegExp(/^[0-9a-zA-Z_]+$/);
if(!material.match(reg)){
   alert("内部料号为数字、字母、下划线或三者组合");
}

50、jquery获取选中值

//获取radio checkbox选中值
var item = $('input[name=items][checked]').val(); 
//获取option选中值
var item = $("select[name=items] option[selected]").text(); 

51、mybatis 的标签
prefix 给sql语句拼接的前缀 suffix 给sql语句拼接的后缀
prefixOverrides 去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
suffixOverrides 去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定

52、sql的group_concat()函数默认拼接字符串长度是1024,可以手动设置。 做双贸项目分组查了分类下的所有扩展属性,后面分类多了肯定出问题

53、jquery的on()方法不起作用的解决方法。双贸前台商品列表扩展属性监听用到

$(document).on('click','.attrList li',function () {
}

这种方法每次执行点击事件 的时候,它会先找到document对象,然后去检测有没有子对象,如果有的话,他就将事件给到子对象,子对象得到该事件之后就开始触发事件后面的方法

54、mybatis返回List只需要resultType="java.lang.String"就可以了

55、jQuery下拉框默认选中

   $("#businessModeAll option[businessId='104']").prop("selected",true); 

其中businessId是自定义属性,正常用value就可以了。attr方法正常取属性值:

$("#businessModeAll option:selected").attr("businessId");

56、

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

这个月份和分钟一个是大写M一个是小写m,不能混用不能混用不能混用,不然会出现离奇解析错误;H表示小时按24小时制,h不按24小时制

你可能感兴趣的:(Web开发,JAVA开发,mysql)