JDBC 1

来源:互联网 发布:淘宝购物评级优秀 编辑:程序博客网 时间:2024/06/05 15:04

 JDBC


一.Connection工具类

1.接口DBSource.java


//DBSource.java
package chapter20;

import java.sql.Connection;
import java.sql.SQLException;

public interface DBSource {
    public Connection getConnection() throws SQLException;
    public void closeConnection(Connection conn) throws SQLException;
}

2.你的目的是从属性文件中读取设置信息,加载JDBC驱动程序,可通过getConnection()方法获得Connection对象,并通过closeConnection()方法关闭Connection对象


//SimpleDBSource.java
package chapter20;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import java.io.FileInputStream;
import java.sql.DriverManager;


public class SimpleDBSource implements DBSource {
    private Properties props;
    private String url;
    private String user;
    private String password;
   
 
   
    public SimpleDBSource() throws IOException,
                            ClassNotFoundException{
        props = new Properties();
        String configFile = null;
        props.load(new FileInputStream(configFile));
       
        url = props.getProperty("chapter19.url");
        user = props.getProperty("chapter19.user");
        password = props.getProperty("chapter19.password");
       
        Class.forName(props.getProperty("chapter19.driver"));
       
    }
    @Override
    public void closeConnection(Connection conn) throws SQLException {
        conn.close();
    }

    @Override
    public Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,user,password);
    }

}


默认的构造函数读取jdbc.properties文件中的设置


//jdbc.properties
chapter20.driver = com.mysql.jdbc.Driver;
chapter20.url = jdbc:mysql://localhost:3306/demo
chapter20.user = root
chapter20.password = 123456

3.测试SimpleDBSource是否可以正确获得与数据库的连接


//ConnectionDemo.java
package chapter20;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;

public class ConnectionDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try{
            DBSource dbsource = new SimpleDBSource();
            Connection conn = dbsource.getConnection();
            if(!conn.isClosed()){
                System.out.println("数据库连接已经开启");
            }
           
            dbsource.closeConnection(conn);
           
            if(conn.isClosed()){
                System.out.println("数据库连接已经关闭");
            }
        }
        catch(SQLException e){
            e.printStackTrace();   
        }
        catch(IOException e){
            e.printStackTrace();   
        }
        catch(ClassNotFoundException e){
            e.printStackTrace();
        }

    }

}

原创粉丝点击