[更新mysql表后仅在单个列中丢失数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[更新mysql表后仅在单个列中丢失数据相关的知识,希望对你有一定的参考价值。

我是jsp servlet的新手。我正在用Eclipse和mysql做一个jsp,servlet CRUD项目。可以执行Insert,Delete操作,但是当我更新employee表的一行上的数据时,userName列的数据丢失了。它仅在更新列时发生。我试图手动更新userName列,但没有成功。这是插入和更新完成后的图像。

inserting a new row

updating the first name as "Alan"

更新查询

public static int update(Emp m)
int status=0;
try
    Connection con=getConnection();
    PreparedStatement ps=con.prepareStatement("update employee set fname=?,lname=?,userName=?,passwrd=?,age=?,gender=?,address=?,contactNo=?,email=?,jobType=?,department=?,qualifics=?,salary=?,hireDate=? where id=?");
    ps.setString(1,m.getFname());
    ps.setString(2,m.getLname());
    ps.setString(3,m.getUserName());
    ps.setString(4,m.getPasswrd());
    ps.setInt(5,m.getAge());
    ps.setString(6,m.getGender());
    ps.setString(7,m.getAddress());
    ps.setString(8,m.getContactNo());
    ps.setString(9,m.getEmail());
    ps.setString(10,m.getJobType());
    ps.setString(11,m.getDepartment());
    ps.setString(12,m.getQualifics());
    ps.setDouble(13,m.getSalary());
    ps.setString(14,m.getHireDate());
    ps.setInt(15,m.getId());

    status=ps.executeUpdate();
catch(Exception e)
    System.out.println(e);
    

return status;

从数据库中检索数据

public static List<Emp> getAllRecords()
List<Emp> list=new ArrayList<Emp>();

try
    Connection con=getConnection();
    PreparedStatement ps=con.prepareStatement("select * from employee");
    ResultSet rs=ps.executeQuery();
    while(rs.next())
        Emp m=new Emp();
        m.setId(rs.getInt("id"));
        m.setFname(rs.getString("fname"));
        m.setLname(rs.getString("lname"));
        m.setUserName(rs.getString("userName"));
        m.setPasswrd(rs.getString("passwrd"));
        m.setAge(rs.getInt("age"));
        m.setGender(rs.getString("gender"));
        m.setAddress(rs.getString("address"));
        m.setContactNo(rs.getString("contactNo"));
        m.setEmail(rs.getString("email"));
        m.setJobType(rs.getString("jobType"));
        m.setDepartment(rs.getString("department"));
        m.setQualifics(rs.getString("qualifics"));
        m.setSalary(rs.getDouble("salary"));
        m.setHireDate(rs.getString("hireDate"));

        list.add(m);
    
catch(Exception e)
    System.out.println(e);
    
return list;

通过ID获取数据

public static Emp getRecordById(int id)
Emp m=null;
try
    Connection con=getConnection();
    PreparedStatement ps=con.prepareStatement("select * from employee where id=?");
    ps.setInt(1,id);
    ResultSet rs=ps.executeQuery();
    while(rs.next())
        m=new Emp();
        m.setId(rs.getInt("id"));
        m.setFname(rs.getString("fname"));
        m.setLname(rs.getString("lname"));
        m.setUserName(rs.getString("userName"));
        m.setPasswrd(rs.getString("passwrd"));
        m.setAge(rs.getInt("age"));
        m.setGender(rs.getString("gender"));
        m.setAddress(rs.getString("address"));
        m.setContactNo(rs.getString("contactNo"));
        m.setEmail(rs.getString("email"));
        m.setJobType(rs.getString("jobType"));
        m.setDepartment(rs.getString("department"));
        m.setQualifics(rs.getString("qualifics"));
        m.setSalary(rs.getDouble("salary"));
        m.setHireDate(rs.getString("hireDate"));
    
catch(Exception e)
    System.out.println(e);
    

return m;

viewtable.jsp的图像

import Empdb.java

table headers

get table data

我该怎么办?您能提供的任何帮助将不胜感激,并感谢您的宝贵时间。

答案

我已经检查完您的代码,并找到导致该问题的问题。

在您的editform.jsp中:-您已经写了这个“ userNname”,这是破旧的

User Name:<input type="text" name="userNname" value="<%= m.getUserName()%>"/>

使用此:(搜索相同名称)

User Name:<input type="text" name="userName" value="<%= m.getUserName()%>"/>

将“ userNname”更改为“ userName”,将可以使用。谢谢

以上是关于[更新mysql表后仅在单个列中丢失数据的主要内容,如果未能解决你的问题,请参考以下文章

仅在左侧列中显示表格,而不是在 phpmyadmin 中显示数据库

是否可以仅在数据发生更改时更新 mysql 视图?

MySQL查询以在单个列中查找相似值

mysql 数据丢失更新的解决方法

仅在 Microsoft access 更新时将 Microsoft Access 导出到 Mysql

VBA代码在数据透视表旁边的列中向下拖动公式