Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 sql插入作业窗格_Java_Mysql_Sql_Jdbc - Fatal编程技术网

Java sql插入作业窗格

Java sql插入作业窗格,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,试图在Java中向数据库中插入一行。它只插入第一列,我不知道为什么。代码如下: @Override public void actionPerformed(ActionEvent e) { // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. int x = 1; i

试图在Java中向数据库中插入一行。它只插入第一列,我不知道为什么。代码如下:

@Override
public void actionPerformed(ActionEvent e) {
    // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    int x = 1;
    int limit;
    //promts the user to enter input
    //  String InputString = JOptionPane.showInputDialog(null, "Enter the Number of Countries: ",JOptionPane.QUESTION_MESSAGE);
    // limit = Integer.parseInt(InputString);  

    Connection connection;
    PreparedStatement ps;
    try {
        String dbName = "osdesign";
        String dbUserName = "root";
        String dbPassword = "";
        //String u = jtfuser.getText();
        //String p =jpfpass.getName();
        String connectionString = "jdbc:mysql://localhost/" + dbName + "?user="
                + dbUserName + "&password=" + dbPassword
                + "&useUnicode=true&characterEncoding=UTF-8";
        connection = DriverManager.getConnection(connectionString);
        JOptionPane.showMessageDialog(null, "Connected!");

        //int x = 1;
        User List = new User();

        //User[] List = new User [limit];
        //String query;
        //for (x = 0; x < limit; x++)
        // {
        ///List[x] = new User();  
        //List[x].User_type = null;
        List.input(x);
        //String sql = "INSERT into `userlist` (`UsrCode`, `UsrName`, `UsrPass`, `UsrPassChgDays`, `UsrPassChgDate`, `Usrtype`) VALUES( ?,  ?,  ?,  ?,  ?,  ?);";

        PreparedStatement preparedStmt = connection.prepareStatement("INSERT INTO `userlist`" + 
                "VALUES( ?,  ?,  ?,  ?,  ?,  ?);");

        String ID = List.ID;
        String name = List.name;
        preparedStmt.setString(1, ID);
        preparedStmt.setString(2, name);
        preparedStmt.setString(3, List.password);

        preparedStmt.setString(4, List.Usr_PassChgDays);
        preparedStmt.setString(5, List.data_of_passChg);
        preparedStmt.setString(6, List.User_type);

        preparedStmt.executeUpdate();
        //btnlogin.equals(result);
        // panel.add(btnlogin);
        //   panel.add(jpfpass.getName(),btnlogin);
        if (preparedStmt.equals(true)) {
            JOptionPane.showMessageDialog(null, "Great sucess!!!");
            //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        } else {
            JOptionPane.showMessageDialog(null, "FUCK!!!");
        }

        //JOptionPane.showMessageDialog(null, "User sucessfully created");
    } catch (SQLException ex) {
        Logger.getLogger(RychlikSystemversion0.class.getName()).log(Level.SEVERE, null, ex);
    }
}
@覆盖
已执行的公共无效操作(操作事件e){
//抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
int x=1;
整数极限;
//提示用户输入信息
//String InputString=JOptionPane.showInputDialog(null,“输入国家数量:”,JOptionPane.QUESTION_消息);
//limit=Integer.parseInt(InputString);
连接;
编制报表;
试一试{
字符串dbName=“osdesign”;
字符串dbUserName=“root”;
字符串dbPassword=“”;
//字符串u=jtfuser.getText();
//字符串p=jpfpass.getName();
字符串连接String=“jdbc:mysql://localhost/“+dbName+”?用户=”
+dbUserName+“&password=“+dbPassword”
+“&useUnicode=true&characterEncoding=UTF-8”;
connection=DriverManager.getConnection(connectionString);
showMessageDialog(空,“已连接!”);
//int x=1;
用户列表=新用户();
//用户[]列表=新用户[限制];
//字符串查询;
//对于(x=0;x

在互联网上到处搜索,尝试了各种技巧,我真的很困惑。有人能帮我吗?

请编辑SQL查询删除;结束查询

PreparedStatement preparedStmt = connection.prepareStatement("INSERT INTO `userlist`" + 
                "VALUES( ?,  ?,  ?,  ?,  ?,  ?)**;**");

您必须确保Java中的数据类型与数据库中列的数据类型匹配。例如,
preparedStmt.setString(1,ID);
应为
preparedStmt.setInt(1,ID);
!!我将数据库值更改为varchar,但它仍然会给我带来问题。程序对您发誓,因此它不会插入行。我最初的想法与@Kh.Taheri相同。数据库表中的ID列是字符串数据类型还是整数数据类型?它现在到底是什么?列表是否确实包含任何内容?测试把它放到控制台:
System.out.println(List.ID);System.out.println(List.name);System.out.println(List.password)
等。仍然做同样的事情,只是打印出ID。它只将数据插入主键,这真的很奇怪。我知道它连接到数据库,因为我有一个运行正常的登录swing框架。您从未在
列表
上设置我们可以看到的任何值。正如我对您的另一个问题所做的评论,您确实需要调试以查看实际上,您已经有了所需的值。在这种情况下,您还可以首先尝试在
setString
方法中使用显式文字值来表示值2-6,以查看问题实际上是否与数据库代码或
User
类有关(据我们所知,您没有进行初始化,只是设置了它的id,所以所有字段很可能仍然是
null
)。否则,发布一个包含所有相关代码的MCVE。为什么?MySQL不喜欢它吗?我认为所有数据库系统都接受结尾带有分号的SQL语句。毕竟,这是在数据库系统中分隔每个SQL语句的标准方法,允许在对服务器的同一次调用中执行多个SQL语句。对于某些数据库系统这是绝对必要的。有些系统不需要它,t-SQL可能现在也不需要它……但很快就会需要它。@DevilsHnd不一定,在某些数据库系统中,它只是客户端中的分隔符,而不是服务器本身(因此CLI知道语句何时完成并可以发送到服务器执行)。虽然给出了问题中的信息,但我同意这可能不是原因。@Mark Rotterveel-在某些情况下。正如我在之前的评论中所述:“某些系统不需要它…”@DevilsHnd IIRC,如果您没有将MySQL连接器/J设置为允许同时执行多个语句,则它不允许使用
(JDBC期望每个执行一条语句)。