zoukankan      html  css  js  c++  java
  • java数据库连接类,已经把数据库操作的方法都封装好了

      在这里分享一个已经封装好了的java数据库连接类,只要创建对象就可以实现数据库的增删改查操作,用过都说好。其实这个不是我自己写的,是一个理解和学习能力超高的朋友写的,他也很乐于分享交流,本人也深受他的影响和帮助。

      不说了,直接上代码。

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class DB {
        private String className; //驱动名
        private String url; //连接数据库的URL地址
        private String username; //数据库的用户名
        private String password; //数据库的密码
        private Connection con; //数据库连接对象
        private PreparedStatement pstm; //数据库预编译处理对象
        
        public DB(){
            className="com.mysql.jdbc.Driver";
            url="jdbc:mysql://localhost:3306/test";
            username="root";
            password="201321173083";
            try{
                Class.forName(className);
            }catch(ClassNotFoundException e){
                System.out.println("加载数据库驱动程序失败!");
                e.printStackTrace();
            }
        }
    
        public void getCon(){
            try {
                con=DriverManager.getConnection(url,username,password);
            } catch (SQLException e) {
                System.out.println("获取数据库连接失败!");
                e.printStackTrace();
            }
        }
        //对象数组。如:String[] obj = new String[]{"宾桀锋","201321173083"};
        public void doPstm(String sql,Object[] params){
            if(sql!=null && !sql.equals("")){
                System.out.println(sql);
                if(con==null)
                    getCon();
                try {
                    pstm=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
                    if(params==null){
                        params=new Object[0];
                    }
                    for(int i=0;i<params.length;i++){
                        pstm.setObject(i+1,params[i]);
                    }
                    pstm.execute();
                } catch (SQLException e) {
                    System.out.println("调用DB类中doPstm方法时出错!");
                    e.printStackTrace();
                }
            }
        }
        
        public ResultSet getRs(){
            try {            
                return pstm.getResultSet();
            } catch (SQLException e) {
                System.out.println("DB类中的getRs()方法出错!");
                e.printStackTrace();
                return null;
            }
        }    
        
        public int getUpdate(){
            try {
                return pstm.getUpdateCount();
            } catch (SQLException e) {            
                e.printStackTrace();
                return -1;
            }
        }
        
        public void closed(){
            try{
                if(pstm!=null)
                    pstm.close();
            }catch(Exception e){
                System.out.println("关闭pstm对象失败!");
            }
            try{
                if(con!=null)
                    con.close();
            }catch(Exception e){
                System.out.println("关闭con对象失败!");
            }
        }
        
    
    }

    有问题或不懂的请联系QQ:409169399。备注一下哦,要不然不加陌生人。

  • 相关阅读:
    ES6中的解构赋值
    一·京京得水
    localStorage,sessionStorage和cookie的区别
    mondodb和mysql的区别
    Win10 x64连接Oracle
    JFinal项目实践(了如股掌)7
    JFinal项目实践(了如股掌)6
    JFinal项目实践(了如股掌)5
    JFinal项目实践(了如股掌)4
    JFinal项目实践(了如股掌)3
  • 原文地址:https://www.cnblogs.com/sky230/p/5402498.html
Copyright © 2011-2022 走看看