2012-01-22 30 views
4

失去了大量的Java API和XML配置。SPRING 3 MVC - MySQL JDBC数据库连接配置

我想创建一个应用程序与Spring MVC但努力与XML配置。

我想能够连接到MySQL数据库......但我正在努力寻找任何简明的方法来做到这一点。我不想使用Hibernate或任何其他框架,JDBC本身就足够了。

我只希望能够创建数据库连接并访问可根据需要更改查询的字符串变量。我认为问题在于XML配置,但我可能是错的。

我在application-context.xml文件中粘贴了下面显示的详细信息,但除非我删除它们,否则无法构建服务器。我不确定我是否缺少一些简单的东西!

<bean id="JdbcDao" class="com.bcash.DbAccess.JdbcDao"> 
    <property name="dataSource" ref="dataSource"/> 
</bean>  

<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
     p:driverClassName="com.mysql.jdbc.Driver" 
     p:url="jdbc:mysql://localhost:3306/db_name" 
     p:username="root" 
     p:password="" 
     destroy-method="close" /> 

这是相关联的类,我写的XML声明

package com.bcash.DbAccess; 

import javax.sql.DataSource; 
import org.springframework.dao.DataAccessException; 
import org.springframework.jdbc.core.JdbcTemplate; 

public class JdbcDao { 

private JdbcTemplate jdbcTemplate; 
protected String query = "INSERT INTO user('username','email','password','access_level') VALUES ('admin','[email protected]','testPassWord','admin')"; 


public void insertUser(){ 

    try{ 
     jdbcTemplate.update(query); 

    } catch(DataAccessException e){ 

     String error = e.getMessage(); 
     System.out.println(error); 

    } 

} 

} 

,我得到的是,服务器无法对Ant构建脚本的726行中部署的唯一错误

<target if="netbeans.home" name="-run-deploy-nb"> 
    <nbdeploy clientUrlPart="${client.urlPart}" debugmode="false" forceRedeploy="${forceRedeploy}"/> 
</target> 

虽然我用PHP很好,但我有点困惑,因为我对Java相当陌生。

在此先感谢

+1

不清楚是什么问题 - 你说你不能建立项目,除非你删除数据源XML配置,但你没有收到任何消息? –

回答

5

我不知道,我真的跟着你是问关于构建的问题,但看代码,你怎么会有事的设置我看到一个东西,看起来像一个问题。它看起来像你永远不会实例化你的JdbcTemplate并将其与dataSource关联。

您应该创建JdbcTemplate实例为这样一个bean:

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
    <property name="dataSource"> 
     <ref bean="dataSource" /> 
    </property> 
    </bean> 

然后确保你有你的jdbcTemplate可变一套方法并通过参考模板到你的bean,而不是数据源。

<bean id="JdbcDao" class="com.bcash.DbAccess.JdbcDao"> 
    <property name="jdbcTemplate" ref="jdbcTemplate"/> 
</bean> 

这样做你的JdbcTemplate将有一个你的dataSource的引用,你应该能够执行查询。

+1

那么,那是唯一阻止部署的东西吗?我以前从未使用'nbdeploy',所以我不确定这是否是原因。 – Michael

+0

是的,这是唯一停止部署..设法通过将bean的详细信息移动到dispatcher-servlet.xml文件来解决它,它工作正常! – user866190