码迷,mamicode.com
首页 > 数据库 > 详细

通过JDBC,全面理解反射的作用,接口的作用

时间:2015-01-19 00:00:09      阅读:421      评论:0      收藏:0      [点我收藏+]

标签:

public void testDriverManager() throws Exception{
        //1. 准备连接数据库的 4 个字符串. 
        //驱动的全类名.
        String driverClass = "com.mysql.jdbc.Driver";
        //JDBC URL
        String jdbcUrl = "jdbc:mysql:///test";
        //user
        String user = "root";
        //password
        String password = "1230";
        
        //2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
        Class.forName(driverClass);
        
        //3. 通过 DriverManager 的 getConnection() 方法获取数据库连接. 
        Connection connection = 
                DriverManager.getConnection(jdbcUrl, user, password);
        System.out.println(connection); 
        
    }
    
    /**
     * Driver 是一个接口: 数据库厂商必须提供实现的接口. 能从其中获取数据库连接.
     * 可以通过 Driver 的实现类对象获取数据库连接.
     * 
     * 1. 加入 mysql 驱动
     * 1). 解压 mysql-connector-java-5.1.7.zip
     * 2). 在当前项目下新建 lib 目录
     * 3). 把 mysql-connector-java-5.1.7-bin.jar 复制到 lib 目录下
     * 4). 右键 build-path , add to buildpath 加入到类路径下.s
     * @throws SQLException 
     */
    @Test
    public void testDriver() throws SQLException {
        //1. 创建一个 Driver 实现类的对象
        Driver driver = new com.mysql.jdbc.Driver();
    
        //2. 准备连接数据库的基本信息: url, user, password
        String url = "jdbc:mysql://localhost:3306/test";
        Properties info = new Properties();
        info.put("user", "root");
        info.put("password", "1230");
        
        //3. 调用 Driver 接口的 connect(url, info) 获取数据库连接
        Connection connection = driver.connect(url, info);
        System.out.println(connection);
    }
    
    /**
     * 编写一个通用的方法, 在不修改源程序的情况下, 可以获取任何数据库的连接
     * 解决方案: 把数据库驱动 Driver 实现类的全类名、url、user、password 放入一个
     * 配置文件中, 通过修改配置文件的方式实现和具体的数据库解耦. 
     * @throws Exception 
     */
    public Connection getConnection() throws Exception{
        String driverClass = null;
        String jdbcUrl = null;
        String user = null;
        String password = null;
        
        //读取类路径下的 jdbc.properties 文件
        InputStream in = 
                getClass().getClassLoader().getResourceAsStream("jdbc.properties");
        Properties properties = new Properties();
        properties.load(in);
        driverClass = properties.getProperty("driver");
        jdbcUrl = properties.getProperty("jdbcUrl");
        user = properties.getProperty("user");
        password = properties.getProperty("password");
        
        //通过反射常见 Driver 对象. 
        Driver driver = 
                (Driver) Class.forName(driverClass).newInstance();
        
        Properties info = new Properties();
        info.put("user", user);
        info.put("password", password);
        
        //通过 Driver 的 connect 方法获取数据库连接. 
        Connection connection = driver.connect(jdbcUrl, info);
        
        return connection;
    }
    
    @Test
    public void testGetConnection() throws Exception{
        System.out.println(getConnection());
    }

 

通过JDBC,全面理解反射的作用,接口的作用

标签:

原文地址:http://www.cnblogs.com/Quenching/p/4232595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!