Servlet+JDBC 例子
上一篇 / 下一篇 2012-03-01 23:14:28 / 个人分类:JAVA
Step1:编写CreateDBServlet
package org.sunxin.ch04.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CreateDBServlet extends HttpServlet
{
private String url;
private String user;
private String password;
public void init() throws ServletException
{
String driverClass = getInitParameter("driverClass");
url = getInitParameter("url");
user = getInitParameter("user");
password = getInitParameter("password");
try
{
Class.forName(driverClass);
}
catch (ClassNotFoundException ce)
{
throw new ServletException("加载数据库失败!");
}
}
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
Connection conn = null;
Statement stmt = null;
try
{
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
stmt.executeUpdate("drop database if exists bookstore");
stmt.executeUpdate("create database bookstore");
stmt.executeUpdate("use bookstore");
stmt.executeUpdate("create table bookinfo(id int not null primary
key, title varchar(50) not null, author varchar(50) not null,
bookconcern varchar(100) not null, publish_date DATE not null, price
FLOAT(4, 2) not null, amount SMALLINT, remark varchar(200))");
stmt.addBatch("insert into bookinfo values(1, 'Java Web 开发详解', '孙鑫', '电子工业出版社', '2004-4-20', 99.00, 35, null)");
stmt.addBatch("insert into bookinfo values(2, 'Struts 2 深入详解', '孙鑫', '电子工业出版社', '2008-6-15', 79.00, 20, null)");
stmt.addBatch("insert into bookinfo values(3, 'Servlet/JSP深入详解', '孙鑫', '电子工业出版社', '2008-7-1' , 79.00, 10, null)");
stmt.executeBatch();
resp.setContentType("text/html;charset=GBK");
PrintWriter ut = resp.getWriter();
out.println("数据库创建成功!");
out.close();
}
catch(SQLException se)
{
throw new ServletException(se);
}
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;
}
}
}
}
放在D:\servlet\ch04\src中。
Step2 编译
javac -d ..\classes CreateDBServlet.java
Step3 部署 web.xml
<?xml version="1.0" encoding="gb2312"?>
<web-app>
<servlet>
<servlet-name>CreateDBServlet</servlet-name>
<servlet-class>
org.sunxin.ch04.servlet.CreateDBServlet
</servlet-class>
<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</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>admin</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CreateDBServlet</servlet-name>
<url-pattern>/createdb</url-pattern>
</servlet-mapping>
</web-app>
Step4 配置Web应用
在%CATALINA_HOME%\conf\Catalina\localhost目录下建立ch04.xml
<Context docBase="D:\servlet\ch04" reloadable="true">
Step5:配置JDBC驱动
在d:\servlet\ch04\WEB_INF下建立目录lib
把驱动放在其中。
相关阅读:
- Servlet 总结 (relaxbod, 2011-7-27)
TAG: Servlet