java - 数据截断:截断不正确的 DOUBLE 值:更新时
问题描述
推送和更新到本地主机时,继续收到此错误:
com.mysql.cj.jdbc.exceptions.MysqlDataTruncation:数据截断:截断不正确的 DOUBLE 值:'Female'
一直试图解决它,但无法解决。回到 php admin 性别被定义为 varchar 它看起来不像一个双精度值。
// 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");
推荐阅读
- github - Github 文件夹结构或布局问题
- pandas - 如何创建具有不同时期索引的数据框
- mysql - 如何设计数据库中的业务、分支和服务表?
- reactjs - React TypeScript 16.8 使用 BrowserRouter 传递道具
- java - 矩阵“层”旋转
- arduino - 尝试使用带有 Sim900 模块的 php 打开网站。不工作
- javascript - Javascript中方程组定点迭代的断点实现
- elasticsearch - 如何过滤掉(排除)Kibana 中 Elastic 搜索查询 DSL 给出的所有结果?
- data-science - 标称、序数、二进制与数值变量数据集的缩放
- boost-beast - 如何使用boost websocket实现子协议