java - 数据截断: Truncated incorrect DOUBLE value: on update

标签 java mysql localhost mariadb crud

当推送并更新到本地主机时,继续收到此错误:

com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'Female'

一直在尝试解决这个问题,但没有成功。回到 php admin,性别被定义为 varchar,它看起来不像 double 值。

// mySQL JDBC GUI


import java.awt.*;
import java.sql.*;
import javax.swing.*;
import java.awt.event.*;
public class Retrieve

{

//Variables
public static ResultSet rs;
public static String name="", address ="" ,dob="",pps="",salary="",gender="";
public static JButton b1, b2, b3, b4,b5,b6;
public static Connection con = null;

public static void main(String[] args){
    JFrame f=new JFrame();
    JLabel labell = new JLabel("Name: ");
    JLabel labe12 = new JLabel("Address: ");
    JLabel labe13 = new JLabel("Dob: ");
    JLabel labe14 = new JLabel("Pps: ");
    JLabel labe15 = new JLabel("Salary: ");
    JLabel labe16 = new JLabel("Gender: ");
    JTextField textl = new JTextField(20);
    JTextField text2=new JTextField(20);
    JTextField text3=new JTextField(20);
    JTextField text4=new JTextField(20);
    JTextField text5=new JTextField(20);
    JTextField text6=new JTextField(20);
    b1 = new JButton("NEXT");
    b2 = new JButton("PREV");
    b3 = new JButton("ADD");
    b4 = new JButton("CLEAR");
    b5 = new JButton("UPDATE");
    b6 = new JButton("DELETE");
    Connection con = null;

    //Connection and display
    try{
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
        Statement st=con.createStatement();
        rs=st.executeQuery("select * from db");
        if(rs.next()){
            name=rs.getString("name");
            address=rs.getString("address");
            dob=rs.getString("dob");
            pps=rs.getString("pps");
            salary=rs.getString("salary");
            gender=rs.getString("gender");
            textl.setText(name);
            text2.setText(address);
            text3.setText(dob);
            text4.setText(pps);
            text5.setText(salary);
            text6.setText(gender);
        }
    }catch(Exception e){}
    JPanel p=new JPanel();
    p.add(labell);
    p.add(textl);

    p.add(labe12);
    p.add(text2);

    p.add(labe13);
    p.add(text3);

    p.add(labe14);
    p.add(text4);

    p.add(labe15);
    p.add(text5);

    p.add(labe16);
    p.add(text6);

    p.setLayout(new GridLayout(5,3));


    //Next button function
    p.add(b1);
    b1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                if(rs.next()){
                    name=rs.getString("name");
                    address=rs.getString("address");
                    dob=rs.getString("dob");
                    pps=rs.getString("pps");
                    salary=rs.getString("salary");
                    gender=rs.getString("gender");
                    textl.setText(name);
                    text2.setText(address);
                    text3.setText(dob);
                    text4.setText(pps);
                    text5.setText(salary);
                    text6.setText(gender);
                }
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
    });


    //Previous button function
    p.add(b2);
    b2.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                if(rs.previous()){
                    name=rs.getString("name");
                    address=rs.getString("address");
                    dob=rs.getString("dob");
                    pps=rs.getString("pps");
                    salary=rs.getString("salary");
                    gender=rs.getString("gender");
                    textl.setText(name);
                    text2.setText(address);
                    text3.setText(dob);
                    text4.setText(pps);
                    text5.setText(salary);
                    text6.setText(gender);
                }
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
    });


    //Clear button function
    p.add(b4);
    b4.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            textl.setText("");
            text2.setText("");
            text3.setText("");
            text4.setText("");
            text5.setText("");
            text6.setText("");
        }
    });


    //Add button function
    p.add(b3);
    b3.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                Connection finalCon = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
                try (Statement s = finalCon.createStatement()) {
                    s.executeUpdate(
                            "INSERT INTO db (name, address, dob, pps, salary, gender) VALUES " +
                            "(" +
                                    "'" + textl.getText() + "'," +
                                    "'" + text2.getText() + "'," +
                                    "'" + text3.getText() + "'," +
                                    "'" + text4.getText() + "'," +
                                    "'" + text5.getText() + "'," +
                                    "'" + text6.getText() + "');");
                }
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
    });


    //Update button function
    p.add(b5);
    b5.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            try {
                Connection finalCon = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
                PreparedStatement st = finalCon.prepareStatement("UPDATE db SET  name = ?,  address = ?, dob = ?, salary = ?, gender= ? WHERE  pps = ?  ");
                st.setString(1, textl.getText());
                st.setString(2, text2.getText());
                st.setString(3, text3.getText());
                st.setString(4, text4.getText());
                st.setString(5, text5.getText());
                st.setString(6, text6.getText());
                st.executeUpdate();
                rs=st.executeQuery("select * from db");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    });

    //Delete button function
    p.add(b6);
    b6.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                Connection finalCon = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
                try (Statement s = finalCon.createStatement()) {
                    s.executeUpdate(
                            "DELETE FROM db WHERE pps="+pps);
                }
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
    });


    f.add(p);
    f.setVisible(true);
    f.pack();
}

}

最佳答案

盯着这个;我希望您会看到以下错误:

            PreparedStatement st = finalCon.prepareStatement("UPDATE db SET 
               name = ?,
               address = ?,
               dob = ?,
               salary = ?,
               gender= ?
               WHERE  pps = ?  ");
            st.setString(1, textl.getText());
            st.setString(2, text2.getText());
            st.setString(3, text3.getText());
            st.setString(4, text4.getText());
            st.setString(5, text5.getText());
            st.setString(6, text6.getText());

对比

        name=rs.getString("name");
        address=rs.getString("address");
        dob=rs.getString("dob");
        pps=rs.getString("pps");
        salary=rs.getString("salary");
        gender=rs.getString("gender");

关于java - 数据截断: Truncated incorrect DOUBLE value: on update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60285202/

相关文章:

java - 如何在 libgdx 中创建合适的正交相机

java - java中的相对文件路径

mysql - 如何优化这个 MYSQL 查询以使其运行得更快

mysql - 无法连接我的主机中的 mysql 数据库

java - 提交按钮后,用 TextView 替换 ratingBar?

mysql - 如何将一行添加到 mysql 结果集以用作 html 选择框中的提示?

MySQL - 在存储过程中的游标内使用 SELECT INTO 语句

node.js - Chrome 无法连接到 http ://localhost:8080 but http://127. 0.0.1:8080 有效

php - 如果 int 具有特定值,则执行某些操作,如果没有,则执行其他操作

java - 有没有办法从拆分函数中获得一致的结果?(相同数量的单词)