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 }
    
     
    
     
    
  • 相关阅读:
    FW : Unit of Measure related settings in SAP
    SAP PCA: 转移价格的确定
    SAP 关于贸易伙伴(Trading Partner)区分关联方/非关联方/子公司/第三方
    FSV tables in S/4 HANA OB58 , S_E38_98000088
    SAP Profit Center Table Data
    服务器搭建网站完整教程(宝塔面板+wordpress)
    运营
    undefined reference to `std::cout'等错误
    [c++][chromium]C++做与不做 C++ Dos and Don'ts
    [git]快速迁移git仓库
  • 原文地址:https://www.cnblogs.com/zhangmenghui/p/10696024.html
Copyright © 2011-2022 走看看