SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt

jamesjr.

Mitglied
Hey ihr,
ich hab gestern eine Datenbank für ein Projekt anlegen müssen. Also diese Datenbank soll Bücher enthalten. Der create Befehl funktioniert aber bei den inserts streikt mein Programm. könnt ihr mir evtl. weiterhelfen und sagen was genau ich falsch mache.
Hier einmal meine Befehle:

create table book(
isbn varchar(10),
price number(3,2),
author varchar(30),
year number(4),
titel varchar(50),
description varchar(100),
publisher varchar(30),
primary key (isbn)
)
insert into book values ('1565928695', 84.00, 'Richard Monson-Haefel', 2000, 'Enterprise JavaBeans', '2nd edition covers EJB1.1', 'O`Reilly')
insert into book values ('020167520X', 84.00, 'Paul Allen', 2001, 'Realizing e-Business with components', 'Describes how to do component-based design driven by business models', 'Addison Wesley')
insert into book values ('1565924835', 69.00, 'David Flanagan', 1999, 'Java enterprise in a nutshell', 'A desktop quick reference', 'O`Reilly')

ich hab schon gesehen das, dass O`Reilly evt das Problem sein könnte doch auch mit einem Bindestrich wirds nix und Semikolon am ende hab ich auch schon probiert ich verzweifle langsam.
 
Und normal wird eine Fehlermeldung ausgegeben wenn etwas nicht funktioniert wie es soll 😉

Welche DB verwendest du? Schon mal über einen SQL Editor probiert die Statements auszuführen?
Kann es sein dass es am "84.00" liegt? Bei der Definition verwendest du "NUMBER(3,2)". Laut meines Wissens heißt das die Zahl speichert maximal 3 Ziffern, 2 davon rechts vom Dezimalpunkt. Sprich "84.00" ist zu groß.
 
im Programm selbst für die SQL Statements gabs keine Fehlermeldung bei eclipse stand nur Komma fehlt aber es lag tatsächlich an der falschen Definition. Vielen Dank für die Hilfe.
 
evt kann mir ja doch nochmal geholfen werden also Datenbank hab ich jetzt aber meine Datenbank Verbindung scheint nicht so zu wollen wie ich.
Also ich muss ein Webshop aufbauen bei dem Bücher gekauft werden können ist ne Projektaufgabe. die Bücher wurden bislang per html code eingefügt nun sollen sie aus meiner datenbank gelesen werden. hier nun mein Quellcode hoffe der für den catalog reicht aus
Java:
package de.leuphana.internet.bookshop.model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class Catalog {
	
	private static Catalog catalog;
	private Map<String, Book> bookMap;
	private Connection dbConnection;
	

	private Catalog() {
		
		bookMap = new HashMap<String, Book>();
		
			try {
				createConnection();
				fetchBooksFromDB();
			} catch (Exception e) {
				e.printStackTrace();
			}
	}

	public static Catalog create(){
		
		catalog = new Catalog();
		return catalog;
	}
	
	
private void createConnection() throws Exception {
		
		if (dbConnection == null) {
			System.out.println("Verbindung wird aufgebaut.");
		//DB erstellen
		Class.forName("oracle.jdbc.driver.OracleDriver");
		//Treiber laden
		dbConnection = DriverManager.getConnection ("jdbc:oracle:thin:@oracle.leuphana.de:1521:oradb1",
               	"userid","pw");
		System.out.println("Verbindung erstellt.");
		}
	}
        
 	private void fetchBooksFromDB() throws Exception{
 		
 		
 		PreparedStatement statement = dbConnection.prepareStatement("select * from book");
		ResultSet result = statement.executeQuery();
		
		System.out.println("Bücher werden aus der DB ausgelesen.");
		
		
		while (result.next()){
			
			Book book = new Book();
			
			
			book.setTitel(result.getString("title"));
			book.setIsbn(result.getString("isbn"));
			book.setAuthor(result.getString("author"));
			book.setPrice(result.getFloat("price"));
			book.setYear(result.getInt("year"));
			book.setPublisher(result.getString("publisher"));
			book.setDescription(result.getString("description"));
		
			bookMap.put(book.getIsbn(), book);
		}
		
		System.out.println("Bücher werden wiedergegeben.");
	}

	public Collection<Book> getBooks() {
		return bookMap.values();
	}

	public Book getBook(String isbn) {
		return bookMap.get(isbn);
	}
}

und hier die Fehlermeldung
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Verbindung wird aufgebaut.
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at de.leuphana.internet.bookshop.model.Catalog.createConnection(Catalog.java:42)
at de.leuphana.internet.bookshop.model.Catalog.<init>(Catalog.java:23)
at de.leuphana.internet.bookshop.model.Catalog.create(Catalog.java:32)
at de.leuphana.internet.bookshop.view.CatalogServlet.init(CatalogServlet.java:90)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

ich hab oracle6 als externe jar eingebunden oder war das doch alles irgendwie falsch? userid und pw hab ich natürlich mit meinen daten gefüllt
 
Zuletzt bearbeitet:

Zurück
Oben