新手问一JSP至SQL SERVER的问题!~ 出的什么错?编译通过了没有?把错误信息贴出来在你的程序里多加几个System.out.println("随便写点什么")看看程序执行到什么地方出的错 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能是少了一行:stmt=con.createStatement(); 1、缺少stmt=con.createStatement();2、ResultSet rs=stmt.executeQuery(query);query又在那里呢???3、rs.getString("id");你的ID在数据库中是字符串吗!?? 首先你不要在一个程序里又写入又读出,对于新手来说,这样很难分析出问题出在哪里.你先往直接数据库里插入数据,然后写一个JSP程序把你插入数据读出来,一步一步的.我给一些连接数据库的代码你.<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%!public static String getGBString(String src) { try { return new String(src.getBytes("ISO-8859-1"), "gb2312"); } catch (java.io.UnsupportedEncodingException e) { return null; } }%><html> <body> <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://192.168.0.0:1433;DatabaseName=test"; //test你的数据库的 String user="sa"; String password="123"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select id,title,posttime,name from bbs"; ResultSet rs=stmt.executeQuery(sql);%><table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="25%" bgcolor="#FFCCCC"> <p align="center"><b>id</b></td> <td width="25%" bgcolor="#FFCCCC"> <p align="center"><b>title</b></td> <td width="25%" bgcolor="#FFCCCC"> <p align="center"><b>posttime</b></td> <td width="25%" bgcolor="#FFCCCC"> <p align="center"><b>name</b></td> </tr><%while(rs.next()) {%> <tr> <td width="25%"><%=getGBString(rs.getString(1))%><br></td> <td width="25%"><%=getGBString(rs.getString(2))%><br></td> <td width="25%"><%=getGBString(rs.getString(3))%><br></td> <td width="25%"><%=getGBString(rs.getString(4))%><br></td> </tr><%}%> </table> <%rs.close(); stmt.close(); conn.close(); %> </body> </html> 上面给的是一个完整的从数据库里读数据的程序,数据库软件是sql server 2000.数据库名为test用户名为sa密码是123 1.缺少stmt=con.createStatement();2.stmt.close(); con.close();不要写在循环语句内 我可以查出你的程序中出现了以下错误:(1)在用Class.forName()方法时,应该捕获异常: try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch (ClassNOtFoundException e) { }(2)ni 你的数据库驱动程序写错了:sun.jdbc.odbc.JdbcodbcDriver记住:sun.jdbc.odbc.JdbcOdbcDriver在后面的首字母都要大写:JdbcOdbcDriver(3)所有的SQZL都要捕获异常:try{\con=DriverManager.getConnection(url,"sa",""); stmt.executeUpdate("insert into test values('1','123','good')"); }catch(SQLException e){ e.toString();}(4)没有声明Statement语句:应为:con=DriverManager.getConnection(url,"sa","");stmt=con.createStatement();stmt.executeUpdate("insert into test values('1','123','good')"); (5)不应吧数据库和语句Statement的关闭操作放在循环中while (rs.next()) { String s=rs.getString("id"); String f=rs.getString("name"); System.out.println(s + " " + f); //stmt.close(); //con.close(); } stmt.close(); con.close(); //执行SQL查询返回记录集 public ResultSet executeQuery(String s) { ResultSet rs1 = null; try { if(conn != null) conn.close(); conn = DriverManager.getConnection(sConnStr, UseName, PassWord); Statement statement = conn.createStatement(); rs1 = statement.executeQuery(s); } catch(SQLException sqlexception) { System.err.println("rs.executeQuery error" + s + sqlexception.getMessage()); } return rs1; } stmt.executeUpdate("insert into test values('1','123','good')");问题出在这句。这是什么?即不是调用beans的方法,也不是Statement的方法。把这句去掉,改成这两句就行了Statement stmt;stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 大家好,JSP连接ORACLE数据库问题 ibatis :如何得到执行过的SQL文。100分相送 图片预览时,为什么文件名是中文不能预览 关于bean调用的一个问题 各位大虾,这种问题也没人能回答吗? 再问一个很弱的问题(如何获得jdbc-odbc桥驱动程序) 如何实现浏览器上的右键菜单 我的servlet文件应该放那???? 求在servlet加密字符串函数 诚心求助,关于Tomcat4.1.12无法启动的问题 我实在很郁闷了,各位来帮帮忙!:( 为什么不显示Hello!
stmt=con.createStatement();
stmt=con.createStatement();2、ResultSet rs=stmt.executeQuery(query);
query又在那里呢???3、rs.getString("id");
你的ID在数据库中是字符串吗!??
你先往直接数据库里插入数据,然后写一个JSP程序把你插入数据读出来,一步一步的.
我给一些连接数据库的代码你.
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%!
public static String getGBString(String src) {
try {
return new String(src.getBytes("ISO-8859-1"), "gb2312");
} catch (java.io.UnsupportedEncodingException e) {
return null;
}
}
%>
<html>
<body> <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://192.168.0.0:1433;DatabaseName=test";
//test你的数据库的
String user="sa";
String password="123";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select id,title,posttime,name from bbs";
ResultSet rs=stmt.executeQuery(sql);%>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="25%" bgcolor="#FFCCCC">
<p align="center"><b>id</b></td>
<td width="25%" bgcolor="#FFCCCC">
<p align="center"><b>title</b></td>
<td width="25%" bgcolor="#FFCCCC">
<p align="center"><b>posttime</b></td>
<td width="25%" bgcolor="#FFCCCC">
<p align="center"><b>name</b></td>
</tr>
<%while(rs.next()) {%> <tr>
<td width="25%"><%=getGBString(rs.getString(1))%><br></td>
<td width="25%"><%=getGBString(rs.getString(2))%><br></td>
<td width="25%"><%=getGBString(rs.getString(3))%><br></td>
<td width="25%"><%=getGBString(rs.getString(4))%><br></td>
</tr>
<%}%>
</table> <%rs.close();
stmt.close();
conn.close();
%> </body>
</html>
数据库名为test
用户名为sa
密码是123
2.stmt.close(); con.close();不要写在循环语句内
(1)在用Class.forName()方法时,应该捕获异常:
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch (ClassNOtFoundException e) { }
(2)ni 你的数据库驱动程序写错了:sun.jdbc.odbc.JdbcodbcDriver
记住:sun.jdbc.odbc.JdbcOdbcDriver
在后面的首字母都要大写:JdbcOdbcDriver
(3)所有的SQZL都要捕获异常:
try{\
con=DriverManager.getConnection(url,"sa","");
stmt.executeUpdate("insert into test values('1','123','good')");
}
catch(SQLException e)
{ e.toString();}
(4)没有声明Statement语句:
应为:
con=DriverManager.getConnection(url,"sa","");
stmt=con.createStatement();
stmt.executeUpdate("insert into test values('1','123','good')");
(5)不应吧数据库和语句Statement的关闭操作放在循环中while (rs.next()) {
String s=rs.getString("id");
String f=rs.getString("name");
System.out.println(s + " " + f);
//stmt.close();
//con.close();
} stmt.close();
con.close();
public ResultSet executeQuery(String s)
{
ResultSet rs1 = null;
try
{
if(conn != null)
conn.close();
conn = DriverManager.getConnection(sConnStr, UseName, PassWord);
Statement statement = conn.createStatement();
rs1 = statement.executeQuery(s);
}
catch(SQLException sqlexception)
{
System.err.println("rs.executeQuery error" + s + sqlexception.getMessage());
}
return rs1;
}
问题出在这句。这是什么?即不是调用beans的方法,也不是Statement的方法。
把这句去掉,改成这两句就行了
Statement stmt;
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);