DAO模式

it2022-05-06  2

sdent类: 

 package com.myschool.entity;   public class student{    private int studentno;      private String loginpwd;      private String studentname;     private int sex;     private int gradeid;     private String phone;     private String address;     private String borndate;      private String email;     private String IdentityCard;     grade grade=new grade();     public grade getGrade() {      return grade;   }   public void setGrade(grade grade) {      this.grade = grade;   }    public int getStudentno() {      return studentno;   }   public void setStudentno(int studentno) {      this.studentno = studentno;   }   public String getLoginpwd() {      return loginpwd;   }   public void setLoginpwd(String loginpwd) {      this.loginpwd = loginpwd;   }   public String getStudentname() {      return studentname;   }   public void setStudentname(String studentname) {      this.studentname = studentname;   }   public int getSex() {      return sex;   }   public void setSex(int sex) {      this.sex = sex;   }   public int getGradeid() {      return gradeid;   }   public void setGradeid(int gradeid) {      this.gradeid = gradeid;   }   public String getPhone() {      return phone;   }   public void setPhone(String phone) {      this.phone = phone;   }   public String getAddress() {      return address;   }   public void setAddress(String address) {      this.address = address;   }   public String getBorndate() {      return borndate;   }   public void setBorndate(String borndate) {      this.borndate = borndate;   }   public String getEmail() {      return email;   }   public void setEmail(String email) {      this.email = email;   }   public String getIdentityCard() {      return IdentityCard;   }   public void setIdentityCard(String identityCard) {      IdentityCard = identityCard;   }   //带参构造    public student(int studentno, String loginpwd, String studentname, int sex,       int gradeid, String phone, String address, String borndate,       String email, String identityCard) {        super();        this.studentno = studentno;        this.loginpwd = loginpwd;        this.studentname = studentname;        this.sex = sex;        this.gradeid = gradeid;        this.phone = phone;        this.address = address;        this.borndate = borndate;        this.email = email;        IdentityCard = identityCard;   }   //无参构造   public student(){     } }

 

grade类:

package com.myschool.entity; import java.util.List; public class grade {    private int gradeid;      private String gradename;       public List<student> list;      public List<student> getList() {       return list;    }    public void setList(List<student> list) {       this.list = list;    }    public int getGradeid() {       return gradeid;    }    public void setGradeid(int gradeid) {       this.gradeid = gradeid;    }    public String getGradename() {       return gradename;    }    public void setGradename(String gradename) {       this.gradename = gradename;    }    //带参构造    public grade(int gradeid, String gradename) {       super();       this.gradeid = gradeid;       this.gradename = gradename;    }   //无参构造    public grade(){    } }   BaseDao接口:    package com.myschool.daos; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDao {   private static final String STRING="com.mysql.jdbc.Driver";  private static final String  URL="jdbc:mysql:///myschool";  private static final String  U_STRING="root";  private static final String PASSWORD="";  Connection con=null;  PreparedStatement Statement;  ResultSet executeQuery ;  public Connection getdConnection() throws Exception  {   Class.forName(STRING);   //con.isClosed:判断是否是关闭的   if (con==null||con.isClosed()) {    con = DriverManager.getConnection(URL, U_STRING,PASSWORD);   }     return con;  }  //Object ...objects这种参数定义是在不确定方法参数的情况下的一种多态表现形式。  //即这个方法可以传递多个参数,这个参数的个数是不确定的。这样你在方法体中需要相应的做些处理。  //因为Object是基类,所以使用Object ...objects这样的参数形式,允许一切继承自Object的对象作为参数。  //这种方法在实际中应该还是比较少用的。  public int getDao(String string,Object...objects) throws Exception  {   getdConnection();   Statement = con.prepareStatement(string);   for (int i = 1; i <=objects.length; i++) {    Statement.setObject(i,objects[i-1]);   }   int execute = Statement.executeUpdate();   return execute;  }  public ResultSet getDaos(String string,Object...objects) throws Exception  {   getdConnection();   Statement = con.prepareStatement(string);   for (int i = 1; i <=objects.length; i++) {    Statement.setObject(i,objects[i-1]);   }   executeQuery = Statement.executeQuery();      return executeQuery;  }  public void close() throws Exception  {   if (executeQuery!=null) {    executeQuery.close();   }   if (Statement!=null) {    Statement.close();   }   if (con!=null) {    con.close();    }   }    } 接口: package com.myschool.daos; import java.util.List; import com.myschool.entity.grade; import com.myschool.entity.student; public interface studentdao {    public List<student> getstudent() throws Exception;    public grade getgrade(String gradeid) throws Exception;  }   实现类:  package com.myschool.dao.impl; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.myschool.daos.BaseDao; import com.myschool.daos.studentdao; import com.myschool.entity.grade; import com.myschool.entity.student; public class studnetdaoimpl extends BaseDao implements studentdao{    private ResultSet rs=null;    @Override    public grade getgrade(String gradename) throws Exception {       List<student> list1=new ArrayList<student>();       String sql="select s.*,g.GradeName from student as s,grade as g where s.GradeId=g.GradeId and g.gradename=?";       Object[] obj={gradename};       rs=executeQuery(sql, obj);       grade grade=null;       if (rs!=null) {          while(rs.next()){             grade=new grade();             student student=new student();             student.setStudentno(rs.getInt("studentno"));             student.setStudentname(rs.getString("studentname"));             list1.add(student);             grade.setGradename(rs.getString("gradename"));          }          grade.setList(list1);       }       return grade;    }    @Override    public List<student> getstudent() throws Exception {       List<student> list=new ArrayList<student>();       String sql="select * from student as s,grade as g where s.GradeId=g.GradeId";       rs = executeQuery(sql);       if (rs!=null) {          while(rs.next()){             student stu=new student();             grade grade=new grade();             stu.setStudentno(rs.getInt("studentno"));             stu.setStudentname(rs.getString("studentname"));             grade.setGradename(rs.getString("gradename"));             stu.setGrade(grade);             list.add(stu);          }       }       return list;    }   } main方法:    package ui; import java.util.List; import com.myschool.dao.impl.studnetdaoimpl; import com.myschool.daos.studentdao; import com.myschool.entity.grade; import com.myschool.entity.student; public class ui {    static studentdao dao=new studnetdaoimpl();      public static void getstudent() throws Exception{       List<student> list=dao.getstudent();       for (student student : list) {        System.out.println(student.getStudentno()+"\t"+student.getStudentname()+"\t"+student.getGrade().getGradename());       }    }      public static void main(String[] args) throws Exception {       getstudent();       grade grade=dao.getgrade("S1");       for (student stu : grade.getList()) {          System.out.println(stu.getStudentno()+"\t"+stu.getStudentname()+"\t"+grade.getGradename());       }    } }

转载于:https://www.cnblogs.com/lowerma/p/10945018.html

相关资源:使用DAO模式实现宠物数据更新

最新回复(0)