zoukankan      html  css  js  c++  java
  • 针对Student表的DAO设计实例

    完整代码以及junit,mysql--connector包下载地址 : https://github.com/CasterWx/MyStudentDao

    表信息:

    代码:

    dao包----impl包----StudentDAOImpl.java

      1 package dao.impl;
      2 
      3 import dao.IStudentDAO;
      4 import domain.Student;
      5 
      6 import java.sql.*;
      7 import java.util.ArrayList;
      8 import java.util.List;
      9 
     10 public class StudentDAOImpl implements IStudentDAO {
     11     public static Connection connection = null ;
     12 
     13     public void setConnection() {
     14         try {
     15             Class.forName("com.mysql.jdbc.Driver");
     16             System.out.println("连接成功");
     17         }catch (Exception e){
     18             System.out.println("连接失败");
     19         }
     20         try{
     21             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/JavaJDBC","root","root");
     22         }catch (Exception e){
     23         }
     24     }
     25 
     26     public void shutdownConnection(){
     27         try {
     28             if(connection!=null){
     29                 connection.close();
     30             }
     31         }catch (Exception e){
     32         }
     33     }
     34     @Override
     35     public void save(Student student) {
     36         setConnection();
     37         Statement statement = null ;
     38         try {
     39             statement = connection.createStatement();
     40             // sql语句:查询对应id
     41             String sql = "INSERT INTO t_student(id,name,age) VALUES(" + student.getId()+",'"+student.getName()+"',"+student.getAge()+")";
     42             statement.executeUpdate(sql);
     43         }catch (Exception e){
     44         }finally {
     45             try{
     46                 if (statement!=null){
     47                     statement.close();
     48                 }
     49             }catch (Exception e){
     50             }
     51         }
     52         shutdownConnection();
     53     }
     54 
     55     @Override
     56     public void delete(Student student) {
     57         Long id = student.getId() ;
     58         delete(id);
     59     }
     60 
     61     @Override
     62     public void delete(Long id) {
     63         setConnection();
     64         Statement statement = null ;
     65         try {
     66             statement = connection.createStatement();
     67             // sql语句:查询对应id
     68             String sql = "DELETE FROM t_student WHERE id="+id;
     69             statement.executeUpdate(sql);
     70         }catch (Exception e){
     71         }finally {
     72             try{
     73                 if (statement!=null){
     74                     statement.close();
     75                 }
     76             }catch (Exception e){
     77             }
     78         }
     79         shutdownConnection();
     80     }
     81 
     82     @Override
     83     public void update(Long id, Student student) {
     84         setConnection();
     85         Statement statement = null ;
     86         try {
     87             statement = connection.createStatement();
     88             // sql语句:查询对应id
     89             String sql = "UPDATE t_student SET name='"+ student.getName() +"',age="+student.getAge() +" WHERE id="+id;
     90             statement.executeUpdate(sql);
     91         }catch (Exception e){
     92         }finally {
     93             try{
     94                 if (statement!=null){
     95                     statement.close();
     96                 }
     97             }catch (Exception e){
     98             }
     99         }
    100 
    101         shutdownConnection();
    102     }
    103 
    104     @Override
    105     public void update(Student student) {
    106         Long id = student.getId() ;
    107         update(id,student);
    108     }
    109 
    110     @Override
    111     public Student get(Long id) {
    112         setConnection();
    113         Statement statement = null ;
    114         ResultSet resultSet = null ;
    115         Student student = null ;
    116         try {
    117             statement = connection.createStatement();
    118             // sql语句:查询对应id
    119             String sql = "SELECT * FROM t_student where id="+id ;
    120             resultSet = statement.executeQuery(sql);
    121             if(resultSet.next()){
    122                 student = new Student() ;
    123                 student.setId(resultSet.getLong("id"));
    124                 student.setName(resultSet.getString("name"));
    125                 student.setAge(resultSet.getLong("age"));
    126                 return student ;
    127             }
    128         }catch (Exception e){
    129         }finally {
    130             try{
    131                 if (statement!=null){
    132                     statement.close();
    133                 }
    134             }catch (Exception e){
    135             }finally {
    136                 try{
    137                     if(resultSet!=null){
    138                         resultSet.close();
    139                     }
    140                 }catch (Exception e){
    141                 }
    142             }
    143         }
    144         shutdownConnection();
    145         return null;
    146     }
    147 
    148     @Override
    149     public ArrayList<Student> list() {
    150         ArrayList<Student> list  = new ArrayList<Student>() ;
    151         setConnection();
    152         Statement statement = null ;
    153         ResultSet resultSet = null ;
    154         Student student = null ;
    155         try {
    156             statement = connection.createStatement();
    157             // sql语句:查询对应id
    158             String sql = "SELECT * FROM t_student" ;
    159             resultSet = statement.executeQuery(sql);
    160 
    161             while(resultSet.next()){
    162                 student = new Student() ;
    163                 student.setId(resultSet.getLong("id"));
    164                 student.setName(resultSet.getString("name"));
    165                 student.setAge(resultSet.getLong("age"));
    166                 list.add(student) ;
    167             }
    168             return list ;
    169         }catch (Exception e){
    170         }finally {
    171             try{
    172                 if (statement!=null){
    173                     statement.close();
    174                 }
    175             }catch (Exception e){
    176             }finally {
    177                 try{
    178                     if(resultSet!=null){
    179                         resultSet.close();
    180                     }
    181                 }catch (Exception e){
    182                 }
    183             }
    184         }
    185         shutdownConnection();
    186         return list;
    187     }
    188 
    189 }

    dao包----IStudentDAO接口

     1 package dao;
     2 
     3 import domain.Student;
     4 
     5 import java.util.ArrayList;
     6 import java.util.List;
     7 
     8 /**
     9  *  Student对象的CRUD操作
    10  * */
    11 public interface IStudentDAO {
    12     // ----------------------------------增--------------------------------------------
    13 
    14     /**
    15      * 保存学生对象
    16      * @param student
    17      * */
    18     void save(Student student);
    19 
    20     // ----------------------------------删--------------------------------------------
    21 
    22     /**
    23      *  根据删除指定学生
    24      *  @param student 学生对象
    25      * */
    26 
    27     void delete(Student student) ;
    28     /**
    29      *  根据主键删除指定学生
    30      *  @param id    学生对象主键
    31      * */
    32     void delete(Long id) ;
    33 
    34     // ----------------------------------改--------------------------------------------
    35     /**
    36      *  更新指定学生信息
    37      *  @param id  学生对象主键
    38      *  @param student  学生对象
    39      * */
    40     void update(Long id,Student student) ;
    41     /**
    42      *  根据主键删除指定学生
    43      *  @param student 学生对象
    44      * */
    45     void update(Student student);
    46 
    47     // ----------------------------------查--------------------------------------------
    48 
    49     /**
    50      *  查询指定id的学生对象
    51      *  @param id  学生对象主键
    52      *  @return Student if id存在,返回Student对象,否则返回null
    53      */
    54     Student get(Long id) ;
    55     /**
    56      *  查询所有学生对象
    57      *  @return 所有学生对象
    58      * */
    59     ArrayList<Student> list() ;
    60 }

    domain包-----Student.java

     1 package domain;
     2 
     3 public class Student {
     4     private long id ;
     5     private String name ;
     6     private long age ;
     7     public void getString(){
     8         System.out.println("Student(id="+id+",name="+name+",age="+age+")");
     9     }
    10     public void setId(long id){
    11         this.id = id ;
    12     }
    13     public void setName(String name){
    14         this.name = name ;
    15     }
    16     public void setAge(long age){
    17         this.age = age ;
    18     }
    19 
    20     public long getId() {
    21         return id;
    22     }
    23 
    24     public long getAge() {
    25         return age;
    26     }
    27 
    28     public String getName() {
    29         return name;
    30     }
    31 }

    test包----StudentDAOTest

     1 package test;
     2 
     3 import dao.IStudentDAO;
     4 import dao.impl.StudentDAOImpl;
     5 import domain.Student;
     6 import org.junit.Test;
     7 
     8 import java.util.ArrayList;
     9 import java.util.List;
    10 
    11 public class StudentDAOTest {
    12     IStudentDAO iStudentDAO = new StudentDAOImpl();
    13     @Test
    14     public void testSave() {
    15         Student student = new Student() ;
    16         student.setId(164L);
    17         student.setName("Wber");
    18         student.setAge(100L);
    19         iStudentDAO.save(student);
    20     }
    21     @Test
    22     public void testDelete() {
    23         iStudentDAO.delete(161L);
    24     }
    25     @Test
    26     public void testUpdate() {
    27         Student student = new Student() ;
    28         student.setId(161L);
    29         student.setName("wa");
    30         student.setAge(15L);
    31         iStudentDAO.update(161L,student);
    32     }
    33     @Test
    34     public void testGet() {
    35         iStudentDAO.get(162L).getString();
    36     }
    37     @Test
    38     public void testList() {
    39         ArrayList<Student> list = iStudentDAO.list() ;
    40         for(int i=0;i<list.size();i++){
    41             list.get(i).getString();
    42         }
    43     }
    44 }
  • 相关阅读:
    json 总结
    Django---admin简单功能
    Django---Models
    Django---Template(模板)
    Django---URL、Views
    Django---定义、MVC和MTV模式、命令行工具、配置文件settings
    必学算法
    一个虚拟社交公司的融资历程
    分布式系统,本文引用“courage”的博客
    mysql语句
  • 原文地址:https://www.cnblogs.com/LexMoon/p/JDBCDAO.html
Copyright © 2011-2022 走看看