commons-DBUtils使用方式简介 2

SQL Java MySQL JDBC Bean 
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.   }   

你可能感兴趣的:(DbUtils)