zoukankan      html  css  js  c++  java
  • JDBC工具类

    有增删改查数据库的功能

    使用时只需要改一下对应的数据库用户名,数据库密码,数据库名字,服务器IP地址即可。一次编程终身受益。

    package util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 数据库连接工具类
     * @author Administrator
     *
     */
    public class JDBCUtil {
        private static final String DB_USER_NAME="root";//数据库用户名
        private static final String DB_PASSWORD="root";//数据库密码
        private static final String DB_NAME="user_management";//数据库名称
        private static final String IP="127.0.0.1";//服务器IP地址
        private static final String URL="jdbc:mysql://"+IP+":3306/"+DB_NAME;//mysql连接
        
        private static Connection conn;//创建连接对象(路)
        private static Statement stmt;//执行命令的对象(执行sql语句)(人)
        private static ResultSet rs;//保存select之后查询结果的数据的对象(车)
        
        /**
         * 获取数据库连接对象Connection
         * @return
         * @throws ClassNotFoundException
         * @throws SQLException
         */
        private static Connection getCon() throws ClassNotFoundException, SQLException{
            //加载MySql驱动
            Class.forName("com.mysql.jdbc.Driver");
            if(conn==null||conn.isClosed()){
                conn=DriverManager.getConnection(URL, DB_USER_NAME, DB_PASSWORD);
            }
            return conn;//java单例模式可以让代码更优秀
        }
        
        /**
         * 获得statement对象用于执行Sql语句
         * @return
         * @throws ClassNotFoundException
         * @throws SQLException
         */
        private static Statement openStmt() throws ClassNotFoundException, SQLException{
            stmt=getCon().createStatement();
            return stmt;
        }
        
        
        /**
         * 执行数据库的增(insert),删(delete),改(update)操作
         * @param sql
         * @return
         */
        public static int executeSQL(String sql){
            int i=0;
            try {
                i=openStmt().executeUpdate(sql);//执行sql语句
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                //关闭数据库相关对象
                close();
                
            }
            
            return i;
        }
        
        
        /**
         * 执行数据库查询(select)的操作
         * @param sql
         * @return
         */
        public static ResultSet search(String sql){
            try {
                rs=openStmt().executeQuery(sql);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rs;
        }
        
        
        /**
         * 关闭数据库的方法
         */
        public static void close(){
            //先关车,再关人,最后关路
            try {
                if(rs!=null)
                    rs.close();//关闭ResultSet(车)
                if(stmt!=null)
                    stmt.close();//关闭Statement对象(人)
                if(conn!=null)
                    conn.close();//关闭Connection对象(路)
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
    }
  • 相关阅读:
    RN-Android构建失败:Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'AwesomeProject'.
    Android更新包下载成功后不出现安装界面
    真机调试: The application could not be installed: INSTALL_FAILED_TEST_ONLY
    react native 屏幕尺寸转换
    Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值
    React Native安卓真机调试
    git提交代码报错Permission denied, please try again
    The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
    命令行设置快捷命令
    Linux 常用指令
  • 原文地址:https://www.cnblogs.com/lumc5/p/15249922.html
Copyright © 2011-2022 走看看