您的位置:首页 > 其它

2015年工作中遇到的问题141-150

2016-03-07 11:20 246 查看
141.用一条sql语句查询出“每门”课程都大于80分的学生姓名。
Name chengji fengshu
张三 数学 75
张三 语文 81
李四 数学 90
李四 语文 76
王五 数学 81
王五 语文 100
王五 英语 90

给个思路,供参考:

先查出低于80分的学生名单,然后再用姓名作为条件对比,排除刚才查到的学生

SQL Server:

select distinct [Name] from [表] where [Name] not in (
select [Name] from [表] where [fengshu]<=80
)

142.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
select (case when a>b then a else b end),
(case when b>c then b esle c end)
from table_name

143.BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法。

  今天在使用两个BigDecimal类型的数字做除法运算时,出现了一个如下的异常信息:

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result
  上网查了一下这个异常的,找到了原因所在:通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
  解决的办法就是给divide方法设置精确的小数点,如:divide(xxxxx,2)。
参考资料:http://www.cnblogs.com/xdp-gacl/p/4000450.html

144. top永远指分割窗口最高层次的浏览器窗口。如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。
每一个WINDOW对象,不论他是常规HTML页面。框架集页面。子框架还是孙子框架,都具有一个TOP属性。这个属性返回对载入浏览器得最顶层WINDOE对象得引用.

页面中有很多top的方法调用,最初以为是使用了某个框架,结果找不到。突然想起来,会不会是JS中默认的变量,果不其然啊。
$(top.hangge());

145.Zookeeper,zookeeper-3.5.1-alpha。
E:\Mongodb-Redis-Nginx\zookeeper-3.5.1-alpha\bin>zkServer.cmd
系统找不到指定的路径。
Error: JAVA_HOME is incorrectly set.

执行zkServer.cmd提示JAVA_HOME找不到。

同事用的3.5.7也遇到这个问题。

暂时很难“正面”解决这个问题。
换成zookeeper-3.4.6就可以了。

146.FusionCharts刷新图表。
dayChart = new FusionCharts(swf, "dayChart",width, height);
dayChart.setDataXML("${todayStrXML}");
dayChart.render("dayChartContent");

刷新数据,需要再次调用“ dayChart = new FusionCharts(swf, "dayChart",width, height);”,不然报错:
“Uncaught TypeError: chartObj.setDataXML is not a function”。

if(data.code=="200"&&data.data){
console.log(data.data);
//需要构造新的,为什么呢?
dayChart = new FusionCharts(swf, "dayChart",width, height);
dayChart.setDataXML(data.data);
dayChart.render("dayChartContent");
}

147.Maven工程,pom报错,Update Project的时候,选择“Force update of Snapshots/Releases”效果不错。
一些搞不定的稳定,强制更新就解决了。

148.notifyAttributeAssigned.
Shiro的subject.logout();报如下错误。
java.lang.NullPointerException
at org.apache.catalina.connector.Request.notifyAttributeAssigned(Request.java:1565)
at org.apache.catalina.connector.Request.setAttribute(Request.java:1556)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:178)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)

参考网上资料,使用sendfile="false",或者用Tomcat8 http://hongjiang.info/tomcat-nio-sendfile-bug/ 都不能解决这个问题。

最后的临时笨方法:
try {
subject.logout();
} catch (Exception e) {
// TODO: handle exception
}
程序的功能,正常实现了。
正解,不知道。

149.Eclipse,根据数据库Table自动生成实体类,节省一大笔时间。
网站开发,新建的Eclipse项目,经常选择Dynamic Web。
项目-右键-属性-找到Project Facets,在列表中选中“JPA”,版本选择2.0,2.1可能不支持。
这个时候,项目-右键-JPA Tools->Generate entities from table.

生成的Model,有JPA的注解,如果不需要,手动删除。

“Project Facets”是非常关键的属性。

也可以自己写“代码生成工具”。

150.Error querying database. Cause: java.sql.SQLException: Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '>=' ###

where merchantId='1bc58ff5d2f141e88945e23732f57c4e' and o.payStatus = 1 and 'Jan 29, 2016 12:00:00 AM' >= o.createTime and o.createTime >='Jan 29, 2016 11:59:59 PM'

后端日期格式化,使用的默认格式。
比如,类似这样的。
SimpleDateFormat sdfd = new SimpleDateFormat();
String dateStr = sdfd.format(date);
传入sql中的日期格式,就不对了,然后导致日期比较的时候,mysql出了问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: