05. JDBC 在Servlet中的应用


JDBC 在 Servlet 中的应用,用法基本等同于在Java SE中的应用;
一般来说实际与数据库交互使用Servlet来处理,之后将结果集转发给JSP生成响应,对于数据库的连接参数,可以储存在一个类中,方便多个Model进行调用,同时方便数据库连接参数的修改;

以下一个简单的示例:

DataAccessConfig.java:储存数据库连接参数,可以将该类实现为一个工厂类,以便分为各套连接参数的灵活调用;
public class DataAccessConfig{
    private String dirver = "com.mysql.jdbc.Driver";
    private String url = "jdbc:mysql//localhost/demo";
    private String user = "root";
    priavte String password = "123";
    public String getDriver(){ retrun this.driver};
    public String getUrl(){ retrun this.Url};
    public String getUser(){ retrun this.user};
    public String getPassword(){ retrun this.password};
}
DataAccess.java:处理数据库逻辑的Model Servlet
@WebServlet("/DatabaseAccess")
public class DatabaseAccess extends HttpServlet {
    private DataAccessConfig config = null;
    public DataAccess(){
        super();
        config = new DataAccessConfig();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        Connection connection = null;
	    try{
            //执行数据库查询操作
            Class.forName(config.getDriver());
            connection = DriverManager.getConnection(config.getUrl(),config.getUser(),config.getPassword());
            Statement statement = conncection.createStatement();
            Resulset resultset = statement.executeQuery("select isbn,author,title,price from books");
            //将结果集转发到一个JSP页面生成响应页
            request.setAttribute("resultset",resultset);
            getServletContext().getRequestDispatcher("/showResultSet.jsp").forward(request,response);
            
            
        }catch(SQLException ex){
            getServletContext.log("SQLException",ex)
        }catch(Exception ex){
            getServletContext.log("Other Exception",ex)
        }finally{
            connection.close();
        }
    }
        
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
showResultSet.jsp   :显示数据库结果集

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%! ResultSet resultset = request.getAttribute("resultset"); %>    
<html>
<head><title>result set</title></head>
<body>
<% while(resultset.next()){ %>
    <p><%= resultset.getString("isbn")%> | 
       <%= resultset.getString("author")%> | 
       <%= resultset.getString("title")%> | 
       <%= resultset.getFloat("price")%> 
    </p>
<% } %>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值