【DAO】基于apache.commons.dbcp的DAO数据层的代码

************************************************************************ ****原文:blog.csdn.net/clark_xu徐长亮的专栏 ************************************************************************

DAO的代码主要是基于oracle默认用户scott用户的 dept(部门列表)emp(员工信息列表)进行查询,增加等。其中JDBC连接oracle的连接池使用apache.commons.dbcp来实现。

项目中分为4个类:实体类entery.Dept 对象保存scott.dept表中的一行。utils.DButils类创建jdbc连接池。DAO类 dao.DeptDao类提供为Dept操作的sql语句。index.index为main函数的测试类

如上,需要buildpath导入jar:

(1)apache.commons类:commons-collections4-4.0.jar commons-pool-1.6.jar commons-dbcps-1.4.jar

(2)oracle.jdbc类: class12.jar

第一步,创建实例类entry.Dept()

Dept表有三个字段:deptno部门编号,dname部门名称,,loc地点

package entry;public class Dept {private int deptno;private String dname;private String loc;@Overridepublic String toString() {return deptno+" "+dname+" "+loc;}public int getDeptno() {return deptno;}public void setDeptno(int deptno) {this.deptno = deptno;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}public String getLoc() {return loc;}public void setLoc(String loc) {this.loc = loc;}}

第二步,创建oracle数据库的连接类。

使用Properties文件保存oracle数据库url,user,password,driver名称

创建名字为property的文件内容为:

driver=oracle.jdbc.OracleDriverurl=jdbc:oracle:thin:@127.0.0.1:1521:rundbuser=scottpassword=tiger

代码如下: 从文件读取url,user,password

创建openConneciton方法来实现创建jdbc连接池,具体使用apache.commons.dbcp.BasicDataSources对象

package utils;import java.io.IOException;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import org.apache.commons.dbcp.BasicDataSource;public class DButils {private static String url;private static String driver;private static String user;private static String password;static{Properties props=new Properties();try {//从类路径加载文件props.load(DButils.class.getClassLoader().getResourceAsStream("utils/property"));} catch (IOException e1) {// TODO Auto-generated catch blockSystem.out.println("找不到密码文件");e1.printStackTrace();}user=props.getProperty("user");url=props.getProperty("url");driver=props.getProperty("driver");password=props.getProperty("password");}/** * 类方法 * @return Conneciton * @throws SQLException */public static Connection openConnection() throws SQLException{BasicDataSource ds=new BasicDataSource();ds.setDriverClassName(DButils.driver);ds.setUrl(DButils.url);ds.setUsername(DButils.user);ds.setPassword(DButils.password);//初始化格式ds.setInitialSize(10);//最大空闲连接个数ds.setMaxIdle(50);ds.setMaxActive(50);Connection con=ds.getConnection();return con;}}

第四步,创建DAO类,通过创建不同的方法来实现sql语句操作数据库,利用List<Dept>对象保存表的所有记录。每个Dept对象保存dept表中的某行。

定义一种方法findAll()方法来查询dept表的内容。

package dbo;import entry.Dept;import utils.DButils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class DeptDAO {private static final String FIND_ALL="select deptno,dname,loc from dept";public List<Dept> findAll() throws SQLException{Connection con=null;con=DButils.openConnection();PreparedStatement stmt=con.prepareStatement(FIND_ALL);ResultSet rs=stmt.executeQuery();//定义集合List<Dept> deptlist=new ArrayList<Dept>();Dept d = null;while((rs.next())){int deptno = rs.getInt("deptno");String dname = rs.getString("dname");String loc = rs.getString("loc");//deptlist.add(toDept(rs));d = new Dept();d.setDeptno(deptno);d.setDname(dname);d.setLoc(loc);System.out.println(d.toString());//System.out.println(mydept.toString());//添加到集合deptlist.add(d);System.out.println(deptlist.toString());}return deptlist;}}每当我看天的时候我就不喜欢再说话,每当我说话的时候我却敢看天。

【DAO】基于apache.commons.dbcp的DAO数据层的代码

相关文章:

你感兴趣的文章:

标签云: