JSP和SQL数据插入

时间:2015-02-13 15:34:51

标签: java mysql jsp

目前,我在尝试将数据插入数据库时​​,正在使用JSP。我使用Java类来做到这一点,不惜一切代价避免乱写。事实是,当我想将数据插入3个不同的表时,只有第一个表在JSP中执行此操作时才会填充。您知道填写表单,将数据发送到类,然后数据库就会填满。如果我单独使用Java App,所有表只能填充一个函数。 JSP不起作用,Java应用程序呢?什么?

这是java类:

public void fileDataToDB(String file1, String file2, String file3, String aPath, String operationUsed) {


        try {
        Class.forName("com.mysql.jdbc.Driver");
        connectMe = DriverManager.getConnection(url+dbName, userNameDB, passwordDB);

        String query = "INSERT INTO MatrixUsers.FilePath (idFilePath, LocationFiles) VALUES (?, ?)";
        String query2 = "INSERT INTO MatrixUsers.Sessions (idSessions, Matrix1, Matrix2, Result) VALUES (?, ?, ?, ?)";
        String query3 = "INSERT INTO MatrixUsers.Operations (idOperations, Operation) VALUES (?,?)";


        selectUsers = connectMe.prepareStatement(query2);

        selectUsers.setInt(1, id);
        selectUsers.setString(2, file1);
        selectUsers.setString(3, file2);
        selectUsers.setString(4, file3);
        selectUsers.executeUpdate();

        tip1 = "First table done!";

        if(aPath != null)
            contains = "Path is filled!";

        selectUsers.close();


        selectUsers = connectMe.prepareStatement(query);

        selectUsers.setInt(1, id);
        selectUsers.setString(2, aPath);

        selectUsers.executeUpdate();

        tip2 = "Second table done!";

        selectUsers.close();

        selectUsers = connectMe.prepareStatement(query3);

        selectUsers.setInt(1, id);
        selectUsers.setString(2, operationUsed);
        selectUsers.executeUpdate();

        tip3 = "Third table done!";

        selectUsers.close();

        connectMe.close(); 


    } catch (Exception e) {
        e.printStackTrace();
    }
}

注意:我在JSP和Java应用程序中使用它并且是相同的。 TIPS变量仅用于知道代码切割的位置。在JSP中,它在第一个表中切换,其他返回null意味着其他查询永远不会被执行。容器变量也是要知道aPath变量是否填充并返回包含某些内容的变量。所以我认为那些怀疑是不可能的。它为什么这样切?当这在Java应用程序中显得相同时。

1 个答案:

答案 0 :(得分:1)

解决方案:Row小于String aPath,将行大小从varchar(45)更改为varchar(255)并解决了问题!

感谢 dave823和cigno5.5 获取日志文件中的信息。