1、Idea基础设置:
File-->settings-->
1>修改字体:Font
2>修改编码格式:File Encodings(全部UTF-8,右下方复选框勾中--防止程序中的汉字转为ASCII码)
3>修改行号:Appearance:show line numbers
show method separators(方法与方法间的分隔符)
4>格式化代码:code style --> java (全部改成2)
5>代码提示:Editor --> General --> Code Complet ;
6>修改背景颜色:Editor --> General --> Scheme;
2、更改idea中的代码颜色:
网址:「intellij-idea-tutorial」下载需要的jar包;
导入jar包import Settings,重启idea启用-->修改字体。
3、安装Tomcat的时候:
出现这个错误---java.lang.UnsatisfiedLinkError: D:\apache-tomcat-7.0.69\bin\tcnative-1.dll: Can't load IA 32-bit .dl
我嫌麻烦找个最简单的办法,就是找到tomcat的bin目录下的 tcnative-1.dll,将其删除就好
4、集合中-套用-集合:
String str="abcdefg";
//外层集合(List)定义:
List<List<String>> list1 = new ArrayList<List<String>>();
for(int i=0;i<=5;i++){
//内层集合(普通)定义;
List<String> list2 = new ArrayList<String>();
for(int j=0;j<=str.length();j++){
String s = str.valueOf(j);
list2.add(s);
}
list1.add(list2);
}
System.out.println(list1.toString());
一个集合调用另一个集合:
List list1 = Arrays.asList(list2);
5、*****根据文件上传路径----解析文件:*****解析Excel;
网站:https://www.jianshu.com/p/3798a78303f8
POI的API文档网址:
http://poi.apache.org/apidocs/index.html
public static void main(String[] args) throws FileNotFoundException,IOException {
List<List<String>> list = readFile("C:\\Users\\Administrator\\Desktop\\资产-test.xlsx");
System.out.println(list);
}
// 读取文件;
private static Workbook getReadFile(String filePath) throws FileNotFoundException,IOException {
try(FileInputStream fis = new FileInputStream(filePath)) {
if(filePath.toLowerCase().endsWith("xlsx")) {
return new XSSFWorkbook(fis);
}else if(filePath.toLowerCase().endsWith("xls")) {
return new XSSFWorkbook(fis);
}else {
throw new RuntimeException("文件格式错误!");
}
}
}
// 解析文件;
private static List<List<String>> readFile(String filePath) throws FileNotFoundException, IOException {
try(Workbook workbook = getReadFile(filePath)){
List<List<String>> contents = new ArrayList<List<String>>();
Sheet sheet = workbook.getSheetAt(0); // 这里应该改成循环每一个excel里的sheet
for(int i=0;i<=sheet.getLastRowNum();i++) { // 从第一列开始取值;
List l1=new ArrayList();
for(int rowNum=2;rowNum<=sheet.getLastRowNum();rowNum++) { // 从第一行开始取值;
Row row = sheet.getRow(rowNum);
Cell cell = row.getCell(i);
if (cell != null) {
l1.add(getCellValue(cell).trim());
}
}
contents.add(l1);
}
return contents;
}
}
private static String getCellValue(Cell cell) {
CellType cellType = cell.getCellTypeEnum();
switch(cellType) {
case NUMERIC:
return String.valueOf(Math.round(cell.getNumericCellValue()));
// 此处浮点型转换成Integer类型(Math.round());
case STRING:
return cell.getStringCellValue();
case BOOLEAN:
return String.valueOf(cell.getBooleanCellValue());
case FORMULA:
return cell.getCellFormula();
case BLANK:
return "";
case ERROR:
return String.valueOf(cell.getErrorCellValue());
default:
return "StringUtils.EMPTY"; // commons-lang3包的方法,和List一样
}
}
6、Integer.parseInt(String s)、Integer.getInteg(String s)和Integer.valueOf(String s)的区别:
parseInt(s)-----只是将是数字的字符串转成数字,注意他返回的是int型变量不具备方法和属性;
getInteger(s)---是读取s的系统属性,然后把该系统属性的值转换成一个数字,一般结果是null;
valueOf(s)------将数字型的字符串转成数字,返回的是Integer类型,具备方法和属性;
Math.round(“4.0”);---s是浮点型,四舍五入成整型4;
7、操作git中有时候会提示Unlink of file '......' failed. Should I try again?
网址:
https://www.cnblogs.com/wormday/p/git_unlink_of_file_failed_should_i_try_again.html
原因是你工作目录有某些文件正在被程序使用,这个程序多半是Idea,VS或者eclipse,当然也可能是其他程序
解决方案不是简单的选择y或者n,而是关闭IDE,让IDE把这些文件释放掉
8、idea中回车的符号:” \r\n “
//定义分隔符类型;
String[] ss=new String[]{"\r\n", ",", ";", ",", ";", "、"};
// 判断是哪种类型分隔符:
ipList = ips.split(ss);
9、用命令提示符导出数据库中某几个表:
mysqldump -u用户名 -p密码 数据库 表一 表二 表三> 保存路径
例如:
mysqldump -uroot -p123456 batsir bus_groupandtask bus_scanasset bus_scanportflaw> e:\bus_ssg.sql
用命令提示符向数据库中导入表:
mysql -uroot -p123456 batsir<C:\Users\Administrator\Desktop\bus_ssg.sql(出现 '\' 错误,没有影响----可以根据ID去查询测试)
(1)Mysql -uroot -p123456 --default-character-set=utf8 数据库名 <sql文件路径;
(2)Mysql -uroot -p123456
User 数据库名
Source 文件路径
10、HashMap集合中的元素解析到.txt文本中:
HashMap<Integer, String> result = new HashMap<>();
// 遍历集合中的元素;<key,value>
for (Integer key : result.keySet()) {
String value = result.get(key);
logger.info("Key = " + key + ", Value = " + value);
}
try {
String line = System.getProperty("line.separator");
StringBuffer str = new StringBuffer();
FileWriter fw = new FileWriter("C:\\Users\\Administrator\\Desktop\\1.txt", true);//保存到本地桌面上了;
Set set = result.entrySet();
Iterator iter = set.iterator();
while(iter.hasNext()){
Map.Entry entry = (Map.Entry)iter.next();
str.append(entry.getKey()+" : "+entry.getValue()).append(line);
}
fw.write(str.toString());
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
9、Idea启动服务器报错:--系统找不到指定路径;
10、SpringMVC的测试demo中无法正确引入JQuery的js;可能是js文件夹放错位置:
Js文件夹放在web下面而不是WEB-INF下。
11、发送Ajax请求:
前台JQuery发送Ajax请求:
$.ajax({
type: "Get",
url: "/data",
data: {
appId:appid,
key:key,
dateTime:datetime
},
dataType: "json",
success: function (data) {
$("#token").val(data.content);//将值填写到id为token的文本框中;
},
error: function (e) {
alert("请求错误:"+e.reponseText);
}
});
后台接收请求:
@RequestMapping("/data")
@ResponseBody
public String getToken(RequestJson json) throws IOException {
String appId = json.getAppId();
String key = json.getKey();
String dt = json.getDateTime();//如果dt为null时:dt=DateFormatUtils.format(new Date(), "yyyyMMddHHmmss");
String token = TokenBuilder.buildToken(appId, key, dt);
return token;
}
12、@Controller和@RestController的区别
@RestController
(1)返回的是return中的内容,不会返回jsp、html页面;
@Controller
(1)可以返回jsp、html,
(2)要是返回json,在对应的方法上加上@ResponseBody注解;
13、多行文本框的值显示在另一个textarea框中:
触发点击事件---onclick:
function request() {
$("#show").text("AppId:"+$("#appId").val()+"\n"+"DataTime:"+$("#today").val()+"\n"+"Token:"+data.content);
}
14、点击copy文本框,复制到粘贴板(点击就成功复制):
<textarea rows="5" cols="30" id="show" readonly="readonly" οnclick="myCopy()"></textarea><br/>
<font color="red"><div id="success"></div></font>
<script type="text/javascript">
function myCopy() {
var ele = document.getElementById("show");
ele.select();
document.execCommand("Copy");
$("#success").text("Copied to clipboard!");
}
</script>
15、修改table中表格间距:
Table中添加:style="border-collapse:separate; border-spacing:15px;"
Table中合并一行中的两列:<td colspan="2">
合并一列中的几行:<tr rowspan=xx >
16、存储过程(MySQL游标的使用):==重点+难点
17、IP字段192.168.2.0/24:
192.168.2.0换成32位二进制,四组,每组8位;
可分配的范围是前24位不变,后8位由“00000001”变化为“11111110”的范围;
即:192.168.2.1--192.168.2.254。
18、SpringBoot的项目如果有maven的时候打jar包操作:
Maven中直接clean,之后直接install;
生成的jar包在target文件夹下。
19、idea中将Java项目打成jar包:
(1)打开Project Structure,选中Artifacts;
(2)点击加号,选中jar ,然后from modules with dependencies;
(3)有main方法就添加对应的类,点击 ok;
(4)接下来,选择copy to ...路径为MANIFEST.MF的路径,点击OK;
(5)点击 Build ,选中 Build artifacts-->build,就会出现对应的jar包。
(用xftp工具将**.jar 文件夹上传到Linux服务器上,用命令运行项目jar包 例如:java -jar **.jar)
20、Oracle的sql语句转换成Mysql的sql语句:
需要下载软件:PowerDesigner
具体操作网址:https://www.cnblogs.com/xinxin1994/p/6961572.html
21、java中获取当前生成文件的路径:
System.out.println("生成文件路径:"+System.getProperty("user.dir")+File.separator);
结果: 生成文件路径:E:\spring-boot-basewebapp\
22、java中移动当前文件夹下的文件到另一文件夹下:
// 文件当前路径;
String startPath = System.getProperty("user.dir")+File.separator+path+fileName;
// 文件目标路径;
String endPath = "D:\\aaa\\";
File startFile = new File(startPath);
File tmpFile = new File(endPath);//获取文件夹路径
if(!tmpFile.exists()){//判断文件夹是否创建,没有创建则创建新文件夹
tmpFile.mkdirs();
}
System.out.println("目标文件路径:"+endPath + startFile.getName());
if (startFile.renameTo(new File(endPath + startFile.getName()))) {
System.out.println("File is moved successful!");
} else {
System.out.println("File is failed to move!");
}
23、SpringBoot修改当前工具的端口号:
直接在resources下创建application.yml或者application.properties文件;
24、formatter格式化,属性;
editoptions给属性赋值选择时需要加上格式化标签formatter。
(formatter + editoptions 共同存在)
25、formatter属性,后面加上formatimage;
可以将后台获取的值替换成图片;
26、Duplicate entry 'XXX' for key 'bgu_bgat_key' 是什么原因?
代表数据表中 字段xxx中 已经有1的这个数据了,xxx字段应该是主键,不能为重复,数据库将bgu_bgat_key索引类型改为:Normal。
27、【主机/Web关联】回显和编辑需要同步:
if(PlatformEnum.WEB==WebUtils.getPlatform(request)){
List<GroupRelationDTO> hostList = groupAndTaskService.getHostGroupIds(Arrays.asList(ud.getGroupId()));
if(hostList!=null && hostList.size()>0){
Integer groupId = hostList.get(0).getHostGroupId();
ud.setGroupId(groupId);
}
}