我正在通過Java創建SQL數據庫。問題是打開整個項目時總是顯示錯誤。請help.Computer寫這樣的事情:創建數據庫時發生NullPointerException
Exception in thread "main" java.lang.NullPointerException
at Oceny.Sql.<init>(Sql.java:16)
這是類包含此錯誤的代碼。
public class Sql {
public static final String DRIVER="org.sqlite.JDBC";
public static final String DB_URL ="jdbc:sqlite:sqlDB/szkola.db";
private Connection con;
private Statement stat;
public Sql() {
try{
Class.forName(Sql.DRIVER);
String sql = "CREATE DATABASE szkola";
try {
stat.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("jebut");
e.printStackTrace();
}
}catch(ClassNotFoundException e){
System.err.println("Brak sterownika JDBC");
e.printStackTrace();
}
try {
con = DriverManager.getConnection(DB_URL);
stat = (Statement) con.createStatement();
} catch (SQLException e) {
System.err.println("Problem z otwarciem polaczenia");
e.printStackTrace();
}
}
public void createtable(){
try{
String przedmiot="CREATE TABLE IF NOT EXISTS przedmiot (id INTEGER PRIMARY KEY AUTOINCREMENT, nazwa varchar(20), sprawdziany int(6), kartkowy int(6), pd int(6))"; //prace = połączenie z inną tabelą prac dodatkowych
String prace="CREATE TABLE IF NOT EXISTS prace (id INTEGER PRIMARY KEY AUTOINCREMENT, przedmiot varchar(20), praca(250), czas date(100))";
String plan="CREATE TABLE IF NOT EXISTS plan (id INTEGER PRIMARY KEY AUTOINCREMENT, day varchar(20))";
String godzina="CREATE TABLE IF NOT EXISTS godzina(id INTEGER PRIMARY KEY AUTOINCREMENT, day varchar(20), godzina varchar(5), przedmiot varchar(20))";//chodiz o godzinę lekcyjną
stat.execute(przedmiot);
stat.execute(prace);
stat.execute(plan);
stat.execute(godzina);
}catch(SQLException e){
System.out.print("problem z tworzeniem tabel");
}
}
}