java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Enterprise Java > Application Tier

Application Tier EJB, Spring

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 08.03.2010, 21:28   #1 (permalink)
Benutzer
Byte
 
Registriert seit: 25.03.2009
Beiträge: 54
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
Standard Datenbankzugriff

Hallo,
versuche gerade ein paar Daten aus einer Datenbank zu lesen. Die Datenbank habe ich in MySQL angelegt. Die Daten aus der Datenbank kann ich vie NetBeans lesen. Dann habe ich einmal das paket, test.domain, mit dieser Bean:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package test.domain;
 
 
public class Names {
 
    private int nameID;
    private String firstName;
    private String lastName;
 
    public Names(int nameID, String firstName, String lastName){
        this.nameID=nameID;
        this.firstName=firstName;
        this.lastName=lastName;
    }
 
    public int getNameID(){
        return nameID;
    }
 
    public void setNameID(int nameID){
        this.nameID=nameID;
    }
 
    public String getFirstName(){
        return firstName;
    }
 
    public void setFirstName(String firstName){
        this.firstName=firstName;
    }
 
    public String getLastName(){
        return lastName;
    }
 
    public void setLastName(String lastName){
        this.lastName=lastName;
    }
 
    public String toString(){
        return nameID+" "+firstName+" "+lastName;
    }
 
}

dann habe ich noch das Paket, test.dao mit dem Interface bzw. den Klassen:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
 
package test.dao;
 
import test.domain.Names;
 
public interface TestDAO {
 
    public Names selectNames(int nameID);
 
 
 
}

und
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package test.dao;
 
 
import java.sql.ResultSet;
import java.sql.SQLException;
 
import javax.sql.DataSource;
 
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
 
 
import test.domain.Names;
 
 
public class TestDAOImpl implements TestDAO{
 
    private JdbcTemplate jdbcTemplate;
 
    public void setDataSource(DataSource dataSource){
        this.jdbcTemplate=new JdbcTemplate(dataSource);
    }
 
    public Names selectNames(int nameID){
 
        String query = "SELECT * FROM NAMES WHERE NAMES_ID = ?";
 
        return (Names) jdbcTemplate.queryForObject(query, new Object[] {
            Integer.valueOf(nameID) },
            new RowMapper(){
            public Object mapRow(ResultSet resultSet, int rowNum)
                    throws SQLException{
                return new Names(resultSet.getInt("NAME_ID"),
                        resultSet.getString("FIRSTNAME"),
                        resultSet.getString("LASTNAME"));
            }
        });
    }
 
}

und weiter noch eine Main Klasse:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
package test.dao;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import test.domain.Names;
 
public class Main {
 
    public static void main(String[]args){
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        TestDAO testDAO = (TestDAO)context.getBean("testDAO");
        Names namesTest = new Names(1,"Spring Test","Discussion related to Spring");
        System.out.println(testDAO.selectNames(1));
 
    }
 
}
und eine bean.xml
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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.xsd">
 
 
   <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
        <property name="url" value="jdbc:hsqldb:hsql://localhost"/>
        <property name="username" value="root"/>
        <property name="password" value="***"/>
    </bean>
 
 
    <bean id="testDAO" class="test.dao.TestDAOImpl">
        <property name="dataSource" ref="dataSource"/>
    </bean>
 
</beans>

Beim starten der Main bekomme ich dann eine Fehlermeldung, dass etwas mit der JDBC Connection nicht in Ordnung ist. Denke das mein Fehler iwie in der bean.xml liegt. Komme da gerade nicht weiter und würde mich über Hilfe freuen.
KalleM ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 08.03.2010, 23:12   #2 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Beiträge: 8.314
Abgegebene Danke: 6
Erhielt 134 Danke für 132 Beiträge
Viel Code aber keine Fehlermeldung?
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 08.03.2010, 23:20   #3 (permalink)
Stammbenutzer
Viertel Gigabyte
 
Benutzerbild von ARadauer
 
Registriert seit: 16.09.2006
Beiträge: 3.659
Abgegebene Danke: 0
Erhielt 52 Danke für 52 Beiträge
kannst du dich mit squirrel auf die datebank verbinden?
squirrel-sql.sourceforge.net/
__________________
Meine Beiträge stehen unter der Beerware Lizenz!
ARadauer ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 09.03.2010, 16:35   #4 (permalink)
Benutzer
Byte
Themenstarter
 
Registriert seit: 25.03.2009
Beiträge: 54
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
Das ist die Fehlermeldung die ich erhalte:

Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:552)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:616)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:645)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:653)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:696)
at test.dao.TestDAOImpl.selectNames(TestDAOImpl.java:29)
at test.dao.Main.main(Main.java:15)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
... 7 more
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
... 10 more
Java Result: 1

Habe es mit einer "normalen" Klasse versucht und so klappt die Verbindung mit der DB sowie die Datenausgabe. Was mache ich den nun falsch? Iwie wird der Treiber ja nicht gefunden?
KalleM ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 09.03.2010, 16:44   #5 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 28.02.2006
Beiträge: 410
Abgegebene Danke: 10
Erhielt 29 Danke für 29 Beiträge
deine Konfiguration sagt, dass du einen HSQLDB Driver lädst. Du brauchst aber den MySql Driver. Stell das mal um und teste es nochmal
Foermchen82 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 09.03.2010, 17:33   #6 (permalink)
Benutzer
Byte
Themenstarter
 
Registriert seit: 25.03.2009
Beiträge: 54
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
Möchte nicht nerven, leider klappt es noch nicht so richtig.
Also das mit dem Treiber ist ok und klappt jetzt auch. Muss ich in der bean.xml nicht noch eine Eigenschaft wie:
name=database value=NameDerDB
haben, um eine Datenbank auszuwählen?
Bekomme jetzt nämlich die Meldung:
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT * FROM names WHERE NAME_ID = ?]; SQL state [3D000]; error code [1046]; No database selected; nested exception is java.sql.SQLException: No database selected

Weiter habe ich den Port in der bean.xml nicht angegeben. Wird durch localhost ein default Port (3306) bestimmt?

Geändert von KalleM (09.03.2010 um 17:40 Uhr)
KalleM ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 09.03.2010, 19:31   #7 (permalink)
Benutzer
Byte
Themenstarter
 
Registriert seit: 25.03.2009
Beiträge: 54
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
Falls es jemanden interessiert (der vielleicht mal vor dem selben Problem steht), in der bean.xml sind für den mysql Treiber folgende Angaben nötig:


<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/Database"/>
<property name="username" value="root"/>
<property name="password" value="***"/>
KalleM ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.03.2010, 16:46   #8 (permalink)
Benutzer
Byte
Themenstarter
 
Registriert seit: 25.03.2009
Beiträge: 54
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
--------

Geändert von KalleM (10.03.2010 um 19:46 Uhr)
KalleM ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenbankzugriff ohne Eclipse aemik Java Basics - Anfänger-Themen 15 17.09.2008 12:47
Andere Möglichkeit als JDBC Treiber für den Datenbankzugriff A.T. Datenbankprogrammierung 3 04.09.2007 15:32
Datenbankzugriff purzelbaum_m Java Basics - Anfänger-Themen 21 22.06.2006 18:33
Datenbankzugriff Datenbankprogrammierung 4 25.04.2005 10:22
Problem bei Datenbankzugriff mit Bean netcom Allgemeines EE 0 28.04.2004 15:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:07 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de