Originariamente inviato da Mon91
codice:
package beans;

import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ArrayList;
public class Main {


	public static void main (String [] args) throws Exception {

		Class.forName("org.sqlite.JDBC");
		Connection c = DriverManager.getConnection("jdbc:sqlite:db1.db");
		Statement s = c.createStatement();

		ArrayList<String> indirizzi= new ArrayList<String>();

		BufferedReader br = new BufferedReader( new FileReader("Docs/DB.txt"));
		String line;
		while((line=br.readLine())!=null){

			String [] w=line.split(";");
			String nome=w[0].trim();
			String localita=w[1].trim();
			String telefono=w[2].trim();
			indirizzi.add(nome);
			indirizzi.add(localita);
			indirizzi.add(telefono);
			
		}br.close();
		
		s.executeUpdate("create table places (" +
				"nome1 VARCHAR(50) PRIMARY KEY, " +
				"localita1 VARCHAR(50), " +
				"telefono1 VARCHAR(50))");
		s.executeUpdate("insert into places(nome1,localita1,telefono1) values(' + nome +', ' + localita + ', ' + telefono+')");
	}
}
Non mi da nessun errore, ma il database non si riempe!!
Stai andando un po' allo sbaraglio...

Stai ciclando il contenuto del file, ok, ma cosa fai con i token che hai letto? Niente! La insert va fatta DENTRO il ciclo se vuoi che ti inserisca gli elementi man mano che li leggi... (di conseguenza la tabella va creata PRIMA di iniziare il ciclo)

Inoltre qual è il senso dell'ArrayList indirizzi? Ci butti dentro tutti i token che leggi, senza raggruppare ad esempio... Se faccio indirizzi.get(indice) cosa mi restituisce, un nome? un telefono? una località? boh..! Manca completamente la programmazione ad oggetti.

Per finire, la query è sbagliata (te l'avevo corretta prima...)
Con
codice:
"insert into places(nome1,localita1,telefono1) values(' + nome +', ' + localita + ', ' + telefono+')"
non stai passando alcun nome, localita o telefono.. (stai passando la costante 'nome' ad esempio) anche perché nome, localita e telefono non esistono in quel punto (sono dichiarate dentro il while, sono visibili solo lì).

La stringa corretta è

codice:
"insert into places(nome1,localita1,telefono1) values('" + nome + "', '" + localita + "', '" + telefono +"')";
oppure, più chiaramente:

codice:
String query = String.format("insert into places(nome1, localita1, telefono1) values ('%s', '%s', '%s')", nome, localita, telefono);

// ovviamente quando nome, localita e telefono saranno visibili...