zoukankan      html  css  js  c++  java
  • JDBC工具类 访问数据库 增删改查CRUD的通用方法

      1 package com.zmh.util;
      2 
      3 import java.sql.*;
      4 import java.util.ArrayList;
      5 import java.util.HashMap;
      6 import java.util.List;
      7 import java.util.Map;
      8 /**
      9  * JDBC工具类
     10  */
     11 public class Util1 {
     12     //加载驱动
     13     static {
     14         try {
     15             Class.forName("com.mysql.jdbc.Driver");
     16         } catch (ClassNotFoundException e) {
     17             e.printStackTrace();
     18         }
     19     }
     20     //获得连接
     21     public static Connection getConnection(){
     22         try {
     23             DriverManager.getConnection("jdbc:mysql://localhost:3306/qy97?characterEnconding=utf-8","root","root");
     24         } catch (SQLException e) {
     25             e.printStackTrace();
     26         }
     27         return null;
     28     }
     29     /** 增删改的通用方法
     30      * @param String sql  要执行的sql
     31      * @param Object[] obj    对象类型的数组  里面存放着 sql执行的占位符参数
     32      *              【name,age,id】
     33      *                【id】
     34      *               【name,age】
     35      *         Object... 可变参数
     36      * */
     37     public static boolean executeUpdate(String sql,Object... args){
     38         Connection conn = null;
     39         PreparedStatement ps = null;
     40         try {
     41             conn = getConnection();
     42             ps = conn.prepareStatement(sql);
     43             //有参数
     44             for(int i=0;i<args.length;i++){
     45                 ps.setObject(i+1,args[i]);
     46             }
     47             //执行sql语句
     48             int i = ps.executeUpdate();
     49             //返回  true
     50             return i>0;
     51         } catch (SQLException e) {
     52             e.printStackTrace();
     53         }finally{
     54             //关闭资源
     55             close(conn,ps,null);
     56         }
     57         return false;
     58     }
     59     /**
     60      *  查询的通用方法
     61      * @param sql;
     62      * @param args;
     63      * @return
     64      * */
     65     public static List<Map<String,Object>> executeQuery(String sql,Object... args){
     66         Connection conn = null;
     67         PreparedStatement ps = null;
     68         ResultSet rs = null;
     69         try {
     70             conn = getConnection();
     71             ps = conn.prepareStatement(sql);
     72             //有可能有参数
     73             for(int i=0;i<args.length;i++){
     74                 ps.setObject(i+1,args[i]);
     75             }
     76             //执行sql语句
     77             rs = ps.executeQuery();
     78             //创建List集合
     79             List<Map<String, Object>> list = new ArrayList<>();
     80             //获取本次查询结果集有多少列
     81             int count = rs.getMetaData().getColumnCount();
     82             //while循环
     83             while(rs.next()){
     84                 //创建Map集合   获取一个数据封装成一个Map集合
     85                 Map<String, Object> map = new HashMap<>();
     86                 //for循环  遍历所有的列
     87                 for(int i=0;i<count;i++){
     88                     //获取本次查询结果集的列名
     89                     String name = rs.getMetaData().getColumnLabel(i + 1);
     90                     map.put(name,rs.getObject(name));
     91                 }
     92                 //把所有的map集合添加到List集合中
     93                 list.add(map);
     94             }
     95             //返回值
     96             return list;
     97         } catch (SQLException e) {
     98             e.printStackTrace();
     99         }finally{
    100             //关闭资源
    101             close(conn,ps,rs);
    102         }
    103         return null;
    104     }
    105     /**
    106      *  关闭资源的通用方法
    107      * */
    108     public static void close(Connection conn,Statement stat,ResultSet rs){
    109         try{
    110             if(rs!=null){
    111                 rs.close();
    112             }
    113             if(stat!=null){
    114                 stat.close();
    115             }
    116             if(conn!=null){
    117                 conn.close();
    118             }
    119         }catch(Exception e){
    120             e.printStackTrace();
    121         }
    122     }
    123 }
    
     
    
     
    
  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1036. Boys vs Girls (25)
    1035 Password (20)
    1027 Colors in Mars (20)
    1009. Product of Polynomials (25)
    1006. Sign In and Sign Out
    1005 Spell It Right (20)
    1046 Shortest Distance (20)
    ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件
    IIS7.0上传文件限制的解决方法
  • 原文地址:https://www.cnblogs.com/zhangmenghui/p/10696024.html
Copyright © 2011-2022 走看看