1. 程式人生 > >2015年工作中遇到的問題141-150

2015年工作中遇到的問題141-150

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出了問題。