这几天学习了JDBC的接口,从简单的连接,到不断地对JDBC的代码进行优化,最后到实体类,DAO类的设计,现在对这几天所学做一个总结:
首先是软件的系统组成:
数据库中有很多的表:Customer,Department,Order,Account等等,为了访问每个表,在java中建立相关的DAO,这些DAO构成数据访问层。java通过调用DAO,达到访问数据库的目的
下面是工程的创建步骤:
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(); } }