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