Blog系统开发 5. JDBC的基本操作与DbUtils的使用

Blog系统开发 5. JDBC的基本操作与DbUtils的使用
我们都知道一个数据系统的核心就是JDBC的编程,对数据进行操作,主要包括添加,删除,更新以及查询。
在对数据进行操作之前首先要做的是:
   
    1.加载jdbc驱动程序;
    2.建立到指定数据库的连接(连接池/数据源);
    3.提交数据库操作命令;
    4.取得结果。

下面看一下BlogServlet中关于add方法中的 code5-1
 1
 1  private   void  add(HttpServletRequest request, HttpServletResponse response)
 2               throws  ServletException, IOException{
 3          response.setContentType( " text/html;charset=UTF-8 " );
 4          request.setCharacterEncoding( " UTF-8 " );
 5 
 6          String title  =  request.getParameter( " title " );
 7          String content  =  request.getParameter( " content " );
 8          String categoryId  =  request.getParameter( " category " );
 9 
10          String sql  =    " insert into blog(title,content,category_id,date) values(?,?,?,now()) " ;
11          String params[]  =  {title,content,categoryId};
12          QueryRunner qr  =  DbHelper.getQueryRunner();
13           int  result  =   0 ;
14 
15           try  {
16            result  =  qr.update(sql, params);
17          }  catch  (SQLException ex) {
18              Logger.getLogger(BlogServlet. class .getName()).log(Level.SEVERE,  null , ex);
19          }
20      }

在后面的文章中我们会提到apache提供的commons-dbutils-1.2jar有点小问题,这个我们以后还会提到。

由于每次对jdbc编程少不了建立数据源,获取数据源,建立连接的工作,所以这里再提供一个辅助类DbHelper来完成以上工作。
DbHelper.java (code 5-2)
 1  package  com.blog.utils;
 2 
 3  import  java.util.logging.Level;
 4  import  java.util.logging.Logger;
 5  import  javax.naming.Context;
 6  import  javax.naming.InitialContext;
 7  import  javax.naming.NamingException;
 8  import  javax.sql.DataSource;
 9  import  org.apache.commons.dbutils.QueryRunner;
10 
11  /**
12   *
13   *  @author  Chucky
14    */
15  public   class  DbHelper {
16 
17       public   static  QueryRunner getQueryRunner() {
18          DataSource ds  =   null ;
19          Context context  =   null ;
20           try  {
21              context  =   new  InitialContext();
22              ds  =  (DataSource) context.lookup( " jdbc/Blog " );
23          }  catch  (NamingException ex) {
24              Logger.getLogger(DbHelper. class .getName()).log(Level.SEVERE,  null , ex);
25          }
26          QueryRunner qr  =   new  QueryRunner(ds);
27           return  qr;
28      }
29  }

现在通过DbUtils库和DbHelper辅助类的使用,原先code 5-1可以简化成
 1  private   void  add(HttpServletRequest request, HttpServletResponse response)
 2               throws  ServletException, IOException{
 3          response.setContentType( " text/html;charset=UTF-8 " );
 4          request.setCharacterEncoding( " UTF-8 " );
 5 
 6          String title  =  request.getParameter( " title " );
 7          String content  =  request.getParameter( " content " );
 8          String categoryId  =  request.getParameter( " category " );
 9 
10          String sql  =    " insert into blog(title,content,category_id,date) values(?,?,?,now()) " ;
11          String params[]  =  {title,content,categoryId};
12          QueryRunner qr  =  DbHelper.getQueryRunner();
13           int  result  =   0 ;
14 
15           try  {
16            result  =  qr.update(sql, params);
17          }  catch  (SQLException ex) {
18              Logger.getLogger(BlogServlet. class .getName()).log(Level.SEVERE,  null , ex);
19          }
20      }
QueryRunner类是DbUtils的核心类,只要通过query()方法对数据查询或update()对数据删除delete/添加insert/更新update;
在后面的文章中,会详细解释。

你可能感兴趣的:(Blog系统开发 5. JDBC的基本操作与DbUtils的使用)