使用JSTL的SQL標籤庫碰到的問題

Date:2012-10-23              


Environment:Eclipse 4.2,Tomcat 7,PostgreSQL9.2 java

      今天使用sql:setDataSource碰到的問題,在這裏總結一下: mysql

      1.錯誤描述:invalid driver class name: "java.lang.ClassNotFoundException: org.postgresql.Driver" sql

         解決方法:將postgreSQL的驅動放到網站WEB-INF文件夾下的lib中. 數據庫

      2.錯誤描述: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc:..." tomcat

         解決方法:先檢查驅動的url路徑是否正確,在正確的狀況下,將postgreSQL的驅動放到tomcat根目錄的lib文件夾中就好了.這個問題應該是驅動放在項目中才致使的問題.固然mysql和oracle相似的問題,應該也能這樣解決. oracle

         其實只要將postgreSQL的驅動放到tomcat的lib中,就能解決上述的兩個問題. jsp

      3.錯誤描述:按照參考書<Java Web整合開發王者歸來>(P248),使用${ dataSource.class.name } 引起錯誤. 函數

         解決方法:引起問題緣由有2:a.dataSource.class.name自己會引起錯誤;b.沒有設置sql:setDataSource的scope.設置scope後,使用${ dataSource }而不是${ dataSource.class.name }. post


Date:2012-10-25
網站

       今天使用sql:param碰到的問題,在這裏總結一下:

       1.錯誤描述:按照參考書<Java Web整合開發王者歸來>(P254),使用<sql:param>碰到問題.

       緣由:錯誤sql語句:select * from tb_person where birthday >  (?-1),使用java.util.Date獲取的時間是CST時間,在數據庫支持的sql不能直接相減,需先轉換時間格式,再使用數據庫支持的時間函數進行操做.

       解決方法:見下面關鍵代碼:

<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>//獲取系統時間;設置一個Date類型的bean,放入request中
<jsp:useBean id="dt" class="java.lang.String"></jsp:useBean>//保存格式化後的時間

<!--格式轉換-->
<%
          SimpleDateFormat myFmt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          dt=myFmt.format(date);
%>

<!--查詢-->
<sql:query var="rs" dataSource="${ dataSource }">
select * from tb_person where birthday >  (to_timestamp(?,'YYYY-MM-DD HH24:MI:SS') - interval '1 day')
	<sql:param value="${ dt }"></sql:param>
</sql:query>//to_timestamp是pgsql的函數
相關文章
相關標籤/搜索