zoukankan      html  css  js  c++  java
  • JDBC工具类完整版!

    package com.aaa.util;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * JDBC工具类?
     *      一、增删改的通用方法
     *      二、查询的通用方法
     *      三、关闭的通用方法
     */
    public class DBUtil {
    
        static {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
         public static Connection getConnection(){
             try {
                 return DriverManager.getConnection("jdbc:mysql://localhost:3306/qy66?characterEnconding=UTF-8", "root", "root");
             } catch (SQLException e) {
                 e.printStackTrace();
             }
             return null;
         }
         /** 增删改的通用方法
         * @paramString sql  要执行的sql
          * @paramObject[] obj    对象类型的数组  里面存放着 sql执行的占位符参数
          *               【name,age,id】
         *                【id】
          *               【name,age】
          *         Object... 可变参数
         * */
        public static boolean executeUpdate(String sql,Object... args){
            Connection conn = null;
            PreparedStatement ps = null;
            try {
                conn = getConnection();
                ps = conn.prepareStatement(sql);
    
                for (int i=0;i<args.length;i++){
                    ps.setObject(i+1,args[i]);
                }
                int i = ps.executeUpdate();
    
                if (i>0)return true;
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                //关闭
                close(conn,ps,null);
            }
            return false;
        }
    
        /**
         * c查询的通用方法
         * @param sql
         * @param args
         * @return
         */
        public static List<Map<String,Object>> executeQuery(String sql,Object... args){ //可变参数  Object... args
            Connection conn = null;
            PreparedStatement ps = null;
            ResultSet set = null;
            try {
                conn = DBUtil.getConnection();
                ps = conn.prepareStatement(sql);
                /* 有可能有参数 */
                for (int i=0;i<args.length;i++){
                    ps.setObject(i+1,args[i]);
                }
                /*执行*/
                set = ps.executeQuery();
                /*需要将所有数据都存放到 List中    每一行 用一个 map存放*/
                List<Map<String,Object>> list = new ArrayList<>();
                /*获取本次查询结果集有多少列*/
                int count = set.getMetaData().getColumnCount();
    
                while(set.next()){
                    Map<String, Object> map = new HashMap<>();//一行数据 用一个map 接收
                    /*
                    我们不用在乎数据库表中有几列
                    通过  getMetData().getColumnLabel() 获取列
                    因为用的map键值对集合  得到了列  就能得到相应的values值
    
                     */
                    for(int i=0;i<count;i++){
                        String name = set.getMetaData().getColumnLabel(i+1);
                        map.put(name,set.getObject(name));
                    }
                    /*将每行的map存放到 List中*/
                    list.add(map);
                }
                return list;
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                close(conn,ps,set);
            }
            return null;
        }
    
        /** 关闭的通用方法
        *       先进后出的原则
        * */
        private static void close(Connection conn,PreparedStatement st,ResultSet set){
            try {
                if(set!=null){
                    set.close();
                }
                if(st!=null){
                    st.close();
                }
                if(conn != null){
                    conn.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    
    }
  • 相关阅读:
    chmod命令详细用法
    mysql删除sql表添加别名及删除sql的注意事项
    bootstrap栅格系统进行偏移格式
    mysql中时间计算函数SQL DATE_SUB()用法
    阿里图标的应用教程
    jquery.cookie.js中$.cookie() 使用方法
    $.cookie()取值设置
    java中年月日的加减法,年月的加减法使用
    IMAP命令与分析
    Telnet IMAP Commands Note
  • 原文地址:https://www.cnblogs.com/ZXF6/p/10696421.html
Copyright © 2011-2022 走看看