当前位置: 代码迷 >> Java Web开发 >> JDBC连接SQL出错??
  详细解决方案

JDBC连接SQL出错??

热度:359   发布时间:2008-03-06 00:40:21.0
JDBC连接SQL出错??
为什么下面代码在执行时会出错??请大家指教!

<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>

<%!
        Connection conn;
        Statement s;
        ResultSet rs;
        String dbdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pet";
%>
<%
    try
    {
                Class.forName(dbdriver).newInstance();
                conn=DriverManager.getConnection(url,"sa","123456");
                s=conn.createStatement();
                rs=s.executeQuery("insert into message (user,password) values('a','bbbbb')");
              while(rs.next())
              {
%>
                      <%=rs.getString(1)%><br>
<%    
                }
                      rs.close();
                      s.close();
                      conn.close();
      }
      catch(Exception e)
    {
            out.println(e);
    }
%>
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'user' 附近有语法错误。

[[it] 本帖最后由 Javapet 于 2008-3-6 12:55 编辑 [/it]]
搜索更多相关主题的帖子: SQL  JDBC  

----------------解决方案--------------------------------------------------------
out.println("有错误!!");
这句换成e.printStackTrace();看服务器控制台报什么异常或者换成out.println(e);
----------------解决方案--------------------------------------------------------
没有装sp4补丁?又或者没加如jar文件
----------------解决方案--------------------------------------------------------
具体的错误提示是什么?
----------------解决方案--------------------------------------------------------
user是关键字
写在sql语句里肯定有问题
----------------解决方案--------------------------------------------------------
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>

<%!
        Connection conn;
        Statement s;
        ResultSet rs;
        String dbdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pet";
%>
<%
    try
    {
                Class.forName(dbdriver).newInstance();
                conn=DriverManager.getConnection(url,"sa","123456");
                s=conn.createStatement();
                rs=s.executeQuery("insert into message (user,password) values("'+a+',"'+bbbbb+'")");
              while(rs.next())
              {
%>
                      <%=rs.getString(1)%><br>
<%   
                }
                      rs.close();
                      s.close();
                      conn.close();
      }
      catch(Exception e)
    {
            out.println(e);
    }
%>
----------------解决方案--------------------------------------------------------
问题已经解决了,谢谢大家的意见!
----------------解决方案--------------------------------------------------------
你的概念不清楚
你的连接估计没有问题,但是,使用查询的语法有问题吧
s=conn.createStatement();//这个适合静态的语句,比如全部查询,无须参数的,如果要用到动态的,请用预编译的Statement
rs=s.executeQuery("insert into message (user,password) values('a','bbbbb')");//这个executeQuery只是查询用的,而你却写了增加,如果要是增加,那么该用executeUpdate
----------------解决方案--------------------------------------------------------
表名,列名最好少用关键字
----------------解决方案--------------------------------------------------------
  相关解决方案