zoukankan      html  css  js  c++  java
  • JDBC的crud通用方法

    package com.platform_db.dao.impl;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import com.platform_db.dao.IObjectDao;
    import com.platform_db.db.DBUtil;

    public class ObjectDaoImpl implements IObjectDao{
    public List<?> find(String sql,Object[] pars) throws Exception {
    PreparedStatement ps = null;
    ResultSet rs = null;

    Connection conn = DBUtil.openConnection();
    ps = conn.prepareStatement(sql);
    for (int i = 0;i < pars.length ; i++) {
    ps.setObject(i+1, pars[i]);
    }
    rs = ps.executeQuery();

    List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();

    ResultSetMetaData md = rs.getMetaData();
    int columnCount = md.getColumnCount();
    while( rs.next() ){
    Map<String , Object> map = new HashMap<String , Object>();
    for (int i = 1; i <= columnCount; i++) {
    map.put(md.getColumnName(i), rs.getObject(i));
    }
    data.add(map);
    }

    rs.close();
    ps.close();
    conn.close();

    return data;
    }

    public boolean exec(String sql, Object[] pars) throws Exception {
    Connection conn = DBUtil.openConnection();
    conn.setAutoCommit(false);

    PreparedStatement ps = conn.prepareStatement(sql);
    for (int i = 0;i < pars.length ; i++) {
    ps.setObject(i+1, pars[i]);
    }
    boolean flag = ps.execute();

    conn.commit();
    conn.setAutoCommit(true);
    ps.close();
    conn.close();
    return flag;
    }

    public int[] execBatch(String sql, List<Object[]> list) throws Exception {
    Connection conn = DBUtil.openConnection();
    conn.setAutoCommit(false);

    PreparedStatement ps = conn.prepareStatement(sql);
    for(Object[] pars : list){
    for (int i = 0;i < pars.length ; i++) {
    ps.setObject(i+1, pars[i]);
    }
    ps.addBatch();
    }

    int[] counts = ps.executeBatch();

    conn.commit();
    conn.setAutoCommit(true);
    ps.close();
    conn.close();

    return counts;
    }
    }

  • 相关阅读:
    Oracle exp/imp导出导入工具的使用
    导入导出数据语句小结
    改变一生的五句话
    给年轻工程师的十大忠告
    项目经理三步曲(项目经理成长版)
    写作、写程序的快乐和痛苦
    《Excel与VBA程序设计(mini版)》
    《3S新闻周刊》第三期发布: 解密Google Earth
    《Excel与VBA程序设计》进度(2006.3.8)
    Arc2Earth正式发布
  • 原文地址:https://www.cnblogs.com/lbblog/p/4705737.html
Copyright © 2011-2022 走看看