zoukankan      html  css  js  c++  java
  • jdbc工具类2..0

    一、创建外部文件

    url=jdbc:mysql:///qy66
    use=root
    password=root
    driver=com.mysql.jdbc.Driver

    二、创建工具类

    package cn.zhouzhou;
    
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.net.URL;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    /*
     * jdbc2.0?
     * 
     *    一、配置文件
     *
         1.在SRC下创建文件 格式为properties  jdbc.properties
         2.写入
                 url=jdbc:mysql:///qy66 注意【这里的qy66】 是自己的数据库中有的 库!
                use=root
                password=root
                driver=com.mysql.jdbc.Driver 
         3.好处?
         这样写 可以直接在外部文件改变驱动、用户名、或是连接地址
                
           二、获得路径的方式?
                   1.读取文件        Properties pro01=new Properties();
                   2.获取文件路径    ClassLoader class01=工具类存在硬编码问题.class.getClassLoader();    classloader()类加载器!
                   3.通过getPath(); 提供文件路径
                   4.load(Reader reader)         以简单的线性格式从输入字符流读取属性列表(关键字和元素对)
                 5.getProperty(String key)     使用此属性列表中指定的键搜索属性。 
                 
        三、获取连接对象?
        
        四、释放资源?
      
    
     */
    public class 工具类存在硬编码问题 {
        private static String driver;
        private static String url;
        private static String use;
        private static String password;
        
        //文件的读取?
        static{
            try {
                                                                
                Properties pro01=new Properties();                                //读取文件?proerties
                                                                    
                ClassLoader class01=工具类存在硬编码问题.class.getClassLoader();//获取SRC路径?classloader()类加载器! 作用 将class文件加载到jvm虚拟机中去,程序就可以正确运行了
                
                URL res=class01.getResource("jdbc.properties");    //getResource? 获得SRC目录下的jdbc.properties文件
                String path=res.getPath();                        //getpath()?     提供文件路径
                                            
                pro01.load(new FileReader(path));
                
                url=pro01.getProperty("url");
                use=pro01.getProperty("use");
                password=pro01.getProperty("password");
                driver=pro01.getProperty("driver");
                
            } catch (Exception e) {
                
                e.printStackTrace();
            }  
        }
        //获取连接对象?
        public static Connection  getConnection() throws SQLException{
            return DriverManager.getConnection(url, use, password);
            
        }
        //释放资源?
        public static void close(Statement stmt,Connection conn){
            if (stmt!=null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                
                    e.printStackTrace();
                }
            }
            if (conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                
                    e.printStackTrace();
                }
            }
            
        }
        //还要释放资源? 方法的重载。
        public static void close(ResultSet rs,Statement stmt, Connection conn){
            if (rs!=null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt!=null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }    
    }

    三、测试类

    package cn.zhouzhou;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    /*
     * 测试?执行写的工具类?
     * 
     */
    public class Text01 {
        public static void main(String[] args) throws SQLException {
            
            Connection con=工具类存在硬编码问题.getConnection();    //1.注册
            
            String string="select * from shop";            //2.查询
            
            PreparedStatement start=con.prepareStatement(string); //3.设置 执行语句
            
            ResultSet rs=con.prepareStatement(string).executeQuery(); 
            
            while (rs.next()) {
                System.out.println(rs.getInt(1)+" "+rs.getString(2)+"  "+rs.getDouble(3));
            }    
            
           工具类存在硬编码问题.close(rs, start, con);     //4.关闭资源
        }
        /*
         * 输出结果!
              2 打牌支出  200.0
            3 衣服支出  100.0
            4 工资收入  200100.0
            5 商品收入  2000.0
            6 张三  2000.0
            7 工资收入  0.0
            12 003  5000.0
         * */
        
    }
  • 相关阅读:
    MySql之基础
    web篇---jQuery
    前端篇---CSS
    前端篇--HTML
    Python篇1.17---多进程
    Python篇1.16---socket编程
    Python篇1.15---模块与包
    Python番外篇---函数
    python番外篇---变量与数据类型
    【认真的完整版翻唱!】红莲之箭【あるふぁきゅん。】
  • 原文地址:https://www.cnblogs.com/ZXF6/p/10645204.html
Copyright © 2011-2022 走看看