数据库简单工具封装,查询,更新,分页的要单独写一个查询,多多指教

来源:互联网 发布:前锦网络信息技术公司 编辑:程序博客网 时间:2024/06/04 19:36
public class DBUtil {/** * 获取数据库连接 */private static Connection getConnection(){ String url = "jdbc:mysql://localhost:3306/test1"; String user = "root"; String password = "root";  String driverClass ="com.mysql.jdbc.Driver"; Connection con = null;  try { try {Class.forName(driverClass);} catch (ClassNotFoundException e) {System.out.println("驱动加载失败");e.printStackTrace();}con = DriverManager.getConnection(url, user, password);} catch (SQLException e) {e.printStackTrace();}  return con;}/** * 关闭数据库资源 */public static void close(Connection con ,PreparedStatement ps,ResultSet rs){if(con!=null){try {con.close();} catch (SQLException e) {e.printStackTrace();}}if(ps!=null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}/** * 获取查询数据 */public static List<Map<String,Object>> getData(String sql ,Object...arrays){List<Map<String,Object>>  list = new ArrayList<Map<String,Object>>();Connection con =  getConnection();PreparedStatement ps=null;ResultSet rs = null;try { ps = con.prepareStatement(sql);  if(arrays!=null){ for(int i=0;i<arrays.length;i++){ ps.setObject(i+1, arrays[i]); } }  rs = ps.executeQuery();  int size = rs.getMetaData().getColumnCount();  while(rs.next()){ Map<String,Object> map = new HashMap<String, Object>(); for(int i=0;i<size;i++){//每一行作为一个map String columnName = rs.getMetaData().getColumnLabel(i+1); //获取查询结果的字段名称Object columnValue = rs.getObject(i+1);//字段名称对应的值map.put(columnName, columnValue);  } list.add(map);  }} catch (SQLException e) {e.printStackTrace();}finally{close(con,ps,rs);}return list;}/** * 更新数据(增,删,改) */public static void updateData(String sql ,Object...arrays){Connection con = getConnection();PreparedStatement ps=null;if(con!=null){try { ps = con.prepareStatement(sql);if(ps!=null){if(arrays!=null){for(int i=0;i<arrays.length;i++)//设置sql语句中的参数值ps.setObject(i+1, arrays[i]);}ps.executeUpdate();}else{System.out.println("语句执行失败");}} catch (SQLException e) {e.printStackTrace();}finally{close(con,ps,null);}}}}


0 0