Problem z auto increment

0

Witam. Mam problem z załadowaniem danych do bazy danych, aby każdy kolejny rekord, tzn jego "id" było nadawane automatycznie (AUTO_INCREMENT). Ale jakoś u mnie to nie chcę działać. Możecie mi pomóc, bo mi się wyczerapły pomysły. Piszę na forum z Javy, bo wydaje mi się,że jest to błąd składniowy w Javie, z mojej strony a nie SQL. Liczę na Waszą pomoc [glowa] .
Pozdrawiam

Podaje kod:

package sql_operations;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;





public class ObsługaBazyDanych {

	static Connection conn = null;
	static Statement stmt = null;
	
	
	
	static void DriverRegistration(){
		
		try{
			Class.forName("com.mysql.jdbc.Driver");
			System.out.print("Sterownik załadowany prawidłowo.\n");
		}catch(ClassNotFoundException e){
			System.out.print("Nie załadowano sterownika.\n");
		}
	}
	
	static Connection Connect2Database(){
		
		String url = "jdbc:mysql:///Database";
		String login = "xxxx";
		String password = "xxxx";
		
		try{
			conn = DriverManager.getConnection(url,login,password);
			System.out.print("Połączenie z: "+url+" zostało nawiązane.\n");
			
		}catch(Exception e){
			System.err.print("Połączenie z: "+url+" nie powiodło się.\n");
		}
		return conn;
	}
	
	static void CreateTable(){
		
String create = "CREATE TABLE ludziska"+
	"(id integer NOT NULL AUTO_INCREMENT,"+
    "imie varchar (25),"+
	"nazwisko varchar (30),"+
	"wiek integer (100),"+
	"telefon varchar (10),"+
	"miasto varchar (30)," +
	"PRIMARY KEY (id))";
			
		try{
			stmt = conn.createStatement();
	   		stmt.executeUpdate(create);
			stmt.close();
			//conn.close();
	System.out.print("Utworzenie tabeli powiodło się.\n");
		} catch(Exception e) {
	System.err.println("Stworzenie tabeli w bazie nie powiodło się: " +e.getMessage());
		}

}
		static void InsertData(){
			
String string1, string2,string3;
	string1 ="INSERT INTO ludziska VALUES('','Maena','Weeedd','25','6xx8xx7xx','Rypin')";
	string2= "INSERT INTO ludziska VALUES ('','Marcin','Xland','26','6xxxxxxx2','Wrocław')";
	string3= "INSERT INTO ludziska values('','Marcin','Simoni','26','6xxx62xx','Wrocław')";

			

			try {
				stmt = conn.createStatement();
		   		stmt.executeUpdate(string1);
		   		stmt.executeUpdate(string2);
		   		stmt.executeUpdate(string3);
		   		

				stmt.close();
				conn.close();
				System.out.print("Dane umieszczone w tabeli poprawnie.\n");
			} catch(SQLException e) {
			System.err.println("Nie wprowadzone danych do tabeli: " + e.getMessage());
			}
		
		}

			

		static void SelectData(){
			
	String select = "SELECT id,imie FROM ludziska";
	
	try{
		stmt = conn.createStatement();
		ResultSet result = stmt.executeQuery(select);
		while(result.next()){
			String value1 = result.getString("id");
			System.out.print(value1+"\n");
			String value2 = result.getString("imie");
			System.out.print(value2+"\n");
		}
	}catch(Exception e){
		
	}
	System.err.print("Pobranie danych z bazy nie powiodło się.");
		}
		
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DriverRegistration();
		Connect2Database();
		CreateTable();
		InsertData();
		SelectData();
	}

}

A wynik dziłania tego programu to:

Sterownik załadowany prawidłowo.
Połączenie z: jdbc///Database zostało nawiązane.
Utworzenie tabeli powiodło się.
Nie wprowadzone danych do tabeli: Data truncation: Out of range value adjusted for column 'id' at row 1
Pobranie danych z bazy nie powiodło się.

Problem jak widać dotyczy wprowadzania danych do tabeli, liczę na wyrozumiałość jeśli pytanie jest zbyt proste, jednak nie jestem w stanie sobie z nim poradzić :(

0

Temat już rozwiązany. Rzeczywiście było to proste.....

string1 ="INSERT INTO Kontaktoso VALUES(id,'Maena','Weeedd','25','6xx8xx7xx','Rypin')";


zamiast poprzedniego rozwiązania...

string1 ="INSERT INTO Kontaktoso VALUES(' ','Maena','Weeedd','25','6xx8xx7xx','Rypin')";

</cpp>

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1