在JDBC的最后一个内容中,我将叙述的是最后一个概念DAO
1.DAO
DAO(Data Access Object)数据访问对象,他是建立在业务层与数据库之间,目的就是为了分开数据访问逻辑和业务逻辑
接下来我直接说明关于DAO的建立,首先要先创建一个实体类,并对其进行序列化,实体类里面包含的是数据表的各个字段,同时要包含他们各自的get,set方法,示例代码如下:
1 package entity; 2 3 import java.io.Serializable; 4 import java.util.Date; 5 6 /** 7 * 1.通常实体类名和表名一致 8 * 2.通常该类中的属性名和字段名一致 9 * 3.通常该类中的属性都使用封装类型10 * @author jiawenzhe11 *12 */13 public class emp implements Serializable {14 private Integer empno;15 private String ename;16 private String jod;17 private Integer mgr;18 private Date hiredate;19 private Double sal;20 private Double comm;21 private Integer deptno;22 public Integer getEmpno() {23 return empno;24 }25 public void setEmpno(Integer empno) {26 this.empno = empno;27 }28 public String getEname() {29 return ename;30 }31 public void setEname(String ename) {32 this.ename = ename;33 }34 public String getJod() {35 return jod;36 }37 public void setJod(String jod) {38 this.jod = jod;39 }40 public Integer getMgr() {41 return mgr;42 }43 public void setMgr(Integer mgr) {44 this.mgr = mgr;45 }46 public Date getHiredate() {47 return hiredate;48 }49 public void setHiredate(Date hiredate) {50 this.hiredate = hiredate;51 }52 public Double getSal() {53 return sal;54 }55 public void setSal(Double sal) {56 this.sal = sal;57 }58 public Double getComm() {59 return comm;60 }61 public void setComm(Double comm) {62 this.comm = comm;63 }64 public Integer getDeptno() {65 return deptno;66 }67 public void setDeptno(Integer deptno) {68 this.deptno = deptno;69 }70 71 }
接下来再创建一个包用来存放DAO这个类,DAO中我们要建立一个方法,该方法的作用通过给定的字段返回我们要查找的字段,所以这个方法的返回值是一个泛型集合,且里面存放的类型是刚才我们创建的实体类类型。
1 package dao; 2 3 import java.net.ConnectException; 4 import java.sql.Connection; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.util.List; 9 10 import util.DBUtil;11 import entity.emp;12 13 public class EmpDao {14 public List<emp> findAll(){15 return null;16 }17 public emp findById(int id){18 Connection conn=null;19 try {20 conn=DBUtil.getConnection();21 String sql ="select *from emp_jiawenzhe where empno=?";22 PreparedStatement ps=conn.prepareStatement(sql);23 ps.setInt(1, id);24 ResultSet rs=ps.executeQuery();25 if(rs.next()){26 emp e=new emp();27 e.setEmpno(rs.getInt("empno"));28 e.setEname(rs.getString("ename"));29 e.setJod(rs.getString("job"));30 e.setMgr(rs.getInt("mgr"));31 e.setHiredate(rs.getDate("hiredate"));32 e.setSal(rs.getDouble("sal"));33 e.setComm(rs.getDouble("comm"));34 e.setDeptno(rs.getInt("deptno"));35 return e;36 }37 38 } catch (SQLException e) {39 // TODO Auto-generated catch block40 e.printStackTrace();41 throw new RuntimeException("wrong",e);42 }finally{43 DBUtil.close(conn);44 }45 return null;46 }47 48 }
我这里面的返回值是一个emp的实体类,因为是要根据指定的id找到那个对应的人,具体的返回值情况都是根据实际情况确定,这里面我们再次调用了最开始的工具类
最后给出测试代码
@Test public void test6(){ EmpDao dao=new EmpDao(); emp e= dao.findById(7369); if(e!=null){ System.out.println(e.getEname()+","+e.getJod()); } }
原标题:Java——JDBC小结终结
关键词:JAVA