Java 如何在不锁定数据库的情况下向数据库中发出多个SQL查询?

Java 如何在不锁定数据库的情况下向数据库中发出多个SQL查询?,java,sqlite,servlets,jdbc,Java,Sqlite,Servlets,Jdbc,我正在尝试将记录从First\u servlet.java插入到SQLite数据库中,以Second\u servlet.java。以下是我的代码: 第一个servlet.java Second_servlet.java 每当我运行servlet时,我的日志中总是出现以下错误: java.sql.SQLException: [SQLITE_BUSY] The database file is locked (database is locked) at abhishek.Details.doG

我正在尝试将记录从First\u servlet.java插入到SQLite数据库中,以Second\u servlet.java。以下是我的代码:

第一个servlet.java

Second_servlet.java

每当我运行servlet时,我的日志中总是出现以下错误:

java.sql.SQLException: [SQLITE_BUSY]  The database file is locked (database is locked)
at abhishek.Details.doGet(Details.java:50)
为什么锁上了?如何解决此问题?

嗨,检查可能会有帮助。嗨,检查可能会有帮助。
public class Second_servlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Cookie[] ck=request.getCookies();
        PrintWriter pw=response.getWriter();
    try {
           Class.forName("org.sqlite.JDBC");
           Connection c=DriverManager.getConnection("jdbc:sqlite:D:\\storage.db");
           if (c!=null) {
               System.out.println("Database created successfully");
               Statement st=c.createStatement();
               st.execute("CREATE TABLE IF NOT EXISTS Details ( ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME VARCHAR(30), EMAIL VARCHAR(30), AGE INTEGER)");
               PreparedStatement p=c.prepareStatement("INSERT INTO Details(ID,NAME,EMAIL,AGE) VALUES(?,?,?,?)");
               if (ck==null) 
                    pw.println("No cookies found");
                else {
                    for(Cookie cookie: ck) {
                        if(cookie.getName().equals("name")) {
                            p.setInt(1,1);
                            p.setString(2,cookie.getValue());
                        }
                        else if(cookie.getName().equals("email")) 
                            p.setString(3,cookie.getValue());
                        else if(cookie.getName().equals("age"))
                            p.setString(4,cookie.getValue());
                    }
                    
                    int i=p.executeUpdate();
                    pw.println(i+"records inserted");
                    c.close();
                }
           }
           else 
               System.out.println("Please try again");
           
    } catch (ClassNotFoundException | SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}
java.sql.SQLException: [SQLITE_BUSY]  The database file is locked (database is locked)
at abhishek.Details.doGet(Details.java:50)