import java.io.*;
import java.sql.*;import javax.servlet.*;
import javax.servlet.http.*;public class CreateDB extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException 
{

  String driverClass=getInitParameter("driverClass");
  url=getInitParameter("driverClass"); 
  user=getInitParameter("user");
  password=getInitParameter("password");    try 
  { 
  Class.forName(driverClass); 
  }
  catch(ClassNotFoundException ce) 
  { 
  throw new UnavailableException("加载数据库驱动失败!"); 
  }
  
//--------------------------------------------------------------------------   
Connection conn=null;
Statement stmt=null;
try
{
conn=DriverManager.getConnection(url, user, password);
stmt=conn.createStatement();
stmt.executeUpdate("create database bookstore");
stmt.execute("use bookstore");
stmt.execute("create tableBookInfo(" 
  + "id INT not null primary key" 
  +"title VERCHAR(50)not null"
  + "author VACHAR(50) not null,"
  + "bookconcernVARCHAR(100) not null"
  + "publish_date not null" 
  + "price FAOT(4,2) not null,"
  + "amount SMALLINT,"
  + "reVARCHAR(200))ENGINE=InnoDB)" 
  ); 
stmt.addBatch("insert into values(1,'ddd','张','eee','2004-6-1',34.00,35,null)");
stmt.addBatch("insert into values(2,'fff','李','rrr','2005-3-1')");
stmt.addBatch("insert into values(3,''ggg','王','yyy','2006-10-1',78.00,10,null)");
stmt.executeBatch();
  
PrintWriter out=response.getWriter();
out.println("seccess!");
out.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
finally
{
if(stmt!=null)
{
try
{
stmt.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
stmt=null;
}
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
conn=null;
}
}
}

//   public void init() throws ServletException 
//   {
//   String driverClass=getInitParameter("driverClass");
//   url=getInitParameter("driverClass"); 
//   user=getInitParameter("user");
//   password=getInitParameter("password"); 
//
//   try 
//   { 
//   Class.forName(driverClass); 
//   }
//   catch(ClassNotFoundException ce) 
//   { 
//   throw new UnavailableException("加载数据库驱动失败!"); 
//   }
//   }
  
  private String url;
  private String user;
  private String password;
  
}
//web.xml
 <servlet>
   ……
    <init-param>
     <param-name>driverClass</param-name>
     <param-value>com.mysql.jdbc.Driver</param-value>
    </init-param>
    
    <init-param>
     <param-name>url</param-name>
     <param-value>jdbc:mysql://localhost:3306/mysql</param-value>
    </init-param>
    
    <init-param>
     <param-name>user</param-name>
     <param-value>root</param-value>
</init-param>

<init-param>
<param-name>password</param-name>
<param-value>1</param-value>
</init-param>
  </servlet>

解决方案 »

  1.   

    String driverClass=getInitParameter("driverClass");
         url=getInitParameter("driverClass"); 老大...参数取错了吧.......
      

  2.   

    String driverClass=getInitParameter("driverClass");
    url=getInitParameter("driverClass"); --->url=getInitParameter("url"); 
    还有要把具体的错误信息贴出来
      

  3.   

    错误信息是:
    HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjavax.servlet.ServletException: Servlet.init() for servlet CreateDB threw exception
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
    org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
    org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    java.lang.Thread.run(Unknown Source)root causejava.lang.NullPointerException
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Unknown Source)
    CreateDB.init(CreateDB.java:110)
    javax.servlet.GenericServlet.init(GenericServlet.java:211)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
    org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
    org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    java.lang.Thread.run(Unknown Source)note The full stack trace of the root cause is available in the Apache Tomcat/5.5.7 logs.
    Apache Tomcat/5.5.7
      

  4.   

    String driverClass=getInitParameter("driverClass");
    url=getInitParameter("driverClass"); 是读web.xml中的变量