zoukankan      html  css  js  c++  java
  • 简单封装JDBC

    package com.sunshine.frimework.tool;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    /**
     *
     * @author WangChao
     * JDBC的编码步骤
     * 1:加载数据库驱动
     * 2:创建并获取数据库连接
     * 2:创建jdbc statement对象
     * 4:设置sql语句的参数(使用preparedStatement)
     * 5:通过statement执行sql并获取结果
     * 6:对sql执行结果进行解析处理
     * 7:释放资源(resultSet,preparedstatement,connection)
     *
     */

    public class JdbcUtil {
        //定义连接变量
        private Connection conn = null;
        //定义用于运行sql语句声明stmt变量
        private Statement stmt = null;
        //定义结果集变量
        private ResultSet rs = null;
        
        //获取连接
        private void getConn(){
            try {
                //添加驱动
                Class.forName("com.mysql.jdbc.Driver");
                System.out.println("添加驱动成功!!!");
                try {
                    //获取链接
                    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "15238566442");
                    stmt = conn.createStatement();
                } catch (SQLException e) {
                    //输出异常信息
                    e.printStackTrace();
                }
            } catch (ClassNotFoundException e) {
                //输出异常信息
                e.printStackTrace();
            }
        }
        
        //关闭
        private void close(){    
                try {
                    if(rs != null){
                        rs.close();
                    }
                    if(stmt != null){
                        stmt.close();
                    }
                    if(conn != null){
                        conn.close();
                    }
                } catch (SQLException e) {
                    //输出异常信息
                    e.printStackTrace();
                }        
        }
        
        //更新
        public boolean update(String sql){
            getConn();
            try {
                stmt.executeUpdate(sql);
                return true;
            } catch (Exception e) {
                //输出异常信息
                e.printStackTrace();
                return false;
            }finally{
                close();
            }        
        }
        
        //获取数据数目
        public int dataCount(String sql){
            getConn();
            try {
                rs = stmt.executeQuery(sql);
                rs.next();
                return rs.getInt(1);    
            } catch (Exception e) {
                //输出异常信息
                e.printStackTrace();
                return 0;
            }finally{
                close();
            }        
        }
        
        //查询
        public List<Map<String,Object>> query(String sql){
            System.out.println("执行的SQL语句是:"+sql);
            List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
            getConn();
            try {
                rs = stmt.executeQuery(sql);
                //结构化数据对象
                ResultSetMetaData rsmt = rs.getMetaData();
                //列数
                int count = rsmt.getColumnCount();
                //存储所有列的名字
                String []nameArr = new String[count];
                for(int i = 0;i<nameArr.length;i++){
                    //getColumnName()方法内的变量值是从1开始的
                    nameArr[i] = rsmt.getColumnName(i+1);
                }
                //判断是否是有下一个
                while(rs.next()){
                    //声明并实例化map
                    Map<String,Object> map = new HashMap<String,Object>();
                    for(int i = 0;i<nameArr.length;i++){
                        //把数据列名和数据都放进到map里
                        map.put(nameArr[i], rs.getString(nameArr[i]));
                    }
                    list.add(map);
                }
            } catch (Exception e) {
                //输出异常信息
                e.printStackTrace();
            }
            return list;
        }
    }

  • 相关阅读:
    css相关
    杂题
    vuesheng生命周期
    box-sizing
    js正则学习
    浏览器加载解析过程
    Sass学习笔记
    jQuery与原生js实现banner轮播图
    jq-animate实现返回顶部效果
    jq-animate
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/5971557.html
Copyright © 2011-2022 走看看