Servlet 连接SQLServer 问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet 连接SQLServer 问题相关的知识,希望对你有一定的参考价值。
大家帮我看一下我编的java 程序有什么问题啊,没有通过编译。
public class syncro extends HttpServlet
private static final String CONTENT_TYPE="text/html;charset=gb2312";
private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=try";
Connection conn=null;
public void init(ServletConfig config)throws ServletException
super.init(config);
try
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
catch(ClassNotFoundException e)
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
PrintWriter out=response.getWriter();
Statement stmt=null;
ResultSet rs=null;
if(conn==null)
try
conn=DriverManager.getConnection(url,"sa","jimmy1981");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from guest";
rs=stmt.executeQuery(sql);
out.print("...");
else
synchronized(conn)
try
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from guest";
rs=stmt.executeQuery(sql);
......
while(rs.next())
out.print("...");
catch(SQLException e)
public void doGet(...) throws ...
doPost(request,response);
public void destory()
编译出错提示:unreported exception java.lang.InstantiationException;must be caught or declared to be thrown
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
错误点指在倒数第2个小括号下面。
数据库名字是:try ,数据表名字是:guest,字段是: num,username,content,password
我使用了数据库共享连接。
我用odbc数据源连接的时候是可以正常使用的,我估计不是数据库驱动的问题,我都配置好了的。
请大家帮忙啊,急死人了!
conn=DriverManager.getConnection(url,"sa","jimmy1981");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from guest";
rs=stmt.executeQuery(sql);
out.print("...");
没有catch语句阿!
估计是这样,你试试!
或者你把try catch全去调,在开始处throws Exception
测试一下!
从你的报错看,好像没有catch java.lang.InstantiationException
从错误看,是你的try catch
出问题了! 参考技术A 哦NO 又是微软的SQL包~~大哥你看下报什么异常好不,直接把异常发上来给大家看看。。。最好用SUN公司的SQL包包啊~~你这个包包不好用的 参考技术B 你发的程序不完整.是不是没有导入包.
关于jsp连接SQLserver 2000 的问题
我的代码~~~
<%@ page contentType=\"text/html;charset=gb2312\"%>
<%@ page import=\"java.sql.*\"%>
<html>
<body>
<%
Class.forName(\"com.microsoft.jdbc.sqlserver.SQLServerDriver\").newInstance();
String url=\"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=student\";
String user=\"stu\";
String password=\"stu\";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql=\"select * from T_User\";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) %>
<%=rs.getString(1)%>
<%%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
然后报错是下边的
我在我的lib下装了很多包~~我不知道是什么问题~~请好心的你帮帮我~~~
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /test.jsp(1,25) quote symbol expected
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:204)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:154)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:166)
org.apache.jasper.compiler.ParserController.getPageEncodingForJspSyntax(ParserController.java:490)
org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:431)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:207)
org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:120)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:165)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.20
我不知道怎么加200分 但是我会追加分数的
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao
private static final String DRIVER_CLASS="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://localhost:1433;DATABASENAME=managerNews";
private static final String UNAME="sa";
private static final String UPASSWORD="sa";
/*
* 连接数据库
*/
public Connection getConnection()
Connection conn=null;
try
Class.forName(DRIVER_CLASS);
conn=DriverManager.getConnection(URL,UNAME,UPASSWORD);
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
return conn;
/*
* 关闭conn,ps,rs,释放资源
*/
public void closeAll( Connection conn, PreparedStatement ps, ResultSet rs )
/* 如果rs不空,关闭rs */
if(rs != null)
try rs.close(); catch (SQLException e) e.printStackTrace();
/* 如果pstmt不空,关闭pstmt */
if(ps!= null)
try ps.close(); catch (SQLException e) e.printStackTrace();
/* 如果conn不空,关闭conn */
if(conn != null)
try conn.close(); catch (SQLException e) e.printStackTrace();
// public static void main (String[] args)
//
// BaseDao bo= new BaseDao();
// Connection conn=null;
// conn=bo.getConnection();
// System.out.print(conn);
//
//
参考技术A <%
try
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=student";
String user="stu";
String password="stu";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql="select * from T_User";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
out.println(rs.getString(1)); //此处循环输出你想要的显示的
catch(Exception e)e.printStackTrace();
finally
rs.close();
stmt.close();
conn.close();
%> 参考技术B 把双引号前面的\去掉,全部的 参考技术C 将class那句改成这样: class.forname("com.microsoft.jdbc.sqlserver.sqlserverdriver");
以上是关于Servlet 连接SQLServer 问题的主要内容,如果未能解决你的问题,请参考以下文章
eclipse用jdbc连接SQL server时出现了问题……这是啥情况啊!请大神指教!