Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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/1/database/9.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
带文本字段的Java插入查询问题_Java_Database_Swing - Fatal编程技术网

带文本字段的Java插入查询问题

带文本字段的Java插入查询问题,java,database,swing,Java,Database,Swing,我在做GUI。它可以在用户单击按钮b1时插入数据。后端数据库有一个表,它是movies,有两列。第一列的名称是title,数据类型是varchar,第二列的名称是year,数据类型是integer。但是我不知道如何借助文本字段在程序中编写这个查询。我在查询中尝试了许多代码,但没有任何结果。 代码: 主要内容: 您有插入电影(标题,年份)值(“+t1.getText()+”)您需要两个参数,并且只发送一个 ---编辑--- 用PreparedStatement替换Statement,并将参数与se

我在做GUI。它可以在用户单击按钮b1时插入数据。后端数据库有一个表,它是movies,有两列。第一列的名称是
title
,数据类型是
varchar
,第二列的名称是
year
,数据类型是
integer
。但是我不知道如何借助文本字段在程序中编写这个查询。我在查询中尝试了许多代码,但没有任何结果。
代码:

主要内容:


您有
插入电影(标题,年份)值(“+t1.getText()+”)
您需要两个参数,并且只发送一个

---编辑---


PreparedStatement
替换
Statement
,并将参数与
setInt
setString
方法一起使用。通过发送两个参数检查以下链接是一个很好的做法,即标题和年份可以解决问题

修改代码

CreateQuery("insert into movies (title,year) values('"+t1.getText()+"',"+t2.getText()+") ");
如果年字段有任何默认值,则下面是修改后的代码

CreateQuery("insert into movies (title) values('"+t1.getText()+"') ");
单击时出现异常错误

java.lang.NumberFormatException: For input string: "World"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at Queryahmad.C_03Update$1.actionPerformed(C_03Update.java:76)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)

您可以通过两种方式实现这一点,第一种是您正在使用的过程,即使用createStatement

在你的情况下,你必须设置标题和年份

CreateQuery("insert into movies (title,year) values('"+t1.getText()+"', " + t2.getText() + ")");
第二种是使用准备好的报表, 方法调用

CreateQuery(t1.getText(), t2.getText());
方法,

public void CreateQuery(String title, String year){
        try{

            Class.forName("com.mysql.jdbc.Driver");

            conn=DriverManager.getConnection(server,user,pass);
             PreparedStatement state =  conn.prepareStatement("insert into movies (title,year) values('?', ?)");
             state.setString(1, title);
             state.setInt(1, new Integer(year));
             state.executeUpdate();
             JOptionPane.showMessageDialog(null, "Query Executed");
        }

        catch(Exception e){
            JOptionPane.showMessageDialog(null, e.getMessage());
        }

    }

发送堆栈跟踪或错误..将字符串解析为integer
integer.parseInt(t2.getText())并在中使用它query@Madhan您能给我正确的parseInt代码吗?这是第二列的后端数据类型,但integervarchar值需要单引号。在这里,作为字符串返回的数字字段可以按原样传递(但它是由数字组成的字符串);int w=整数。parseInt(q);尝试{CreateQuery(“插入电影(标题,年份)值(“+t1.getText()+”,“+w+”)”);我尝试了这个方法,但在这种情况下不起作用int w=Integer.parseInt(t2.getText());//可以正常工作(或)字符串w=t2.getText();//可以正常工作是的,但如果在JText字段t1中写入值“Clockwork Orange”将要执行的查询是insert-into-movies(title,year)值('Clockwork Orange'),您需要类似于此的内容insert-into-movies(title,year)值('t1.getText()+',“+t2.getText()+”)的内容,因此您需要修改它以获得类似于此的CreateQuery(“insert-into-movies(title,year)值('t1.getText()+',+t2.getText()+)”);错误当我在t1文本字段上键入时,点击输入字符串“记录”时出现。请指定您收到的错误。您可以通过直接轻松运行查询来解决问题。首先,在控制台中输出查询,然后复制输出并直接运行。例如,System.out.println(查询);在异常发生之前。请指定您正在接收的异常。
CreateQuery("insert into movies (title,year) values('"+t1.getText()+"', " + t2.getText() + ")");
CreateQuery(t1.getText(), t2.getText());
public void CreateQuery(String title, String year){
        try{

            Class.forName("com.mysql.jdbc.Driver");

            conn=DriverManager.getConnection(server,user,pass);
             PreparedStatement state =  conn.prepareStatement("insert into movies (title,year) values('?', ?)");
             state.setString(1, title);
             state.setInt(1, new Integer(year));
             state.executeUpdate();
             JOptionPane.showMessageDialog(null, "Query Executed");
        }

        catch(Exception e){
            JOptionPane.showMessageDialog(null, e.getMessage());
        }

    }