zoukankan      html  css  js  c++  java
  • JDBC--获取数据库连接

    1、JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、统一的sQL数据库存取和操作的公共接口。

    2、Java中的几种数据库存取技术:

    --1)JDBC直接访问数据库;

    --2)JDO技术;

    --3)第三方O/R工具,如Hibernate,ibatis等;

    2、通过Driver接口获取数据库连接:连接任何类型的数据库

    --方法:把数据库驱动Driver实现类的全类名、url、user、password放入一个配置文件中,通过修改配置文件的方式实现。

    --实现:

    public Connection getConnection() throws Exception{
        String driverClassName = null;
        String jdbcUrl = null;
        String user = null;
        String password = null;
        //读取属性文件 jdbc.properties 中的配置信息
        Properties tmpPro = new Properties();
        InputStream in = new FileInputStream(new File("jdbc.properties"));
        tmpPro.load(in);
            
        driverClassName = tmpPro.getProperty("driver");
        jdbcUrl = tmpPro.getProperty("jdbcurl");
        user = tmpPro.getProperty("user");
        password = tmpPro.getProperty("password");
            
        //通过反射创建 Driver类
        Driver driver = (Driver)Class.forName(driverClassName).newInstance();
            
        //创建Properties类设置账号密码
        Properties info = new Properties();
        info.put("user", user);
        info.put("password", password);
            
        //通过Driver的connect()方法连接数据库并获得Connection对象
        Connection conn = driver.connect(jdbcUrl, info);
    
        return conn;
    }

    3、通过DriverManager获取数据库连接:

    public Connection getConnection() throws Exception{
        //从配置文件读取信息
        Properties properties = new Properties();
        InputStream in = new FileInputStream(new File("jdbc.properties"));
        properties.load(in);
        in.close();
            
        String driverClassName = properties.getProperty("driver");
        String jdbcUrl = properties.getProperty("jdbcurl");
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        
        //DriverManager.registerDriver(Class.forName(driverClassName).newInstance());
        //加载数据库驱动程序
        Class.forName(driverClassName);
        
        //通过DriverManager的getConnection()方法获取数据库连接。
        return DriverManager.getConnection(jdbcUrl, user, password);
    }

    --在加载数据库驱动程序的时候也可以使用DriverManager的registerDriver()方法来加载,但是由于在对应的Driver类中已经写有注册驱动的静态代码块,因此在使用Class.forName()加载Driver类时会执行这个静态代码块,与DriverManager.registerDriver(Class.forName(driverClassName).newInstance());的效果相同。如果使用DriverManager.registerDriver(Class.forName(driverClassName).newInstance())来加载驱动,会实例化两个Driver类的对象,因此推荐直接使用Class.forName()来加载驱动。

    --使用DriverManager获取数据库连接较为方便,同时它可以管理多个驱动程序,当传入不同的url,user等参数时将返回不同类型的数据库连接。

  • 相关阅读:
    Django restframework api版本控制组件增加及源码分析
    Django restframework用户访问频率控制组件增加及源码分析
    Django restframework用户权限认证组件增加及源码分析
    Django restframework用户登录认证组件增加及源码分析
    Django restframework视图访问流程源码剖析
    01 二维数组中的查找
    Linux基础
    函数设计原则
    递归函数分析
    函数与宏分析
  • 原文地址:https://www.cnblogs.com/tengtao93/p/4962664.html
Copyright © 2011-2022 走看看