initservlet.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 127 行

JAVA
127
字号
package example;import java.io.PrintWriter;import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.SQLException;import javax.sql.DataSource;import javax.naming.InitialContext;import javax.naming.Context;import javax.naming.NamingException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * The InitServlet initializes the database. * */public class InitServlet extends HttpServlet {  /**   * The DataSource for the table.   */  private DataSource _ds = null;  /**   * Sets the data source.   */  public void setDataSource(DataSource ds)  {    _ds = ds;  }  /**   * Initializes the reference to the CourseBean home interface.   */  public void init()    throws ServletException  {    try {      if (_ds == null)	assemble();      Connection conn = _ds.getConnection();      try {	Statement stmt = conn.createStatement();	try {	  ResultSet rs = stmt.executeQuery("SELECT id FROM jdbc_basic_brooms");	  if (rs.next()) {	    rs.close();	    stmt.close();	    return;  // already initialized	  }	} catch (SQLException e) {	}	stmt.executeUpdate("CREATE TABLE jdbc_basic_brooms (" +	                   "  id INTEGER PRIMARY KEY auto_increment," +	                   "  name VARCHAR(128)," +	                   "  cost INTEGER" +	                   ")");	stmt.executeUpdate("INSERT INTO jdbc_basic_brooms (name, cost) " +			   "VALUES ('firebolt', 4000)");	stmt.executeUpdate("INSERT INTO jdbc_basic_brooms (name, cost) " +			   "VALUES ('nimbus 2001', 500)");	stmt.executeUpdate("INSERT INTO jdbc_basic_brooms (name, cost) " +			   "VALUES ('nimbus 2000', 300)");	stmt.executeUpdate("INSERT INTO jdbc_basic_brooms (name, cost) " +			   "VALUES ('cleansweep 7', 150)");	stmt.executeUpdate("INSERT INTO jdbc_basic_brooms (name, cost) " +			   "VALUES ('cleansweep 5', 100)");	stmt.executeUpdate("INSERT INTO jdbc_basic_brooms (name, cost) " +			   "VALUES ('shooting star', 50)");	stmt.close();      } finally {	conn.close();      }    } catch (SQLException e) {      throw new ServletException(e);    }  }  /**   * Assembles the DataSource dependency when the container does   * not support servlet dependency injection.   */  private void assemble()    throws ServletException  {    try {      String dataSourceName = getInitParameter("data-source");      if (dataSourceName == null)	dataSourceName = "jdbc/basic";      Context ic = new InitialContext();	      _ds = (DataSource) ic.lookup("java:comp/env/" + dataSourceName);      if (_ds == null)	throw new ServletException(dataSourceName + " is an unknown data-source.");    } catch (NamingException e) {      throw new ServletException(e);    }  }  /**   *    */  public void service(HttpServletRequest req, HttpServletResponse res)    throws java.io.IOException, ServletException  {    throw new UnsupportedOperationException();  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?