一、com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
警告: TDSChannel ( ConnectionID:2 TransactionID:0x0000000000000000) SSL handshake failed: java.lang.RuntimeException: Could not generate DH keypair
解决方案:https://blog.csdn.net/bad00temper/article/details/72478302
自己解决方案:下载jdk1.7
---------------------------------------------------------------------------------------------------------------------------------------------------------------
二、JavaWeb应用出现HTTP 500-Unable to compile class for JSP 错误 的解决
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6383192.html
把本机的web项目部署到了云主机的tomcat上。之后通过浏览器访问时,如果出现 HTTP 500-Unable to compile class for JSP 的错误,应该怎么解决呢?
通常,造成这种错误的原因是你开发时所用的jdk版本以及本地测试时的tomcat版本比云主机上搭建的jdk版本以及tomcat版本低造成的。
解决方案:重新搭建云主机的jdk以及tomcat,版本选择开发时myeclipse所用jdk版本。
1:查看开发所用jdk版本。
在myeclipse中点击File,Properties,左侧栏选择BuildPath。
如上图,JRE System Library[Sun JDK 1.6.0_13]即为我的项目编译时所用的JDK版本。
2:根据上面得到的JDK版本,下载相应的tar.gz文件,参照博文 http://www.cnblogs.com/ygj0930/p/6377878.html 搭建JDK。
3:根据JDK版本选择tomcat:一般选择与JDK版本相应的tomcat。比如这里JDK6,所以我搭建了tomcat6。当然也可以选择tomcat7,8,9。记住,tomcat的版本必须大于等于JDK的版本。
4:重新部署web项目。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
三、程序报错快速定位的心得
1.报错日志中找到最顶层错误信息,并定位到相应错误行,此处可以排除更深层的报错,因为当前行是报错位置,所以不是更深层的错误。更深层指自己写的其他调用方法
2.根据Exception的具体错误信息排查错误,如nullpointerexception一定是某个对象为null,所以null.func()就会报错
---------------------------------------------------------------------------------------------------------------------------------------------------------------
四、POI读取excel文件单元格内容时要根据单元格的格式调用不同方法读取
CellType cellType = cell.getCellTypeEnum();
switch (cellType) {
case STRING:
return cell.getStringCellValue();
case NUMERIC:
return String.valueOf(cell.getNumericCellValue());
case BOOLEAN:
return String.valueOf(cell.getBooleanCellValue());
default:
return "";
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------
五、POI对cell判null条件,单元格没有做任何操作就是null,修改了单元格的文本类型也不为null
---------------------------------------------------------------------------------------------------------------------------------------------------------------
六、svn更新项目后,eclipse内一定要F5刷新下项目。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
七、java.sql.BatchUpdateException: 将截断字符串或二进制数据。
字段长度大于数据库字段最大允许长度
1、直接取一条数据,insert,每次insert在values里加一个字段,判断是哪个字段出问题
2、再可用java代码解析数据判断是否是哪条数据超出了
3、char和varchar的区别:(1)、char存英文(ASCII)1个字节,中文2个字节;varchar存中英文都2个字节。
(2)、定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了
(3)、取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。
(4)、char的存取数度比varchar要快得多,因为其长度固定,方便程序的存储与查找;
(5)、char长度固定,会有多余的空格占位符占据空间,以空间换时间,varchar以空间效率为首位。
4、UTF-8 中文占3个字节,超大字符集中的更大多数汉字要占4个字节
GBK、GB2312、GB18030占2个字节
iso8859-1无法表示汉字,只能转为问号,拉丁字符(ASCII字符)占1个字节
sqlserver查看字符串编码:SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
下面是查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8
---------------------------------------------------------------------------------------------------------------------------------------------------------------