2017-05-20 6 views
1

私はjavaのnoobです。私はemployeテーブルにデータを挿入したい。SpringJDBC ClassPathXmlApplicationContextはリソース内のxmlからgetbeanをロードできません

エラー:「employeeDAO.class」という名前のBeanは定義されていません。

私のコードの構造:

enter image description here

これは私のコードです。

ファイル:com.vm.springjdbc.app.App.java

public class App { 
    private ApplicationContext context; 
    private EmployeeDAO employeeDAO; 

    public static void main(String[] args) { 
     context = new ClassPathXmlApplicationContext("Spring-Datasource.xml"); 
     employeeDAO = (EmployeeDAO) context.getBean("employeeDAO.class"); 
    } 
} 

ファイル:com.vm.springjdbc.model.Employee.java

public class Employee { 
    private int id; 
    private String name; 
    private String mobile; 
    setter & getter 
} 

ファイル:com.vm.springjdbc.DAO.EmployeDAO.java

public class EmployeeDAO extends JdbcDaoSupport { 
    public void insert(Employee emp){  
    } 
} 

リソースのXMLファイル:SRC /リソース/春Datasource.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost:3306/synapse4" /> 
     <property name="username" value="root" /> 
     <property name="password" value="admin" /> 
    </bean> 

    <bean id="employeeDAO" class="com.vm.springjdbc.DAO.EmployeeDAO"> 
     <property name="dataSource" ref="dataSource" /> 
    </bean> 
</beans> 

+0

employeeDAO = (EmployeeDAO) context.getBean("employeeDAO.class"); 

の変化、それに.classファイルは使用しないでくださいスレッドで完全なエラーログに "メイン" org.springframework.beans.factory.NoSuchBeanDefinitionExceptionを –

+0

例外を入力してください: 「employeeDAO.class」という名前のBeanは定義されていません。行:employeeDAO =(EmployeeDAO)context.getBean( "employeeDAO。クラス "); – chandoo

+0

はemployeeDAOにDAOまたはオートワイヤリングのセッタークラスがあります –

答えて

1

にあなたをそれを整理するために私を助けてくださいすべきEmployeeDAOをインタフェースとして作成し、次のようにEmployeeDAOImplのimplクラスを作成します。

EmployeeDAO.java

public interface EmployeeDAO 
{ 
    public void insert(Employee employee); 
} 

EmployeeDAOImpl.java

public class EmployeeDAOImpl extends JdbcDaoSupport implements EmployeeDAO 
{ 
    public void insert(Employee employee){ 
     //insertion implementation 
    } 

} 

<bean id="employeeDAO" class="com.vm.springjdbc.DAO.EmployeeDAOImpl"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 
0123春Datasource.xmlで次のように変更します。

また、

employeeDAO = (EmployeeDAO) context.getBean("employeeDAO"); 
+0

私は欲しいJdbcDaoSupportを使用するにはどうすればJdbcDaoSupportを拡張したいのですか?Tq @Kayv – chandoo

+0

@chandoo plsは更新された答えを見つけます。 – KayV

+0

'employeeDAOImpl.class'という名前のBeanは定義されていません。構造体やコードも同様です。@kayv – chandoo

関連する問題