码迷,mamicode.com
首页 > 其他好文 > 详细

针对Student表的DAO设计实例

时间:2018-02-25 20:34:26      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:color   pac   rri   oid   add   main   jdbc   override   com   

完整代码以及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 }

 

针对Student表的DAO设计实例

标签:color   pac   rri   oid   add   main   jdbc   override   com   

原文地址:https://www.cnblogs.com/LexMoon/p/JDBCDAO.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!