2012-12-28 58 views
0

我一直在嘗試使用SimpleJdbcDaoSupport從我的Spring項目訪問MySQL例程。將Spring項目鏈接到MySQl數據庫

我有一個名爲'AdminSimpleMessageManager'的類,它實現了接口'AdminMessageManager'。

'AdminSimpleMessageManager'有一個類'AdminSimpleJdbcMessageDao'的實例,它實現了接口'AdminMessageDao'。

AdminSimpleJdbcMessageDao有以下方法:

public class AdminSimpleJdbcMessageDao extends SimpleJdbcDaoSupport implements AdminMessageDao { 

public int addMessage(String from, String message) { 
    return getJdbcTemplate().queryForInt("call insert_contact_message(?, ?)", from, message); 
} 

}

我已經包含在我的應用程序上下文如下:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:comp/env/jdbc/OctagonDB"/> 
</bean> 

<bean id="adminMessageManager" class="Managers.AdminSimpleMessageManager"> 
    <property name="adminMessageDao" ref="adminMessageDao"/> 
</bean> 

<bean id="adminMessageDao" class="Managers.dao.AdminSimpleJdbcMessageDao"> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 

,但我覺得有遺漏的一些重要線路。我得到的錯誤

失敗 - 在上下文路徑/ NewWebsite但背景下部署應用程序未能啓動

等等。

+0

在日誌中的某處是否存在堆棧跟蹤? –

+1

聽起來像你沒有加載你的應用程序上下文。找到日誌,看看你做錯了什麼。你的web.xml呢?你有沒有告訴Spring在哪裏可以找到上下文XML? – duffymo

+0

我沒有添加任何關於MySQL到我的web.xml,但我注意到我拼寫錯誤的數據庫名稱。現在我得到的錯誤是'無法獲取JDBC連接 - java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver',當調用insert方法時。 – Jon

回答

0

您需要在類路徑中包含MySQL JDBC driver。此外,您應該更新驅動程序類名稱的配置爲com.mysql.jdbc.Driver。僅爲了向後兼容而保留org.gjt.mm.mysql.Driver

但是,由於您似乎正在通過JNDI加載數據源,我想驅動程序JAR應該位於您的容器(通過JNDI提供數據源)中,而不是在您的應用程序的WEB-INF/lib

+0

謝謝,解決了問題的一部分。我現在得到錯誤「java.sql.SQLException:ResultSet來自UPDATE.No Data。」。你知道這是因爲我的日常工作現在還有什麼東西嗎?被調用的例程就是這樣的:「INSERT INTO contact_messages('author','message','date_sent')VALUES(_author,_message,NOW());」 – Jon

+0

不知道......爲了清晰起見,爲了更好地幫助其他人尋找類似的問題/例外,我建議您接受我的答案,併爲此發佈一個新問題。現在描述Spring和驅動程序問題已經很難了。 –