两亩三分地

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  17 随笔 :: 20 文章 :: 2 评论 :: 0 Trackbacks
我们都知道一个数据系统的核心就是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;
在后面的文章中,会详细解释。

posted on 2009-09-28 16:24 Chucky 阅读(496) 评论(2)  编辑  收藏

评论

# re: Blog系统开发 5. JDBC的基本操作与DbUtils的使用 2009-12-22 03:20 冰城浪子
学习的是v512的博客项目,和你的代码一样 就是在这出现错误, QueryRunner qr = DbHelper.getQueryRunner();
我在MyEclipse下开发的,总是有问题
在Netbeans下使用时 没有一点的错误,请指教一下 ,谢谢了
调了半天也没有弄好,急!!!!!!!!!  回复  更多评论
  

# re: Blog系统开发 5. JDBC的基本操作与DbUtils的使用 2009-12-22 17:28 Chucky
出现什么错误呢? 报错的信息是什么呢?
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问