我一直在尝试使用SimpleJdbcDaoSupport从我的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 :(得分:0)
您需要在类路径中包含MySQL JDBC driver。此外,您应该将驱动程序类名称的配置更新为com.mysql.jdbc.Driver
。 org.gjt.mm.mysql.Driver
仅用于向后兼容。
但是,由于您似乎是通过JNDI加载数据源,我猜驱动程序JAR应该在您的容器中(通过JNDI提供数据源)而不是在应用程序的WEB-INF/lib
中?