这几天学习了JDBC的接口,从简单的连接,到不断地对JDBC的代码进行优化,最后到实体类,DAO类的设计,现在对这几天所学做一个总结:

首先是软件的系统组成:

数据库中有很多的表:Customer,Department,Order,Account等等,为了访问每个表,在java中建立相关的DAO,这些DAO构成数据访问层。java通过调用DAO,达到访问数据库的目的

JDBC项目实践

下面是工程的创建步骤:

1:导入工具包以及配置文件

1.1:导入访问JDBC的驱动包:commons-dbcp2-2.1.1.jar,commons-logging-1.2.jar,commons-pool2-2.42.jar,ojdbc6.jar并对不同的包buildpath;

1.2: 创建Utils包,导入工具类DBUtils.java和配置文件db.properties,这两个工具类是JDBC的核心包,里面有连接数据库,断开连接的方法

DBUTils.java的源代码:

package utils;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp2.BasicDataSource;

public class DBUtils {
    private static String driver = null;
    private static String url = null;
    private static String user = null;
    private static String password = null;
    
    private static BasicDataSource ds = null;
    //静态块
    static{
        Properties props = new Properties();
        try {
            //路径使用包路径
            String path = "utils/db.properties";
            props.load(
                       DBUtils.class.getClassLoader()
                       .getResourceAsStream(path));
            
            driver  = props.getProperty("driver");
            url  = props.getProperty("url");
            user  = props.getProperty("user");
            password  = props.getProperty("password");
            //ds中已经有了几个创建好的连接
            ds = new BasicDataSource();//创建连接池
            ds.setDriverClassName(driver);
            ds.setUrl(url);
            ds.setUsername(user);
            ds.setPassword(password);
            ds.setInitialSize(
                    Integer.parseInt(props.getProperty("intialSize")));
            
        
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /*创建连接*/
    public static Connection getConnection()
       throws ClassNotFoundException, SQLException{
        Connection conn = null;
        if(ds!=null){
             conn = ds.getConnection();
        }
        return conn;
    }
    
    /*关闭连接*/
    public static void closeConnection(Connection conn) throws SQLException{
        if(conn!=null)
            conn.close();
    }
    
}
View Code

相关文章: