Ich erstelle ein Beispiel BeanLifeCycle mit einer einfachen Aufgabe der Verbindung
Datenbank und Einfügen von Datensätzen in es. Wenn ich ClientApp.java schreibe, gibt es viele Fehler zurück. Ich habe bereits im Frühjahr verwandte JARs und
hinzugefügt Muss ich zusätzliche JARS in Bezug auf Java hinzufügen.BeanLifeCycle funktioniert nicht mit Java-Code
package beans;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
public class Test implements InitializingBean, DisposableBean
{
private String driver,url,username,pwd;
private Connection con;
public void setDriver(String driver) {
this.driver = driver;
}
public void setUrl(String url) {
this.url = url;
}
public void setUsername(String username) {
this.username = username;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public void afterPropertiesSet() throws Exception {
Class.forName(driver);
con=DriverManager.getConnection(url, username,pwd);
}
public void save(int id,String name, String email,String address)
throws Exception
{
PreparedStatement ps=con.prepareStatement("insert into student
values(?,?,?,?)");
ps.setInt(1, id);
ps.setString(2, name);
ps.setString(3, email);
ps.setString(4, address);
@Override
public void destroy() throws Exception {
// TODO Auto-generated method stub
con.close();
System.out.println("connection closed");
}
}
Das folgende Programm ist ClientApp.java wo viele Fehler von während der Block bis Schalterblock erzeugt werden.
package beans;
import java.util.Scanner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.
ClassPathXmlApplicationContext;
import beans.Test;
public class ClientApp
{
public static void main(String[] args) throws Exception{
ConfigurableApplicationContext context=new
ClassPathXmlApplicationContext("spring.xml");
while(true)
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter 1 for save and 2 for exit");
int i=sc.nextInt();
swtich(i)
{
case 1: Test t=(Test)context.getBean("t");
System.out.println("Enter id");
int id=sc.nextInt();
System.out.println("Enter Name");
String name=sc.next();
System.out.println("Enter Email");
String email=sc.next();
System.out.println("Enter Address");
String address=sc.next();
t.save(id, name, email, address);
break;
default:
cap.close();
break;
}
}
}
}
Please help me with this task to execute. What other JARs do I need to
add to connect to database and insert the records into it
This is the spring.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="t" class="beans.Test">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/loginuser"/>
<property name="username" value="root"/>
<property name="pwd" value="root"/>
</bean>
</beans>
Die Fehler sind
WARNING: Exception encountered during context initialization -
cancelling refresh attempt:
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 't' defined in class path resource [spring.xml]:
Invocation of init method failed; nested exception is
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Exception in thread "main"
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 't' defined in class path resource [spring.xml]:
Invocation of init method failed; nested exception is
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.springframework.beans.factory.support.
AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1578)
at org.springframework.beans.factory.support.
AbstractAutowireCapableBeanFactory.doCreateBean
(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.
AbstractAutowireCapableBeanFactory.createBean
(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.
AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.
DefaultSingletonBeanRegistry.getSingleton
(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.
AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.
AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.
DefaultListableBeanFactory.preInstantiateSingletons
(DefaultListableBeanFactory.java:772)
at org.springframework.context.support.
AbstractApplicationContext.finishBeanFactoryInitialization
(AbstractApplicationContext.java:839)
at org.springframework.context.support.
AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
at org.springframework.context.support.
ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.
ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:83)
at beans.ClientApp.main(ClientApp.java:12)
Caused by: java.lang.ClassNotFoundException:
com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at beans.Test.afterPropertiesSet(Test.java:28)
at org.springframework.beans.factory.support.
AbstractAutowireCapableBeanFactory.invokeInitMethods
(AbstractAutowireCapableBeanFactory.java:1637)
at org.springframework.beans.factory.support.
AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1574)
... 12 more
können Sie zeigen Sie – kuhajeyan
spring.xml @kuhajeyan ich spring.xml in meine Frage jetzt –
Typo "swtich" anstelle von "switch" hinzugefügt? –