I am looking to populate my database with values from a csv file. But it returns SQLITE_BUSY: Database file is locked.
Here is my code
try {
BufferedReader br=new BufferedReader(new FileReader("v.csv"));
String line;
while((line=br.readLine())!=null) {
System.out.println(line);
String[]value = line.split(",");
System.out.println(value.length);
String sql = "INSERT into main ([Ticket #], Status, Priority, Department, [Account Name]) "
+ "values ('"+value[0]+"','"+value[1]+"','"+value[2]+"','"+value[3]+"','"+value[4]+"')";
System.out.println("test");
PreparedStatement pst = null;
try {
pst = DatabaseConnection.ConnectDB().prepareStatement(sql);
pst.executeUpdate();
} finally {
if(pst != null) {
pst.close();
}
}
}
br.close();
} catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
I'm using different print statements to check where the error is, it seems it can't executeUpdate(); when the loop executes the second time. This is what I get in the console
Ticket,Status,Priority,Department,Account Name
5
test
Here is my DatabaseConnection just for your reference
public class DatabaseConnection {
Connection conn = null;
Statement stmt = null;
public static Connection ConnectDB() {
try {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:database.db");
conn.setAutoCommit(true);
return conn;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}