包含分页的JDBC工具类

  1  包含分页的JDBC工具类
  2 包含分页的JDBC工具类
  3 package com.shxt.tool;
  4 import java.sql.Connection;
  5 import java.sql.DriverManager;
  6 import java.sql.ParameterMetaData;
  7 import java.sql.PreparedStatement;
  8 import java.sql.ResultSet;
  9 import java.sql.ResultSetMetaData;
 10 import java.sql.SQLException;
 11 import java.sql.Statement;
 12 import java.util.ArrayList;
 13 import java.util.HashMap;
 14 import java.util.Map;
 15 /**
 16  * @Author:何云龙
 17  * @Version:JDBC封装1.1 2012-11-29 下午06:38:55
 18  * @Description:jdbc的封装
 19  */
 20 public class DBUtil {
 21     private String url = "jdbc:mysql://localhost:3306/sduentdb";
 22     private String userName = "root";
 23     private String passWord = "root";
 24     private Connection conn = null;
 25     private Statement st = null;
 26     private PreparedStatement ps = null;
 27     private ResultSet rs=null;
 28     
 29     
 30     
 31     
 32     
 33     
 34     
 35     
 36     // 加载驱动,只加载一次即可
 37     static {
 38         try {
 39             // System.out.println("加载驱动正在进行");
 40             Class.forName("com.mysql.jdbc.Driver");
 41         } catch (ClassNotFoundException e) {
 42             System.out.println("加载驱动遇到异常");
 43             e.printStackTrace();
 44         }
 45     }
 46     public Connection getConnection() {
 47         // 创建连接
 48         try {
 49             conn = DriverManager.getConnection(url, userName, passWord);
 50             return conn;
 51         } catch (SQLException e) {
 52             System.out.println("创建连接出现异常!!");
 53             e.printStackTrace();
 54         }
 55         return null;
 56     }
 57     public int update(String sql) {
 58         // row是指受影响的行数
 59         int row = -1;
 60         try {
 61             // 当前连接如果是空或者被关闭,需要重新创建一个连接
 62             if (conn == null || conn.isClosed()) {
 63                 conn = getConnection();
 64             }
 65             st = conn.createStatement();
 66             row = st.executeUpdate(sql);
 67         } catch (SQLException e) {
 68             e.printStackTrace();
 69         }finally{
 70             
 71             //关闭资源
 72             release();
 73         }
 74         return row;
 75     }
 76     public int update(String sql, Object[] obj) {
 77         int row = -1;
 78         // 当前连接如果是空或者被关闭,需要重新创建一个连接
 79         try {
 80             if (conn == null || conn.isClosed()) {
 81                 conn = getConnection();
 82             }
 83             ps = conn.prepareStatement(sql);
 84             // 参数结构数据对象
 85             ParameterMetaData pmd = ps.getParameterMetaData();
 86             int varCount = pmd.getParameterCount();
 87             // 给sql语句中的问号?附上值
 88             for (int i = 0; i < varCount; i++) {
 89                 ps.setObject(i + 1, obj[i]);
 90             }
 91             row = ps.executeUpdate();
 92         } catch (SQLException e) {
 93             e.printStackTrace();
 94         }finally{
 95             
 96             //关闭资源
 97             release();
 98         }
 99         return row;
100     }
101     public ArrayList<Map<String, Object>> queryToList(String sql) {
102         ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
103         // 当前连接如果是空或者被关闭,需要重新创建一个连接
104         try {
105             if (conn == null || conn.isClosed()) {
106                 conn = getConnection();
107             }
108             st = conn.createStatement();
109             rs = st.executeQuery(sql);
110             ResultSetMetaData rsmd = rs.getMetaData();
111             int col = rsmd.getColumnCount();
112  
113             while (rs.next()) {
114                 Map<String, Object> map = new HashMap<String, Object>();
115                 for (int i = 1; i <= col; i++) {
116                     map.put(rsmd.getColumnName(i),
117                             rs.getObject(rsmd.getColumnName(i)));
118                 }
119                 list.add(map);
120                 
121             }
122         //    System.out.println(list);
123             return list;
124             
125         } catch (Exception e) {
126             e.printStackTrace();
127         }finally{
128             
129             //关闭资源
130             release();
131          
132         }
133         return null;
134     }
135     
136     
137     public ArrayList<Map<String, Object>> queryToList(String sql,String[] str) {
138         ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
139         // 当前连接如果是空或者被关闭,需要重新创建一个连接
140         try {
141             if (conn == null || conn.isClosed()) {
142                 conn = getConnection();
143             }
144             ps = conn.prepareStatement(sql);
145             // 参数结构数据对象
146             ParameterMetaData pmd = ps.getParameterMetaData();
147             int varCount = pmd.getParameterCount();
148             // 给sql语句中的问号?附上值
149             for (int i = 0; i < varCount; i++) {
150                 ps.setString(i + 1, str[i]);
151             }
152             
153             rs = ps.executeQuery();
154             ResultSetMetaData rsmd = rs.getMetaData();
155             int col = rsmd.getColumnCount();
156             while (rs.next()) {
157                 Map<String, Object> map = new HashMap<String, Object>();
158                 for (int i = 1; i <= col; i++) {
159                     map.put(rsmd.getColumnName(i),
160                             rs.getObject(rsmd.getColumnName(i)));
161                 }
162                 list.add(map);
163                 
164             }
165             return list;
166         } catch (Exception e) {
167             e.printStackTrace();
168         }finally{
169             
170             //关闭资源
171             release();
172         }
173         return null;
174     }
175     
176     
177     private int pageSize;//页容量
178     private int rowsCount;//总记录数
179     private int start;//开始位置
180     private int end;//结束位置
181     private int pageNow;//当前页
182     public static int pageCount;//总页数
183     
184     
185     public  ArrayList<Map<String, Object>>  getPage(int pageSize,int pageNow,String sql){
186         rowsCount=queryToList(sql).size();//获取到总记录数
187         pageCount=rowsCount%pageSize==0?rowsCount/pageSize:(rowsCount/pageSize+1);//获取到总页数
188         start=pageNow*pageSize-pageSize;//开始位置
189         
190         String sqlPage="select * from  ("+sql+") as t limit "+start+" , "+pageSize;
191         
192          ArrayList<Map<String, Object>> list=queryToList(sqlPage);
193         
194         return list;
195         
196     }
197  
198     
199     
200     
201     
202     
203     
204     
205     
206     //关闭资源  释放资源
207     public void release(){
208         
209         try {
210             
211             if(rs!=null){
212                 rs.close();
213             }
214         } catch (SQLException e) {
215             e.printStackTrace();
216         }
217         
218         try {
219             if(st!=null){
220                 st.close();
221             } 
222         } catch (SQLException e) {
223             e.printStackTrace();
224         }
225         try {
226             if(ps!=null){
227                 ps.close();
228             }
229         } catch (SQLException e) {
230             e.printStackTrace();
231         }
232         try {
233             if(conn!=null){
234                 conn.close();
235             }
236         } catch (SQLException e) {
237             e.printStackTrace();
238         }
239         
240         
241      
242         
243     }
244     
245      
246 }

 

posted @ 2016-07-26 11:24  箜篌浅醉  阅读(299)  评论(0编辑  收藏  举报