• 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 }
    
     
    
     
    
  • 相关阅读:
    成功连上数据库顿感世界美好许多
    MySQL数据库基本命令
    杭电1004 Let the Balloon Rise
    大数学习笔记
    安卓传感器开发之指南针
    java Class文件内部结构解析
    mysq数据库实战小型管理系统
    JSplitPane分隔线的用法
    swing 菜单+右键菜单+二级菜单实现
    input type=file 上传文件,同一个文件第二次上传无反应
  • 原文地址:https://www.cnblogs.com/zhangmenghui/p/10696024.html
Copyright © 2020-2023  润新知