当前位置: 代码迷 >> Java Web开发 >> 为什么此修改表数据的方法不能够修改呢?请高手赐教,该如何处理
  详细解决方案

为什么此修改表数据的方法不能够修改呢?请高手赐教,该如何处理

热度:44   发布时间:2016-04-17 12:45:56.0
为什么此修改表数据的方法不能够修改呢?请高手赐教
为什么此修改表数据的方法不能够修改呢?请高手赐教
代码如下:
Java code
            /**     * 修改员工信息     * @param name     * @param age     * @param sex     * @param position     * @param salary     * @param birthday     * @throws Exception     */    public void modifyInfo(String name,int age,String sex,String position,float salary,            java.sql.Date birthday)throws Exception{        Connection con=null;        PreparedStatement prepStmt=null;        //ResultSet rs=null;        employees=new ArrayList();        try{            con=getConnection();            String sql="update employees set name=?,age=?,sex=?,position=?,salary=?,birthday=? where name=?";            prepStmt=con.prepareStatement(sql);            prepStmt.setString(1, name);            prepStmt.setInt(2, age);            prepStmt.setString(3, sex);            prepStmt.setString(4, position);            prepStmt.setFloat(5, salary);            prepStmt.setDate(6, birthday);            prepStmt.setString(7, name);            prepStmt.executeUpdate();            prepStmt.close();        }catch(Exception e){            e.printStackTrace();        }        finally{            //closeResultSet(rs);            closeConnection(con);        }    }



------解决方案--------------------
不抛异常的话就是修改没有提交。
手动调用一下commit试一试,还不行就检查一下connection的配置
------解决方案--------------------
name?username?
我去睡觉了,lz珍重
------解决方案--------------------
应该是编码的问题没错,呵呵,数据库方面的中文编码问题偶也不是很懂,纯帮你顶一下
------解决方案--------------------
请问lz方法中的参数是否为页面传过来的,是否使用了jsp,建议lz对中文使用一下字符转换的方法,把uft-8转换成gbk,如果使用了struts则可以配置一下过滤器,乱码方法很好解决的,实在不行可以去网上找找啊,很多的
------解决方案--------------------
如果是jsp页面传过来的有过滤器的话就没什么问题
我估计你是没有经过jsp页面直接服务器传的,所以就多转了一次
你只要把接过来的都转一次码就可以了
------解决方案--------------------
我估计不是编码的原因,看这两句:
String sql="update employees set name=?,age=?,sex=?,position=?,salary=?,birthday=? where name=?";
String sql="update employees set name=?,age=?,sex=?,position=?,salary=?,birthday=? where username=?";
前面的sql,更新的条件用的是name;后面的sql更新的条件是username。
可能就是前面的sql没有找到合适的记录,所以就没有修改期望的记录。
楼主的程序本身并没有错,是sql的缘故

------解决方案--------------------
从网上找个过滤器可以防止乱码
------解决方案--------------------
是编码问题,
给你一个函数把中文处理一下:
 public String format2IS08859(String str) {
try {
if (str == null || str.trim().equals(""))
str = "";
else
str = new String(str.getBytes("ISO8859-1"));

} catch (Exception e) {
e.printStackTrace();
}
return str;
}
------解决方案--------------------
不是程序的问题,lz最开始的程序应该是自己没有写对巴,后来改了,是编码问题。把页面发送的数据和数据库的字符集统一起来就可以了,必要的话设置一个filter,将页面提交的数据统统转化。
------解决方案--------------------
不是程序的问题,lz最开始的程序应该是自己没有写对巴,后来改了,是编码问题。把页面发送的数据和数据库的字符集统一起来就可以了,必要的话设置一个filter,将页面提交的数据统统转化。
------解决方案--------------------
我还是第一次见有人这样写代码的。
public void modifyInfo(String name,int age,String sex,String position,float salary,
java.sql.Date birthday,String username)
  相关解决方案