JSP怎么连接数据库啊?
有没有详细的例子或者视频呢?
我的是SQL08。
刚下载了JDBC 3.0驱动,也配置了CLASSPATH,不知道对不对。
JDBC的目录是C:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs\sqljdbc.jar
配置的CLASSPATH是.;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;.;C:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs\sqljdbc.jar前面两个是Java的环境变量,应该没错吧?那么在jsp里面怎么连接数据库呢?
我的数据库名叫“exam”里面有一张“Teacher”的表,如何把select *from Teacher;的内容显示在网页上呢?
我设的用户名和密码是“admin”端口没改,默认的1433吧?
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@ page contentType="text/html; charset=utf-8" language="java" 
import="java.sql.*"%><%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
String url = "jdbc:sqlserver://localhost:1433;" +
   "databaseName=exam;user=admin;password=admin;";
Connection conn = DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    String sql="select * from Teacher";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()){
    out.print("用户名:");
    out.print(rs.getString("uid")+" 密码:");
    out.println(rs.getString("pwd")+"<br>");
    }
    rs.close();
    stmt.close();
    conn.close();
%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
上面的那段是百度出来的,但总是会报错,好像是加载驱动那里报的错。如果上面的代码能凑合着用麻烦大家给我讲下怎么弄~
或者说下其它方法也好~~初学者求教。

解决方案 »

  1.   

    对了,我同学用的的MYSQL数据库,我写的create table Radio
    (r_id int primary key,
    T_id int foreign key (T_id) references Teacher(T_id) on update cascade on delete cascade,
    r_desc varchar(255) not null,
    option_A varchar(255) not null,
    option_B varchar(255) not null,
    option_C varchar(255) not null,
    option_D varchar(255) not null,
    r_true char not null
    );在SQL08上就能正常运行,为什么在MYSQL上就会报错呢...
      

  2.   

    String url = "jdbc:sqlserver://localhost:1433;" +
               "databaseName=exam;user=admin;password=admin;";
    写错了
    user=admin;和password=admin;不应该写在url里
      

  3.   

    String url = "jdbc:sqlserver://localhost:1433;databaseName=exam;"
    String name = "admin";
    String password = "admin";
    Connection conn = DriverManager.getConnection(url,name,password);           
      

  4.   

    这边还是在加载驱动的那一句报错...
    org.apache.jasper.JasperException: An exception occurred processing JSP page /NewFile.jsp at line 5656:     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    57:     String url = "jdbc:sqlserver://localhost:1433;databaseName=exam;";
    58: String name = "admin";
    59: String password = "admin";
      

  5.   

    private Connection getConn() {
    try {
    Class.forName(driver);
    Connection conn = DriverManager.getConnection(url, userName,
    password);
    return conn;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    }把详细的报错信息发出来 ,还有就是必须把驱动jar包放到lib中,或者放到你的classpath中
      

  6.   


    我把sqljdbc.jar放在了WEB-INF的lib下。改了之后的:
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
        <%@ page contentType="text/html; charset=utf-8" language="java" 
    import="java.sql.*"%>    <%  
        private Connection getConn() {
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                 String url = "jdbc:sqlserver://localhost:1433;databaseName=exam;";
                 String username = "admin";
                 String password = "admin";
                Connection conn = DriverManager.getConnection(url, userName,
                        password);
                return conn;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        
        String sql="select * from Teacher";
        ResultSet rs=stmt.executeQuery(sql);
        while(rs.next()){
        out.print("用户名:");
        out.print(rs.getString("uid")+" 密码:");
        out.println(rs.getString("pwd")+"<br>");
        }
        rs.close();
        stmt.close();
        conn.close();
        
    %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body></body>
    </html>
    报错情况:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 7 in the jsp file: /NewFile.jsp
    Syntax error on token "Connection", @ expected
    4: import="java.sql.*"%>
    5: 
    6:     <%  
    7:     private Connection getConn() {
    8:         try {
    9:             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    10:              String url = "jdbc:sqlserver://localhost:1433;databaseName=exam;";
    An error occurred at line: 7 in the jsp file: /NewFile.jsp
    Syntax error, insert "enum Identifier" to complete EnumHeaderName
    4: import="java.sql.*"%>
    5: 
    6:     <%  
    7:     private Connection getConn() {
    8:         try {
    9:             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    10:              String url = "jdbc:sqlserver://localhost:1433;databaseName=exam;";
    An error occurred at line: 7 in the jsp file: /NewFile.jsp
    Syntax error, insert "EnumBody" to complete BlockStatement
    4: import="java.sql.*"%>
    5: 
    6:     <%  
    7:     private Connection getConn() {
    8:         try {
    9:             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    10:              String url = "jdbc:sqlserver://localhost:1433;databaseName=exam;";
    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:457)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.
    --------------------------------------------------------------------------------Apache Tomcat/7.0.26
      

  7.   

    页面上加上import="java.sql.*",另外数据库的驱动JAR包不是你直接放到WEB-INF下的,是要导到classpath下的
      

  8.   

    页面最上方有
       <%@ page contentType="text/html; charset=utf-8" language="java" 
    import="java.sql.*"%>环境变量CLASSPATH下配置的是
    .;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;.;C:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs\sqljdbc.jar
    前两个是配置的JDK,后面的是SQLJDBC。
      

  9.   

    lz不要在<%%>里面写函数,可以写在bean里或直接把函数里的内容提出来,以求控制层与表现层分离。
    真要写的话写在<%! %>里,加个叹号。
    去查看下驱动的jar包,看看class.forName("**");参数里的路径在jar包里有没有对应的类,如果有的话,驱动就是对的。CLASSPATH里有一个.;就可以阿,写在最前面。