• 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;
    }
    }

  • 相关阅读:
    PagerIndicator主题样式修改
    写个Fragment方便的抽象基类 BaseFragment
    slidingMenu有时候需要关闭侧边栏
    通过构造方法传递数据
    三层ViewPager嵌套 的事件处理
    网络缓存的逻辑
    html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
    AJAX请求
    animation-name
    Sublime Text 2主要快捷键列表
  • 原文地址:https://www.cnblogs.com/lbblog/p/4705737.html
Copyright © 2020-2023  润新知