2015-02-07 4 views
-1

Я новичок в Spring и делаю простое приложение с использованием JDBC, которое считывает записи из базы данных и отображает их на экране.Spring JDBC простой пример

package jdbcexample; 

import java.util.List; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

public class MainApp { 

public static void main(String[] args) { 
    ApplicationContext context = new ClassPathXmlApplicationContext(
      "Beans.xml"); 
    StudentJDBCTemplate studentjdbctemplate = (StudentJDBCTemplate) context 
      .getBean("studentjdbctemplate"); 
    System.out.println("Listing Reocrds : "); 
    List<Student> students = studentjdbctemplate.listStudents(); 
    for (Student record : students) 
     System.out.println("id : " + record.getId() + " name : " 
       + record.getName() + " password : " + record.getPassword()); 

} 

} 

Это мой Bean.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<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-3.0.xsd "> 

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

<bean id="studentjdbctemplate" class="jdbcexample.StudentJDBCTemplate"> 
    <property name="datasource" ref="datasource" /> 
</bean> 

</beans> 

Все ссылочные Java-файлы и XML-файл в той же папке, но я все еще получаю эту ошибку. Не могли бы вы помочь мне исправить это?

log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext). 
log4j:WARN Please initialize the log4j system properly. 
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [Beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at jdbcexample.MainApp.main(MainApp.java:12) 
Caused by: java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist 
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:141) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) 
    ... 13 more 
+0

Вам нужно сохранить Beans.xml в classpath. – SMA

+0

, пожалуйста, примите один из нижеприведенных ответов, чтобы найти другую проблему, которая может найти решение. –

ответ

0

я переехал Beans.xml в папку src и программа успешно работала.

0

Здесь в исключительных следов class path resource [Beans.xml] cannot be opened because it does not exist

Средства beans.xml отсутствует в пути к классам и, следовательно, вы видите исключение. Убедитесь, что Beans.xml находится в пути к классам, и он будет работать нормально.

+0

Как включить его в classpath? – coder005

+0

Либо используйте переменную окружения CLASSPATH, чтобы иметь каталог, в котором Beans.xml находится или передается с опцией -cp с помощью команды java, например -cp "/ a/b/c", где Beans.xml находится в каталоге "c". – SMA

0

Have a look at this article. Это поможет вам настроить базовый проект MAVEN Spring MVC Hibernate SiteMesh

То, что вы здесь не хватает является file not found что beans.xml.

YOu определяют этот класс в web.xml вы можете сделать это

<servlet> 
    <servlet-name>dispatcherServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/Beans.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

и вам нужно сделать, это

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      classpath:spring/application-config.xml, 
      /WEB-INF/Beans.xml 
     </param-value> 
    </context-param> 

Я надеюсь, что это должно работать для вас

+0

Я не использую рамки MVC. Я использую приложение Spring с помощью jdbc. – coder005

Смежные вопросы