为什么此修改表数据的方法不能够修改呢?请高手赐教
为什么此修改表数据的方法不能够修改呢?请高手赐教
代码如下:
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)