为啥到executeUpdate(sql)这一句,就不执行了呢?求指教

歆鸿 2011-10-19 08:40:26
我的代码
String sql = "UPDATE ACCOUNTS SET 密码=" + account.getPassword()
+ " WHERE 账户名=" + account.getAccountName();

try {
Class.forName(this.dbDriver).newInstance();
} catch (Exception e) {
e.printStackTrace();
}

try {
Connection conn = DriverManager.getConnection(this.dbUrl,
this.user, this.password);
if (!conn.isClosed()) {
Statement st = conn.createStatement();
Account acc = this.getAccountInfo(account.getAccountName());
if (acc != null) {
System.out.println(2);
int count = st.executeUpdate(sql);
System.out
.println(count
+ " account's information has been updated in table ACCOUNTS!");
} else
System.out
.println("There isn't the account which you want to update its information!");
}
} catch (SQLException e) {

}
...全文
280 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoyation 2011-10-19
  • 打赏
  • 举报
回复
是的,可看api,帮助文档,里边有介绍的,要注意 问号在英文输入法状态输入
歆鸿 2011-10-19
  • 打赏
  • 举报
回复
我想再问一下 如果多个参数 是不是可以这样写
UPDATE CLASSES SET (名称,课时,学分,老师,地点,共享)=(?,?,?,?,?,?) WHERE 编号=?

多谢了
[Quote=引用 1 楼 yangxingzou 的回复:]

sql 语句不对,
String sql = "UPDATE ACCOUNTS SET 密码='" + account.getPassword()
+ "' WHERE 账户名='" + account.getAccountName()+"'";

最好是用PreparedStatement
String sql = "UPDATE ACCOUNTS SET 密码=? WHERE 账……
[/Quote]
歆鸿 2011-10-19
  • 打赏
  • 举报
回复
多谢1楼 问题解决了 感谢
zoyation 2011-10-19
  • 打赏
  • 举报
回复
sql 语句不对,
String sql = "UPDATE ACCOUNTS SET 密码='" + account.getPassword()
+ "' WHERE 账户名='" + account.getAccountName()+"'";

最好是用PreparedStatement
String sql = "UPDATE ACCOUNTS SET 密码=? WHERE 账户名=?";
PreparedStatement pstmt = conn.createPreparedStatement(sql);
pstmt.setString(1,account.getPassword());
pstmt.setString(2,account.getAccountName());
int rs = pstmt.executeUpdate();

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧