commons-DBUtils使用方式簡介 2

1.使用commons DButils組件對數據庫進行查詢。
首先使用數據源以及本組件進行數據庫的鏈接,建立QueryRunner類型的對象。
使用數組,對sql語句中的佔位符進行填充。
建立MapListHandler類型對象,用於裝載每一條記錄。
全部的記錄都以List形式返回,使用代碼中所示結果,對記錄進行讀取。
Java代碼 複製代碼  收藏代碼
  1. public void doPost(HttpServletRequest request, HttpServletResponse response)   
  2.    throws ServletException, IOException {   
  3.   
  4.   response.setContentType("text/html;charset=utf-8");   
  5.   PrintWriter out = response.getWriter();   
  6.   out.print("Test AND I am so BORING!<br>");   
  7.   request.setCharacterEncoding("utf-8");   
  8.   Context context;   
  9.   try {   
  10.    context = new InitialContext();   
  11.    DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracleds");   
  12.    QueryRunner qr=new QueryRunner(ds);   
  13. //   String sql="select * from users";   
  14.    String sql="select * from users where id=? and name=?";   
  15.       
  16.    MapListHandler handler=new MapListHandler();   
  17.    String [] param={"2","meng"};   
  18. //   List list=(List)qr.query(sql,handler);   
  19.    List list=(List)qr.query(sql,param,handler);   
  20.       
  21.    for(int i=0;i<list.size();i++){   
  22.     Map map=(Map)list.get(i);   
  23.     out.println(map.get("id"));   
  24.     out.println(map.get("name"));   
  25.     out.print("<br>");   
  26.    }   
  27.       
  28.   } catch (NamingException e) {   
  29.      // TODO Auto-generated catch block   
  30.       e.printStackTrace();   
  31.   } catch (SQLException e) {   
  32.      // TODO Auto-generated catch block   
  33.      e.printStackTrace();   
  34.   }   
  35.     out.flush();   
  36.     out.close();   
  37.  }   
  38.   
  39. }  
public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html;charset=utf-8");
  PrintWriter out = response.getWriter();
  out.print("Test AND I am so BORING!<br>");
  request.setCharacterEncoding("utf-8");
  Context context;
  try {
   context = new InitialContext();
   DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
   QueryRunner qr=new QueryRunner(ds);
//   String sql="select * from users";
   String sql="select * from users where id=? and name=?";
   
   MapListHandler handler=new MapListHandler();
   String [] param={"2","meng"};
//   List list=(List)qr.query(sql,handler);
   List list=(List)qr.query(sql,param,handler);
   
   for(int i=0;i<list.size();i++){
    Map map=(Map)list.get(i);
    out.println(map.get("id"));
    out.println(map.get("name"));
    out.print("<br>");
   }
   
  } catch (NamingException e) {
     // TODO Auto-generated catch block
      e.printStackTrace();
  } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
  }
    out.flush();
    out.close();
 }

}



2.使用本組件對數據庫進行數據管理。包括「增刪改」。
最開始同樣,對數據庫進行鏈接,而後建立QueryRunner類型的對象,因爲對數據的管理不返回一個結果集,因此只返回一個int類型的變量。
同樣使用數組對sql語句中的佔位符進行填充。
最後根據返回的值的大小(和0比),來肯定是否成功執行本語句。
Java代碼 複製代碼  收藏代碼
  1. public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {   
  2.   
  3.   response.setContentType("text/html;charset=utf-8");   
  4.   PrintWriter out = response.getWriter();   
  5.   out.println("Test Again!");   
  6.   String sql="insert into users values(?,?) ";   
  7.   Context context;   
  8.   try {   
  9.    context = new InitialContext();   
  10.      
  11.   DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracleds");   
  12.   QueryRunner qr=new QueryRunner(ds);   
  13. //  MapListHandler handler=new MapListHandler();   
  14.   String [] params={"3","Zhang"};   
  15.   int i=qr.update(sql, params);   
  16.   if(i>0)   
  17.   {   
  18.    out.println("成功!");   
  19.   }   
  20.   else  
  21.   {   
  22.    out.println("Failed!");   
  23.   }   
  24.   } catch (NamingException e) {   
  25.    // TODO Auto-generated catch block   
  26.    e.printStackTrace();   
  27.   } catch (SQLException e) {   
  28.    // TODO Auto-generated catch block   
  29.    e.printStackTrace();   
  30.   }   
  31.  }  
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

  response.setContentType("text/html;charset=utf-8");
  PrintWriter out = response.getWriter();
  out.println("Test Again!");
  String sql="insert into users values(?,?) ";
  Context context;
  try {
   context = new InitialContext();
  
  DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
  QueryRunner qr=new QueryRunner(ds);
//  MapListHandler handler=new MapListHandler();
  String [] params={"3","Zhang"};
  int i=qr.update(sql, params);
  if(i>0)
  {
   out.println("成功!");
  }
  else
  {
   out.println("Failed!");
  }
  } catch (NamingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }



別外加:

Java代碼 複製代碼  收藏代碼
  1. import java.sql.Connection;    
  2. import java.sql.ResultSet;    
  3. import java.sql.ResultSetMetaData;    
  4. import java.sql.SQLException;    
  5. import java.sql.DriverManager;    
  6. import java.util.ArrayList;    
  7. import java.util.List;    
  8.   
  9. import org.apache.commons.dbutils.QueryRunner;    
  10. import org.apache.commons.dbutils.ResultSetHandler;    
  11. import org.apache.commons.dbutils.handlers.BeanListHandler;    
  12.   
  13. public class dbtest    
  14. {    
  15.   
  16.     infoBean bean = new infoBean();    
  17.   
  18.     BeanListHandler h = new BeanListHandler(bean.getClass());    
  19.     Connection connect = null;    
  20.     List result = new ArrayList();    
  21.   
  22.     try    
  23.     {    
  24.       Class.forName("com.mysql.jdbc.Driver");    
  25.       connect = DriverManager.getConnection(    
  26.           "jdbc:mysql://localhost/normaltest""root""root");    
  27.   
  28.            
  29.       QueryRunner run = new QueryRunner();    
  30.   
  31.       result = (ArrayList) run.query(connect,    
  32.           "SELECT username,age,money,usertime FROM info", h);    
  33.     } catch (Exception e)    
  34.     {    
  35.       // TODO Auto-generated catch block    
  36.       e.printStackTrace();    
  37.     }    
  38.   
  39.     return result;    
  40.   }   
相關文章
相關標籤/搜索