zoukankan      html  css  js  c++  java
  • Java的DAO设计模式

    用java的DAO模式实现对一个学生实体的增加,查询操作。

    1.建立一个学生实体类 Student.java

     1 public class Student {
     2     private String sid;
     3     private String sname;
     4     private int age;
     5     private int banji;
     6     private int score;
     7 
     8     public Student(String sid, String sname, int age, int banji, int score) {
     9         this.sid = sid;
    10         this.sname = sname;
    11         this.age = age;
    12         this.banji = banji;
    13         this.score = score;
    14     }
    15 
    16     public String getSid() {
    17         return sid;
    18     }
    19 
    20     public void setSid(String sid) {
    21         this.sid = sid;
    22     }
    23 
    24     public String getSname() {
    25         return sname;
    26     }
    27 
    28     public void setSname(String sname) {
    29         this.sname = sname;
    30     }
    31 
    32     public int getAge() {
    33         return age;
    34     }
    35 
    36     public void setAge(int age) {
    37         this.age = age;
    38     }
    39 
    40     public int getBanji() {
    41         return banji;
    42     }
    43 
    44     public void setBanji(int banji) {
    45         this.banji = banji;
    46     }
    47 
    48     public int getScore() {
    49         return score;
    50     }
    51 
    52     public void setScore(int score) {
    53         this.score = score;
    54     }
    55 
    56     @Override
    57     public String toString() {
    58         return "student [sid=" + sid + ", sname=" + sname + ", age=" + age + ", banji=" + banji + ", score=" + score
    59                 + "]";
    60     }
    61 
    62 }

    2.数据库连接工具类  ConnectionUtil.java

     1 import java.sql.Connection;
     2 import java.sql.DriverManager;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 
     7 public class ConnectionUtil {
     8     ConnectionUtil(){}
     9     private static Connection con ;
    10     
    11     static{
    12         try{
    13             Class.forName("com.mysql.jdbc.Driver");
    14             String url = "jdbc:mysql://localhost:3306/shiyan";
    15             String username="root";
    16             String password="1234";
    17             con = DriverManager.getConnection(url, username, password);
    18         }catch(Exception ex){
    19             throw new RuntimeException(ex+"数据库连接失败!");
    20         }
    21     }
    22     
    23     public static Connection getConnection(){
    24         return con;
    25     }
    26     
    27     /*关闭数据库连接操作*/
    28     public static void close(Connection con,Statement stat , ResultSet rs){
    29          if(rs!=null){
    30              try{
    31                  rs.close();
    32              }catch(SQLException ex){}
    33          }
    34          
    35          if(stat!=null){
    36              try{
    37                  stat.close();
    38              }catch(SQLException ex){}
    39          }
    40          
    41          if(con!=null){
    42              try{
    43                  con.close();
    44              }catch(SQLException ex){}
    45          }
    46          
    47     }
    48 }

    3.DAO接口 UpdateDao.java

     1 import java.util.List;
     2 
     3 public interface UpdateDao {
     4 
     5     /*查询所有的学生,返回一个List集合中*/
     6     public List<Student> findAllStudent();
     7 
     8     /*增加学生*/
     9     public void addStudent(Student stu);
    10 
    11 }

    4.DAO接口实现类  UpdateDaoImpl.java

     1 import java.sql.Connection;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.util.ArrayList;
     6 import java.util.List;
     7 
     8 public class UpdateDaoImpl implements UpdateDao {
     9 
    10     @Override
    11     public List<Student> findAllStudent() {
    12 
    13         List<Student> list = new ArrayList<Student>();
    14 
    15         Connection conn = ConnectionUtil.getConnection();
    16         String sql = "select * from student";
    17         PreparedStatement pst;
    18         try {
    19             pst = conn.prepareStatement(sql);
    20             ResultSet rs = pst.executeQuery();
    21 
    22             while (rs.next()) {
    23                 Student s = new Student(rs.getString("sid"), rs.getString("sname"), rs.getInt("age"),
    24                         rs.getInt("banji"), rs.getInt("score"));
    25                 list.add(s);
    26             }
    27         } catch (SQLException e) {
    28             e.printStackTrace();
    29         }
    30         return list;
    31     }
    32 
    33     @Override
    34     public void addStudent(Student stu) {
    35         Connection conn = ConnectionUtil.getConnection();
    36         try {
    37             String sql = "insert into student values(?,?,?,?,?)";
    38             PreparedStatement pst = conn.prepareStatement(sql);
    39             pst.setString(1, stu.getSid());
    40             pst.setString(2, stu.getSname());
    41             pst.setInt(3, stu.getAge());
    42             pst.setInt(4, stu.getBanji());
    43             pst.setInt(5, stu.getScore());
    44 
    45             pst.executeUpdate();
    46 
    47         } catch (Exception e) {
    48             e.printStackTrace();
    49         }
    50 
    51     }
    52 
    53 }

    5.建立一个Junit类进行测试 TestDao.java

     1 import java.util.List;
     2 
     3 import org.junit.Test;
     4 
     5 import test3001.Student;
     6 import test3001.UpdateDao;
     7 import test3001.UpdateDaoImpl;
     8 
     9 public class testDao {
    10 
    11     @Test
    12     /*测试增加学生*/
    13     public void testaddStudent() {
    14         UpdateDao dao = new UpdateDaoImpl();
    15         Student stu=new Student("8","蓝猫",20,2,98);
    16         dao.addStudent(stu);
    17     }
    18     
    19     @Test
    20     /*测试查询所有学生信息*/
    21     public void testfindAllStudent() {
    22         UpdateDao dao = new UpdateDaoImpl();
    23         List<Student> list = null;
    24         list = dao.findAllStudent();
    25         for (Student stu : list) {
    26             System.out.println(stu);
    27         }
    28     }
    29 }

    -----------泛型DAO是什么鬼 -_-      ---------------------------

  • 相关阅读:
    编写测试类实现并发访问固定URL(亲测能用!!!)
    java项目添加log4j打印日志+转换系统时间
    springboot项目没错,但就是报红叉
    我想查看数据库名,输入命令:select name from v$database;为什么会说表和视图不存在
    DRUID连接池的实用 配置详解+使用方法+监控方式(太强大了!!!)
    Druid连接池 属性说明
    springBoot2.2.0+mybatis-xml文件方式+Oracle11g+jsp页面,实现简单的CRUD
    s5-12 RIP
    s5-12 RIP
    s5-13 RIP 为什么会 衰败
  • 原文地址:https://www.cnblogs.com/Mhang/p/7818560.html
Copyright © 2011-2022 走看看