DBUtils工具的使用

package com.cnblogs.javalouvre.dao.impl;

import static com.cnblogs.javalouvre.common.ConnectionFactory.getConnection;
import static org.apache.commons.dbutils.DbUtils.closeQuietly;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;

import com.cnblogs.javalouvre.dao.UserDao;
import com.cnblogs.javalouvre.exception.DataAccessException;
import com.cnblogs.javalouvre.vo.User;

public class UserDaoImpl implements UserDao {

    @Override
    public void getLastInsertId(User user) {
        Connection conn = getConnection();
        try {
            int id = (new QueryRunner().insert(conn, "INSERT INTO T_USER(NAME, PWD) VALUES(?, ?)",
                    new ScalarHandler<Long>(), user.getName(), user.getPwd())).intValue();

            System.out.println("主键id: " + id);
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public int save(User user) {
        Connection conn = getConnection();
        try {
            return new QueryRunner().update(conn, "INSERT INTO T_USER(NAME, PWD) VALUES(?, ?)", user.getName(),
                    user.getPwd());
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public int modify(User user) {
        Connection conn = getConnection();
        try {
            return new QueryRunner().update(conn, "UPDATE T_USER SET NAME = ?, PWD = ? WHERE UID = ?", user.getName(),
                    user.getPwd(), user.getUid());
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public int remove(int uid) {
        Connection conn = getConnection();
        try {
            return new QueryRunner().update(conn, "DELETE FROM T_USER WHERE UID = ?", uid);
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public Object[] loadObjectArray(int uid) {
        Connection conn = getConnection();
        try {
            return new QueryRunner().query(conn, "SELECT UID, NAME, PWD FROM T_USER WHERE UID = ?", new ArrayHandler(),
                    uid);
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public User loadBean(int uid) {
        Connection conn = getConnection();
        try {
            return new QueryRunner().query(conn, "SELECT UID, NAME, PWD FROM T_USER WHERE UID = ?",
                    new BeanHandler<User>(User.class), uid);
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public List<User> loadBeanList() {
        Connection conn = getConnection();
        try {
            return new QueryRunner().query(conn, "SELECT UID, NAME, PWD FROM T_USER",
                    new BeanListHandler<User>(User.class));
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public int getTotal() {
        Connection conn = getConnection();
        try {
            return (new QueryRunner().query(conn, "SELECT COUNT(1) FROM T_USER", new ScalarHandler<Long>())).intValue();
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public Map<String, Object> loadMapData() {
        Connection conn = getConnection();
        try {
            return new QueryRunner().query(conn, "SELECT UID, NAME, PWD FROM T_USER WHERE UID = 1", new MapHandler());
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public List<Map<String, Object>> loadMapDataList() {
        Connection conn = getConnection();
        try {
            return new QueryRunner().query(conn, "SELECT UID, NAME, PWD FROM T_USER", new MapListHandler());
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }
    }

    @Override
    public List<String> loadColumnListHandler() {
        Connection conn = getConnection();
        try {
            return new QueryRunner().query(conn, "SELECT NAME FROM T_USER", new ColumnListHandler<String>());
        } catch (SQLException e) {
            throw new DataAccessException(e);
        } finally {
            closeQuietly(conn);
        }

    }

}

猜你喜欢

转载自blog.csdn.net/footprint01/article/details/83089621