java简单的数据库操作为什么一直出现语法错误? 跪求高手解答

xiaojiang0805 2013-08-14 09:46:48
关键代码如下
	public boolean login(String account,String password){
boolean b = false;
String sql = "select * from user where account=? and password=?";
conn = DBUtil.getDBUtil().getConnection();
try {
ps = conn.prepareStatement(sql);
ps.setString(1, account);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if(rs!=null&&rs.next()){
System.out.println("从sqlserver数据库中查询到的数据"+rs.getString(2));
return true;
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return b;
}



最后我写了一个main还是进行测试,出现如下错误:
数据库连接成功
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'user' 附近有语法错误。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
at com.xiaojiang.server.dao.UserDAO.login(UserDAO.java:25)
at com.xiaojiang.server.dao.DBUtil.main(DBUtil.java:54)



其中测试的main函数是这么写的:
	public static void main(String[] args){
dbUtil = getDBUtil();
Connection conn = dbUtil.getConnection();
if(conn!=null){
System.out.println("数据库连接成功");
}
UserDAO userDao = new UserDAO();
userDao.login("6742323895", "jdssdsj824");
}


检查的N遍一直查找不出来,求各位大神帮帮小弟!!!
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojiang0805 2013-08-14
  • 打赏
  • 举报
回复
非常感谢给位,是的user是关键字
花阡陌 2013-08-14
  • 打赏
  • 举报
回复
在数据库中‘user’是关键字
bichir 2013-08-14
  • 打赏
  • 举报
回复
USER是系统关键字加上中括号String sql = "select * from user where account=? and password=?"; 改成 String sql = "select * from [user] where account=? and password=?"; 就可以了
末日哥 2013-08-14
  • 打赏
  • 举报
回复
在关键字 'user' 附近有语法错误。。user是关键字,换个名字
xu357100870 2013-08-14
  • 打赏
  • 举报
回复
user是系统表
跳蚤图 2013-08-14
  • 打赏
  • 举报
回复
你把sql语句贴到工具里,直接运行,看出什么错。 可能user是数据库的关键字
loveofmylife 2013-08-14
  • 打赏
  • 举报
回复
sqlserver中user是关键字,不能用作表名
AlexNo1 2013-08-14
  • 打赏
  • 举报
回复
user可能是关键字,换个表查查看

62,614

社区成员

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

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