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
----------------解决方案--------------------------------------------------------
表名,列名最好少用关键字
----------------解决方案--------------------------------------------------------