Java – DbUtils的用法,轉

來源:互聯網
上載者:User

DbUtils類

ResultSetHandler 介面
MapListHandler 類  (實現ResultSetHandler 介面)把從資料庫中查詢出的記錄 都 放到List  集合當中, List集合中每一個對象都是Map類型,可以根據這條記錄的欄位名讀出相對應的值.
BeanListHandler 類  (實現ResultSetHandler 介面)把從資料庫中的記錄 放到List集合中 ,List集合中每一個對象都是一個JavaBean類型的對象,可以根據get 方法得到值
QreryRunner類   執行SQL語名,其中一個參數為以上兩種類型的對象

import java.sql.Connection;import java.sql.SQLException;import java.util.List;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.ResultSetHandler;/** * 該類主要完成對資料庫的操作 *  */public class SqlUtil {private static String datasoucename ="java:comp/env/jdbc/exam";private  DataSource da;    private static sqlUtil sqlutil = null;    public static sqlUtil newInstance()    {    if(sqlutil == null) {    sqlutil = new sqlUtil();    }    return sqlutil;    }            public Connection getConnection() throws SQLException    {    synchronized (da) {return da.getConnection();}    }    /** * 構造方法,設定資料來源 * @param datasoucename */private sqlUtil() {init();}/** * 初始化資料來源的方法 */private void init() {try {Context ct = new InitialContext();this.da = (DataSource) ct.lookup(datasoucename);ct.close();} catch (NamingException e) {e.printStackTrace();}}/** * 對資料增刪改的方法,需要一個object的數組,資料是sql語句的預留位置 * @param sql * @param pring * @return */public boolean update(String sql, Object pring[]) {QueryRunner qu = new QueryRunner();int i = 0;boolean flag = false;try {i = qu.update(getConnection(),sql, pring);if(i>=0){flag = true;}} catch (SQLException e) {e.printStackTrace();}return flag;}/** * 對資料尋找的方法,需要一個objece的數組,資料是sql語句的預留位置,ResultSetHandler參數是你要把查詢出的資料轉換的類型 * 可以是一個javabean   (如:new BeanListHandler (JavaBean.class)或:new MapListHandler ) * @param sql * @param pring  參數數組可以為空白 * @param rsh * @return */public List query(String sql, Object pring[], ResultSetHandler rsh) {QueryRunner qu = new QueryRunner();List result = null;try {result = (List) qu.query(getConnection(),sql, pring, rsh);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return result;}}

調用:

/** * 刪除 * @return boolean * @param ItemPool的Id */public boolean deteItemPool(String ipId) {String sql1 = "delete from ItemPool where ipId =? ";//指定所需要的參數 數組Object[] pring = {ipId};//執行更新boolean result = sql.update(sql1, pring);return result;}
/** * 根據題庫Id尋找題庫的方法 */public ItemPool searchItemPoolById(String ipId) {String sql1 = "select * from ItemPool where ipId=?";//指定參數數組Object[] pring = {ipId};List list = sql.query(sql1, pring, new BeanListHandler(ItemPool.class));ItemPool itempool=(ItemPool)list.get(0);return itempool;}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.