Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于在SQL语句中使用Java值的混淆_Java_Sql - Fatal编程技术网

关于在SQL语句中使用Java值的混淆

关于在SQL语句中使用Java值的混淆,java,sql,Java,Sql,我需要从SQL数据库中检索车辆注册列表,并将它们放入JavaGUI中的下拉列表中。一旦从列表中选择了车辆注册(作为登录序列的一部分),我想在对数据库进行后续SQL查询的“where”语句中使用它,以获取仅适用于该车辆的库存状态等信息 我已经完成了第一部分,即从数据库中检索列表,并在下拉列表中显示车辆注册表,供用户选择,我已经设法在可选面板中显示它,以及在Jlabel框中的另一个类中显示它,但我似乎不知道如何在单独的查询类中使用此选定的veh reg,即作为select/where语句的一部分 我

我需要从SQL数据库中检索车辆注册列表,并将它们放入JavaGUI中的下拉列表中。一旦从列表中选择了车辆注册(作为登录序列的一部分),我想在对数据库进行后续SQL查询的“where”语句中使用它,以获取仅适用于该车辆的库存状态等信息

我已经完成了第一部分,即从数据库中检索列表,并在下拉列表中显示车辆注册表,供用户选择,我已经设法在可选面板中显示它,以及在Jlabel框中的另一个类中显示它,但我似乎不知道如何在单独的查询类中使用此选定的veh reg,即作为select/where语句的一部分

我一直在试图找到一个解决方案,但对于是否使用数组列表并将注册号放入其中,以及如何将其提供给其他类,以便检索SQL语句中使用的值,我感到困惑。我现在完全迷路了,所以任何正确方向的建议都会非常有用

我对Java和编程都很陌生,所以如果你觉得有必要发表讽刺性的评论(你真是个书呆子),那就不用发帖了

这是从数据库中获取注册并将其添加到一个GUI中的组合框的代码:

private void populateRegistration() {
    try {
        // create a connection to database
        pst = conn.prepareStatement("SELECT VehicleRegistrationNumber FROM vehicle;");
        // create a query to get vehicle regs
        rs = pst.executeQuery();
        // add vehicle regs to combobox
        while (rs.next()) {
            jComboBox1.addItem(rs.getString("VehicleRegistrationNumber"));
        }
    } catch (SQLException ex) {
        Logger.getLogger(Login_GUI.class.getName()).log(Level.SEVERE, null, ex);
    }
这是另一个GUI类中的代码,该类在对话框中显示此车辆注册,然后在GUI中的文本字段中显示:

    public ArrayList<String> getTableContent()
    {
    DatabaseConnection db = new DatabaseConnection();


    try {

         //Sql Return Statement
        String newQuery= "SELECT P.PatientFirstName, P.PatientLastName, P.PatientHouseNumber, P.PatientStreetName, P.PatientPostcode, P.PatientBreathing, P.ProblemInformation, C.AMPDSCategory, \n" +
        "I.NumberHurt,T.TaskClosed, H.HospitalSpaceAvailable, H.HospitalName, H.HospitalPostcode, V.VehicleRegistrationNumber, EM.DateTimeReported\n" +
        "FROM Patient AS P\n" +
        "JOIN Category AS C\n" +
        "ON C.Category_ID = P.CategoryID\n" +
        "--AND P.Patient_ID = 2\n" +
        "JOIN Incident AS I\n" +
        "ON I.Incident_ID = P.IncidentID\n" +
        "JOIN TASK AS T\n" +
        "ON T.IncidentID = I.Incident_ID\n" +
        "JOIN Hospital AS H\n" +
        "ON H.Hospital_ID = T.HospitalID\n" +
        "JOIN Vehicle AS V\n" +
        "ON T.Task_ID = V.TaskID\n" +
        "JOIN ECCPersonnel AS EC\n" +
        "ON I.ECCPersonnelID = EC.ECCPersonnel_ID\n" +
        "JOIN EmergencyCall AS EM\n" +
        "ON EC.CallID = EM.Call_ID\n" +
        "WHERE T.Task_ID=1" +
        "--WHERE V.VehicleRegistrationNumber = '?'";
public ArrayList getTableContent()
{
DatabaseConnection db=新建DatabaseConnection();
试一试{
//Sql返回语句
String newQuery=“选择P.PatientFirstName、P.PatientLastName、P.PatientThreetName、P.PatientPostcode、P.PatientBreathing、P.ProblemInformation、C.AMPDSCategory,\n”+
“I.NumberHurt,T.TaskClosed,H.HospitalSpaceAvailable,H.HospitalName,H.HospitalPostcode,V.VehiclerRegistrationNumber,EM.DateTimeReported\n”+
“来自作为P的患者\n”+
“以C身份加入类别\n”+
“在C.Category\u ID=P.CategoryID上\n”+
“--和P.Patient_ID=2\n”+
“以I身份加入事件\n”+
“在I.Incident_ID=P.IncidentID上\n”+
“以T身份加入任务\n”+
“在T.IncidentID=I.IncidentID\u ID上\n”+
“以H身份加入医院\n”+
“在H.Hospital\u ID=T.HospitalID上\n”+
“以V身份加入车辆\n”+
“在T.Task_ID=V.TaskID上\n”+
“以EC身份加入ECC人员\n”+
“在I.ECCPersonnelID=EC.ECCPersonnelID上\n”+
“将EmergencyCall作为EM加入\n”+
“ON EC.CallID=EM.Call\u ID\n”+
“其中T.Task_ID=1”+
“--其中V.VehiclerRegistrationNumber='?'”;

我知道SQL很难看,但它可以工作,所以如果有时间,我会在以后对它进行改进。我相信我需要定义?但不知道如何将?引用到vehReg值!!

首先,你应该一直关闭你打开的内容。因此在
populateRegistration()
中,不要忘记
rs.close()
pst.close()

在将?引用到
vehReg
的旁边,创建一个
PreparedStatement
,并调用其
setString
方法(假设vehReg是一个字符串)

try
catch
、声明和实际读取为简洁起见而编写)


请记住,列的编号从1开始。

您应该发布一些您已经完成的代码。请发布让您感到困惑或无法解决的代码。关于noob问题,不要担心,老师会责骂我们,这并不意味着他们想伤害我们,他们只想让我们变得完美。我上传了两个课程的代码,第一组代码来自login_GUI,第二组代码来自第二个GUI。我只希望能够在SQL查询中使用vehReg的值,如果可能的话,可以在其他类(如库存、状态和任务类)中使用vehReg的值,因此我将其添加到Arraylist中。我在这里研究了其他类似问题,包括这个()但是我似乎遗漏了一些东西,因为我无法让它工作!只需创建一个静态arraylist,用您想要的值初始化它,然后在另一个类中使用类名调用它。太好了,非常感谢。结束语句在我的待办事项列表中,所以谢谢您,这将节省我一些时间。
pst = conn.prepareStatement(newQuery);
pst.setString(1, vehReg);
rs = pst.executeQuery();