DVD租赁系统

跟着网上的视频学的,还有个别地方写的不够好,主要学习dao模式,这里其中的BaseUtil类不错

 

 

 

 

DVD.java

 1 package com.dvd.entiy;
 2 
 3 public class DVD {
 4     private int id;
 5     private String dname;
 6     private int dcount;
 7     private int status;
 8 
 9     public DVD() {
10 
11     }
12 
13     public DVD(String dname, int dcount, int status) {
14         super();
15         this.dname = dname;
16         this.dcount = dcount;
17         this.status = status;
18     }
19 
20     public DVD(int id, String dname, int dcount, int status) {
21         super();
22         this.id = id;
23         this.dname = dname;
24         this.dcount = dcount;
25         this.status = status;
26     }
27 
28     public int getId() {
29         return id;
30     }
31 
32     public void setId(int id) {
33         this.id = id;
34     }
35 
36     public String getDname() {
37         return dname;
38     }
39 
40     public void setDname(String duname) {
41         this.dname = dname;
42     }
43 
44     public int getDcount() {
45         return dcount;
46     }
47 
48     public void setDcount(int dcount) {
49         this.dcount = dcount;
50     }
51 
52     public int getStatus() {
53         return status;
54     }
55 
56     public void setStatus(int status) {
57         this.status = status;
58     }
59 
60 }

 

 

 

 User.java

 1 package com.dvd.entiy;
 2 
 3 public class User {
 4     private int id;
 5     private String uname;
 6     private String upass;
 7     private int type;
 8 
 9     public User() {
10 
11     }
12 
13     public User(String uname, String upass, int type) {
14         super();
15         this.uname = uname;
16         this.upass = upass;
17         this.type = type;
18     }
19 
20     public User(int id, String uname, String upass, int type) {
21         super();
22         this.id = id;
23         this.uname = uname;
24         this.upass = upass;
25         this.type = type;
26     }
27 
28     public int getId() {
29         return id;
30     }
31 
32     public void setId(int id) {
33         this.id = id;
34     }
35 
36     public String getUname() {
37         return uname;
38     }
39 
40     public void setUname(String uname) {
41         this.uname = uname;
42     }
43 
44     public String getUpass() {
45         return upass;
46     }
47 
48     public void setUpass(String upass) {
49         this.upass = upass;
50     }
51 
52     public int getType() {
53         return type;
54     }
55 
56     public void setType(int type) {
57         this.type = type;
58     }
59 
60 }

 

 

Record.java

 1 package com.dvd.entiy;
 2 
 3 public class Record {
 4     private int id;
 5     private int uid;
 6     private int did;
 7     private String lendTime;
 8     private String returnTime;
 9 
10     public Record() {
11 
12     }
13 
14     public Record(int uid, int did, String lendTime, String returnTime) {
15         super();
16         this.uid = uid;
17         this.did = did;
18         this.lendTime = lendTime;
19         this.returnTime = returnTime;
20     }
21 
22     public Record(int id, int uid, int did, String lendTime, String returnTime) {
23         super();
24         this.id = id;
25         this.uid = uid;
26         this.did = did;
27         this.lendTime = lendTime;
28         this.returnTime = returnTime;
29     }
30 
31     public int getId() {
32         return id;
33     }
34 
35     public void setId(int id) {
36         this.id = id;
37     }
38 
39     public int getUid() {
40         return uid;
41     }
42 
43     public void setUid(int uid) {
44         this.uid = uid;
45     }
46 
47     public int getDid() {
48         return did;
49     }
50 
51     public void setDid(int did) {
52         this.did = did;
53     }
54 
55     public String getLendTime() {
56         return lendTime;
57     }
58 
59     public void setLendTime(String lendTime) {
60         this.lendTime = lendTime;
61     }
62 
63     public String getReturnTime() {
64         return returnTime;
65     }
66 
67     public void setReturnTime(String returnTime) {
68         this.returnTime = returnTime;
69     }
70 
71 }

 

 

Record2.java

 1 package com.dvd.entiy;
 2 
 3 public class Record2 {
 4     private int id;// 记录id
 5     private int did;// 影碟id
 6     private String uname;// 用户名
 7     private String dname;// 影碟名字
 8     private String lendTime;// 借出时间
 9     private String returnTime;// 归还时间
10 
11     public Record2() {
12 
13     }
14 
15     public Record2(String uname, String dname, String lendTime, String returnTime) {
16         super();
17         this.uname = uname;
18         this.dname = dname;
19         this.lendTime = lendTime;
20         this.returnTime = returnTime;
21     }
22 
23     public Record2(int id, String uname, String dname, String lendTime, String returnTime) {
24         super();
25         this.id = id;
26         this.uname = uname;
27         this.dname = dname;
28         this.lendTime = lendTime;
29         this.returnTime = returnTime;
30     }
31 
32     public int getId() {
33         return id;
34     }
35 
36     public void setId(int id) {
37         this.id = id;
38     }
39 
40     public int getDid() {
41         return did;
42     }
43 
44     public void setDid(int did) {
45         this.did = did;
46     }
47 
48     public String getUname() {
49         return uname;
50     }
51 
52     public void setUname(String uname) {
53         this.uname = uname;
54     }
55 
56     public String getDname() {
57         return dname;
58     }
59 
60     public void setDname(String dname) {
61         this.dname = dname;
62     }
63 
64     public String getLendTime() {
65         return lendTime;
66     }
67 
68     public void setLendTime(String lendTime) {
69         this.lendTime = lendTime;
70     }
71 
72     public String getReturnTime() {
73         return returnTime;
74     }
75 
76     public void setReturnTime(String returnTime) {
77         this.returnTime = returnTime;
78     }
79 
80 }

 

 

 

 DVDDao.java

 1 package com.dvd.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.dvd.entiy.DVD;
 6 
 7 public interface DVDDao {
 8     public boolean saveDVD(DVD dvd);// 添加DVD
 9 
10     public boolean updateDVD(DVD dvd);// 更新DVD
11 
12     public boolean delDVD(int did);// 删除指定的DVD
13 
14     public List<DVD> queryDVDs();// 查询所有的DVD
15 
16     public List<DVD> queryDVDByName(String name);// 查找指定名字的DVD
17 
18     public List<DVD> querySortByLimit(int index, int number);// 查找指定起始位,指定个数的DVD
19 
20     public DVD queryDVDById(int did);// 根据dvd编号来查询DVD
21 
22     public List<DVD> queryDVDByStatus(int status);// 根据状态查询 DVD
23 
24 }

 

 

 RecordDao.java

 1 package com.dvd.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.dvd.entiy.Record;
 6 import com.dvd.entiy.Record2;
 7 
 8 public interface RecordDao {
 9     public Record queryRecordById(int rid);// 查看指定id的DVD借还记录
10 
11     public boolean saveRecord(Record record);// 保存record记录
12 
13     public boolean updateRecord(Record record);// 更新Record记录
14 
15     public List<Record2> queryAllRecord();// 查询所有的DVD借还记录
16 
17     public List<Record2> queryRecordByUname(String uname);// 查看指定用户的dvd借还记录
18 
19     public List<Record2> queryRecordByDname(String dname);// 查看指定dvd的借还记录
20 
21     public List<Record2> queryUserRecordByReturnTime(boolean flag, String uname);// 查看用户归还
22                                                                                     // 记录(已归还
23                                                                                     // ,未归还)
24 }

 

 

 UserDao.java

 1 package com.dvd.dao;
 2 
 3 import com.dvd.entiy.User;
 4 
 5 public interface UserDao {
 6     public boolean saveUser(User user);// 添加用户
 7 
 8     public boolean delUser(int id);// 删除用户
 9 
10     public boolean updateUser(User user);// 更新用户
11 
12     public User queryUser(User user);// 查询用户
13 }

 

 

 

BaseDao.java

  1 package com.dvd.dao.impl;
  2 
  3 import java.lang.reflect.Field;
  4 import java.sql.Connection;
  5 import java.sql.DriverManager;
  6 import java.sql.PreparedStatement;
  7 import java.sql.ResultSet;
  8 import java.sql.ResultSetMetaData;
  9 import java.sql.SQLException;
 10 import java.util.ArrayList;
 11 import java.util.List;
 12 
 13 public class BaseDao {
 14     private static final String DRIVER = "com.mysql.jdbc.Driver";
 15     private static final String URL = "jdbc:mysql://localhost:3306/dvddb";
 16 
 17     /**
 18      * 与数据库建立连接
 19      * 
 20      * @return 数据库连接对象
 21      */
 22     public Connection getConn() {
 23         Connection conn = null;
 24         try {
 25             Class.forName(DRIVER);
 26         } catch (ClassNotFoundException e) {
 27             // TODO 自动生成的 catch 块
 28             e.printStackTrace();
 29         }
 30         try {
 31             conn = DriverManager.getConnection(URL, "root", "123456");
 32         } catch (SQLException e) {
 33             // TODO 自动生成的 catch 块
 34             e.printStackTrace();
 35         }
 36         return conn;
 37     }
 38 
 39     /**
 40      * 释放相应的资源
 41      * 
 42      * @param rs
 43      * @param pstmt
 44      * @param conn
 45      */
 46     public void closeAll(ResultSet rs, PreparedStatement pstmt, Connection conn) {
 47         try {
 48             if (rs != null) {
 49                 rs.close();
 50             }
 51             if (pstmt != null) {
 52                 pstmt.close();
 53             }
 54             if (conn != null) {
 55                 conn.close();
 56             }
 57         } catch (SQLException e) {
 58             // TODO 自动生成的 catch 块
 59             e.printStackTrace();
 60         }
 61     }
 62 
 63     /**
 64      * 此方法可以完成增删改查
 65      * 
 66      * @param sql
 67      * @param params
 68      * @return
 69      */
 70     public boolean operUpdate(String sql, List<Object> params) {
 71         int res = 0;// 影响的行数
 72         Connection conn = null;
 73         PreparedStatement pstmt = null;
 74         ResultSet rs = null;
 75         try {
 76             conn = getConn();
 77             pstmt = conn.prepareStatement(sql);// 装在sql语句
 78             if (params != null) {
 79                 // 假如有?在执行之前把?点位符替换掉
 80                 for (int i = 0; i < params.size(); i++) {
 81                     pstmt.setObject(i + 1, params.get(i));
 82                 }
 83             }
 84             res = pstmt.executeUpdate();
 85         } catch (SQLException e) {
 86             // TODO 自动生成的 catch 块
 87             e.printStackTrace();
 88         } finally {
 89             closeAll(rs, pstmt, conn);
 90         }
 91         return res > 0 ? true : false;
 92     }
 93 
 94     /**
 95      * 使用泛型方法和反射机制进行封装
 96      * 
 97      * @param sql
 98      * @param params
 99      * @param cls
100      * @return
101      * @throws IllegalAccessException
102      * @throws InstantiationException
103      * @throws SecurityException
104      * @throws NoSuchFieldException
105      */
106 
107     public <T> List<T> operQuery(String sql, List<Object> params, Class<T> cls)
108             throws InstantiationException, IllegalAccessException, NoSuchFieldException, SecurityException {
109         Connection conn = null;
110         PreparedStatement pstmt = null;
111         ResultSet rs = null;
112         List<T> data = new ArrayList<T>();
113         try {
114             conn = getConn();
115             pstmt = conn.prepareStatement(sql);// 装在sql语句
116             if (params != null) {
117                 // 假如有?在执行之前把?点位符替换掉
118                 for (int i = 0; i < params.size(); i++) {
119                     pstmt.setObject(i + 1, params.get(i));
120                 }
121             }
122             rs = pstmt.executeQuery();
123             // 把查询出来的记录封装成对应 的实体类对象
124             ResultSetMetaData rsd = rs.getMetaData();// 得到记录集元数据对象
125             // 通过此对象可以得到表的结构 ,列名,列的个数 ,列的数据类型
126             while (rs.next()) {
127                 T m = cls.newInstance();
128                 for (int i = 0; i < rsd.getColumnCount(); i++) {
129                     String col_name = rsd.getColumnName(i + 1);// 获得列名
130                     Object value = rs.getObject(col_name);// 获得对应的值
131                     Field field = cls.getDeclaredField(col_name);
132                     field.setAccessible(true);// 给私有属性设置可访问权
133                     field.set(m, value);// 给对象私有属性赋值
134 
135                 }
136                 data.add(m);
137             }
138         } catch (SQLException e) {
139             // TODO 自动生成的 catch 块
140             e.printStackTrace();
141         } finally {
142             closeAll(rs, pstmt, conn);
143         }
144         return data;
145     }
146 }

 

 

 DVDDaoImpl.java

  1 package com.dvd.dao.impl;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 
  6 import com.dvd.dao.DVDDao;
  7 import com.dvd.entiy.DVD;
  8 
  9 public class DVDDaoImpl extends BaseDao implements DVDDao {
 10 
 11     @Override
 12     public boolean saveDVD(DVD dvd) {
 13         String sql = "insert into dvds(dname,dcount,status) values(?,?,?)";
 14         List<Object> params = new ArrayList<Object>();
 15         params.add(dvd.getDname());
 16         params.add(dvd.getDcount());
 17         params.add(dvd.getStatus());
 18         return this.operUpdate(sql, params);
 19 
 20     }
 21 
 22     @Override
 23     public boolean updateDVD(DVD dvd) {
 24         String sql = "update dvds set dname=?,dcount=?,status=? where id=?";
 25         List<Object> params = new ArrayList<Object>();
 26         params.add(dvd.getDname());
 27         params.add(dvd.getDcount());
 28         params.add(dvd.getStatus());
 29         params.add(dvd.getId());
 30         return this.operUpdate(sql, params);
 31     }
 32 
 33     @Override
 34     public boolean delDVD(int did) {
 35         String sql = "delete from dvds where id=?";
 36         List<Object> params = new ArrayList<Object>();
 37         params.add(did);
 38         return this.operUpdate(sql, params);
 39     }
 40 
 41     @Override
 42     public List<DVD> queryDVDs() {
 43         String sql = "select id,dname,dcount,status from dvds";
 44         List<DVD> dList = null;
 45         try {
 46             dList = this.operQuery(sql, null, DVD.class);
 47         } catch (Exception e) {
 48             // TODO 自动生成的 catch 块
 49             e.printStackTrace();
 50         }
 51         return dList;
 52     }
 53 
 54     @Override
 55     public List<DVD> queryDVDByName(String dname) {
 56         String sql = "select id,dname,dcount,status from dvds where dname=?";
 57         List<DVD> dList = null;
 58         List<Object> params = new ArrayList<Object>();
 59         params.add(dname);
 60         try {
 61             dList = this.operQuery(sql, params, DVD.class);
 62         } catch (Exception e) {
 63             // TODO 自动生成的 catch 块
 64             e.printStackTrace();
 65         }
 66         return dList;
 67     }
 68 
 69     /**
 70      * 查询热门dvd就是借出次数前五位的dvd
 71      * 
 72      * @param index
 73      * @param number
 74      * @return
 75      */
 76     @Override
 77     public List<DVD> querySortByLimit(int index, int number) {
 78         String sql = "select id,dname,dcount,status from dvds order by dcount desc limit" + index + "," + number;
 79         List<DVD> dList = null;
 80         try {
 81             dList = this.operQuery(sql, null, DVD.class);
 82         } catch (Exception e) {
 83             // TODO 自动生成的 catch 块
 84             e.printStackTrace();
 85         }
 86         return dList;
 87     }
 88 
 89     @Override
 90     public DVD queryDVDById(int did) {
 91         String sql = "select id,dname,dcount,status from dvds where id=?";
 92         List<DVD> dList = null;
 93         List<Object> params = new ArrayList<Object>();
 94         params.add(did);
 95         try {
 96             dList = this.operQuery(sql, params, DVD.class);
 97         } catch (Exception e) {
 98             // TODO 自动生成的 catch 块
 99             e.printStackTrace();
100         }
101         if (dList.size() > 0) {
102             return dList.get(0);
103         }
104         return null;
105     }
106 
107     @Override
108     public List<DVD> queryDVDByStatus(int status) {
109         String sql = "select id,dname,dcount,status from dvds where status=?";
110         List<DVD> dList = null;
111         List<Object> params = new ArrayList<Object>();
112         params.add(status);
113         try {
114             dList = this.operQuery(sql, params, DVD.class);
115         } catch (Exception e) {
116             // TODO 自动生成的 catch 块
117             e.printStackTrace();
118         }
119         return dList;
120     }
121 
122 }

 

 

 RecordDaoImp.java

  1 package com.dvd.dao.impl;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 
  6 import com.dvd.dao.RecordDao;
  7 import com.dvd.entiy.Record;
  8 import com.dvd.entiy.Record2;
  9 
 10 public class RecordDaoImpl extends BaseDao implements RecordDao {
 11 
 12     @Override
 13     public Record queryRecordById(int rid) {
 14         List<Record> rList = null;
 15         String sql = "select id,uid,did,lendTime,returnTime from records where did=? order by id desc";
 16         List<Object> params = new ArrayList<Object>();
 17         params.add(rid);
 18         try {
 19             rList = this.operQuery(sql, params, Record.class);
 20         } catch (Exception e) {
 21             // TODO 自动生成的 catch 块
 22             e.printStackTrace();
 23         }
 24         if (rList.size() > 0) {
 25             return rList.get(0);
 26         }
 27         return null;
 28     }
 29 
 30     @Override
 31     public boolean saveRecord(Record record) {
 32         String sql = "insert into records(uid,did,lendTime,returnTime) values(?,?,?,?)";
 33         List<Object> params = new ArrayList<Object>();
 34         params.add(record.getUid());
 35         params.add(record.getDid());
 36         params.add(record.getLendTime());
 37         params.add(record.getReturnTime());
 38 
 39         return this.operUpdate(sql, params);
 40     }
 41 
 42     @Override
 43     public boolean updateRecord(Record record) {
 44         String sql = "update records set uid=?,did=?,lendTime=?,returnTime=? where id=?";
 45         List<Object> params = new ArrayList<Object>();
 46         params.add(record.getUid());
 47         params.add(record.getDid());
 48         params.add(record.getLendTime());
 49         params.add(record.getReturnTime());
 50         params.add(record.getId());
 51         return this.operUpdate(sql, params);
 52     }
 53 
 54     @Override
 55     public List<Record2> queryAllRecord() {
 56         List<Record2> data = null;
 57         String sql = "select r.id,d.id as did,u.uname,d.dname,r.lentTime,r.returnTime from users u,dvds d,records r where u.id=r.uid and d.id =r.did";
 58         try {
 59             data = this.operQuery(sql, null, Record2.class);
 60         } catch (Exception e) {
 61             // TODO 自动生成的 catch 块
 62             e.printStackTrace();
 63         }
 64         return data;
 65     }
 66 
 67     @Override
 68     public List<Record2> queryRecordByUname(String uname) {
 69         List<Record2> data = null;
 70         String sql = "select r.id,d.id as did,u.uname,d.dname,r.lendTime,r.returnTime from"
 71                 + " users u,dvds d,records r where u.id=r.uid and d.id =r.did and uname=?";
 72         List<Object> params = new ArrayList<Object>();
 73         params.add(uname);
 74         try {
 75             data = this.operQuery(sql, params, Record2.class);
 76         } catch (Exception e) {
 77             // TODO 自动生成的 catch 块
 78             e.printStackTrace();
 79         }
 80         return data;
 81     }
 82 
 83     @Override
 84     public List<Record2> queryRecordByDname(String dname) {
 85         List<Record2> data = null;
 86         String sql = "select r.id,d.id as did,u.uname,d.dname,r.lendTime,r.returnTime from users u,"
 87                 + "dvds d,records r where u.id=r.uid and d.id =r.did and dname=?";
 88         List<Object> params = new ArrayList<Object>();
 89         params.add(dname);
 90         try {
 91             data = this.operQuery(sql, params, Record2.class);
 92         } catch (Exception e) {
 93             // TODO 自动生成的 catch 块
 94             e.printStackTrace();
 95         }
 96         return data;
 97     }
 98 
 99     /**
100      * // 查看用户归还记录(已归还 ,未归还)
101      */
102     @Override
103     public List<Record2> queryUserRecordByReturnTime(boolean flag, String uname) {
104         List<Record2> rList = null;
105         String sql = null;
106         if (flag) {
107             sql = "select r.id,d.id as did,u.uname,d.dname,r.lentTime,r.returnTime from "
108                     + "uses u,dvds d,records r where u.id=r.uid and d.id =r.did and returnTime is not null and uname=?";
109         } else {
110             sql = "select r.id,d.id as did,u.uname,d.dname,r.lentTime,r.returnTime from "
111                     + "uses u,dvds d,records r where u.id=r.uid and d.id =r.did and returnTime is null and uname=?";
112         }
113         List<Object> params = new ArrayList<Object>();
114         params.add(uname);
115         try {
116             rList = this.operQuery(sql, params, Record2.class);
117         } catch (Exception e) {
118             e.printStackTrace();
119         }
120         return rList;
121     }
122 
123 }

 

 

 UserDaoImpl.java

 1 package com.dvd.dao.impl;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import com.dvd.dao.UserDao;
 7 import com.dvd.entiy.User;
 8 
 9 public class UserDaoImpl extends BaseDao implements UserDao {
10 
11     @Override
12     public boolean saveUser(User user) {
13         String sql = "insert into users(uname,upass,type) values(?,?,?)";
14         List<Object> params = new ArrayList<Object>();
15         params.add(user.getUname());
16         params.add(user.getUpass());
17         params.add(user.getType());
18         return this.operUpdate(sql, params);
19     }
20 
21     @Override
22     public boolean delUser(int id) {
23         String sql = "delete from users where id=?";
24         List<Object> params = new ArrayList<Object>();
25         params.add(id);
26         return this.operUpdate(sql, params);
27     }
28 
29     @Override
30     public boolean updateUser(User user) {
31         String sql = "updata users set uname=?,upass=?,type=? where id=?";
32         List<Object> params = new ArrayList<Object>();
33         params.add(user.getUname());
34         params.add(user.getUpass());
35         params.add(user.getType());
36         params.add(user.getId());
37         return this.operUpdate(sql, params);
38     }
39 
40     @Override
41     public User queryUser(User user) {
42         List<User> uList = null;
43         String sql = "select id,uname,upass,type from users where uname=? and upass=? and type=?";
44         List<Object> params = new ArrayList<Object>();
45         params.add(user.getUname());
46         params.add(user.getUpass());
47         params.add(user.getType());
48         try {
49             uList = this.operQuery(sql, params, User.class);
50         } catch (Exception e) {
51         }
52 
53         if (uList.size() > 0) {
54             return uList.get(0);
55         }
56         return null;
57     }
58 
59 }

 

 

DVDBiz.java

 1 package com.dvd.biz;
 2 
 3 import java.util.List;
 4 
 5 import com.dvd.entiy.DVD;
 6 
 7 public interface DVDBiz {
 8     public boolean addDVD(DVD dvd);// 添加dvd
 9 
10     public boolean delDVD(int did);// 删除dvd
11 
12     public boolean modifyDVD(DVD dvd);// 修改dvd
13 
14     public List<DVD> queryAllDVDs();// 查询所有的dvd信息
15 
16     public List<DVD> ranking_top_five();// 查看前5张最爱欢迎的dvd(热门dvd)
17 
18     public List<DVD> queryDVDByName(String dname);// 根据DVD的名字来查询
19 
20     public DVD queryDVDById(int did);// 根据id来查询 DVD
21 
22     public int lendDVD(int did, int uid);// 按dvd编号和用户编号来租DVD
23 
24     public int returnDVD(int rid);// 还DVD的功能
25 
26     public List<DVD> canLendDVD();// 可借DVD
27 
28     public List<DVD> hasLendedDvD();// 不可DVD
29 
30 }

 

RecordBiz.java

 1 package com.dvd.biz;
 2 
 3 import java.util.List;
 4 
 5 import com.dvd.entiy.Record2;
 6 
 7 public interface RecordBiz {
 8     public List<Record2> queryUserRecords(String uname);// 查看指定用户的租赁记录
 9 
10     public List<Record2> queryDVDRecords(String dname);// 查看指定DVD的租赁记录
11 
12     public List<Record2> queryHasReturnRecords(String uname);// 查看指定用户已归还 的记录
13 
14     public List<Record2> queryNoReturnRecords(String uname);// 查看指定用户未归还 的记录
15 
16     public List<Record2> queryAllRecords();// 查看所有的记录
17 }

 

 

UserBiz.java

package com.dvd.biz;

import com.dvd.entiy.User;

public interface UserBiz {
    // 用户登录,返回的就是登录用户的信息(对象)
    public User login(User user);

    // 注册用户
    public int registerUser(User user);
}

 

 

DVDBizImpl.java

  1 package com.dvd.biz.Impl;
  2 
  3 import java.text.SimpleDateFormat;
  4 import java.util.Date;
  5 import java.util.List;
  6 
  7 import com.dvd.biz.DVDBiz;
  8 import com.dvd.dao.DVDDao;
  9 import com.dvd.dao.RecordDao;
 10 import com.dvd.dao.impl.DVDDaoImpl;
 11 import com.dvd.dao.impl.RecordDaoImpl;
 12 import com.dvd.entiy.DVD;
 13 import com.dvd.entiy.Record;
 14 
 15 public class DVDBizImpl implements DVDBiz {
 16     private DVDDao dvdDao = null;
 17     private RecordDao recordDao = null;
 18 
 19     public DVDBizImpl() {
 20         dvdDao = new DVDDaoImpl();
 21         recordDao = new RecordDaoImpl();
 22     }
 23 
 24     @Override
 25     public boolean addDVD(DVD dvd) {
 26 
 27         return dvdDao.saveDVD(dvd);
 28     }
 29 
 30     @Override
 31     public boolean delDVD(int did) {
 32 
 33         return dvdDao.delDVD(did);
 34     }
 35 
 36     @Override
 37     public boolean modifyDVD(DVD dvd) {
 38         return dvdDao.updateDVD(dvd);
 39     }
 40 
 41     @Override
 42     public List<DVD> queryAllDVDs() {
 43         return dvdDao.queryDVDs();
 44     }
 45 
 46     @Override
 47     public List<DVD> ranking_top_five() {
 48         return dvdDao.querySortByLimit(0, 5);
 49     }
 50 
 51     @Override
 52     public List<DVD> queryDVDByName(String dname) {
 53 
 54         return dvdDao.queryDVDByName(dname);
 55     }
 56 
 57     @Override
 58     public DVD queryDVDById(int did) {
 59         return dvdDao.queryDVDById(did);
 60     }
 61 
 62     @Override
 63     public int lendDVD(int did, int uid) {
 64         DVD dvd = dvdDao.queryDVDById(did);// 查询
 65         if (dvd == null) {
 66             return 0;// 没有找到要借的dvd
 67         } else {
 68             if (dvd.getStatus() == 0) {
 69                 return 1;// 不可借。已经借出
 70             } else {
 71 
 72                 dvd.setStatus(0);// 更新状态代表已经借出
 73                 dvd.setDcount(dvd.getDcount() + 1);
 74                 // System.out.println(dvd.getId());
 75                 //// System.out.println(dvd.getDname());
 76                 // System.out.println(dvd.getDcount());
 77                 // System.out.println(dvd.getStatus());
 78                 boolean flag1 = dvdDao.updateDVD(dvd);// 更新DVD
 79                 // System.out.println("更新dvdflag1=" + flag1);
 80                 Record record = new Record(uid, did, new SimpleDateFormat("yyyy-MM-dd").format(new Date()), null);
 81                 boolean flag2 = recordDao.saveRecord(record);// 插入租赁记录;
 82                 // System.out.println("更新插入租赁记录;flag2=" + flag2);
 83                 if (flag1 && flag2) {
 84                     return 2;// 借出成功
 85                 } else {
 86                     // dvd.setStatus(1);
 87                     // dvdDao.updateDVD(dvd);
 88                     return 3;// 借出失败
 89                 }
 90             }
 91         }
 92     }
 93 
 94     @Override
 95     public int returnDVD(int rid) {
 96         Record record = recordDao.queryRecordById(rid);
 97         // System.out.println(record);
 98         if (record == null) {
 99             return 1;// 输入不正确
100         } else if (record.getReturnTime() != null) {
101 
102             return 2;// dvd已经归还
103         } else {
104             record.setReturnTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
105             boolean flag1 = recordDao.updateRecord(record);// 更新记录
106             // System.out.println("更新flag= " + flag1);
107             DVD dvd = dvdDao.queryDVDById(record.getDid());// 打到对应的dvd
108             dvd.setStatus(1);// 可借状态
109             boolean flag2 = dvdDao.updateDVD(dvd);
110             // System.out.println("更新flag2= " + flag2);
111             if (flag1 && flag2) {
112                 return 3;// 归还成功
113             } else {
114                 dvd.setStatus(0);// 未还状态
115                 dvdDao.updateDVD(dvd);
116                 return 4;// 归还失败
117             }
118         }
119     }
120 
121     @Override
122     public List<DVD> canLendDVD() {
123         return dvdDao.queryDVDByStatus(1);
124     }
125 
126     @Override
127     public List<DVD> hasLendedDvD() {
128         return dvdDao.queryDVDByStatus(0);
129     }
130 
131 }

 

 

 RecordBizImpl.java

 1 package com.dvd.biz.Impl;
 2 
 3 import java.util.List;
 4 
 5 import com.dvd.biz.RecordBiz;
 6 import com.dvd.dao.RecordDao;
 7 import com.dvd.dao.impl.RecordDaoImpl;
 8 import com.dvd.entiy.Record2;
 9 
10 public class RecordBizImpl implements RecordBiz {
11     private RecordDao recordDao = null;
12 
13     public RecordBizImpl() {
14         recordDao = new RecordDaoImpl();
15     }
16 
17     @Override
18     public List<Record2> queryUserRecords(String uname) {
19         return recordDao.queryRecordByUname(uname);
20     }
21 
22     @Override
23     public List<Record2> queryDVDRecords(String dname) {
24         return recordDao.queryRecordByDname(dname);
25     }
26 
27     @Override
28     public List<Record2> queryHasReturnRecords(String uname) {
29         return recordDao.queryUserRecordByReturnTime(true, uname);
30     }
31 
32     @Override
33     public List<Record2> queryNoReturnRecords(String uname) {
34         // TODO 自动生成的方法存根
35         return recordDao.queryUserRecordByReturnTime(false, uname);
36     }
37 
38     @Override
39     public List<Record2> queryAllRecords() {
40         // TODO 自动生成的方法存根
41         return recordDao.queryAllRecord();
42     }
43 
44 }

 

 

 UserBizImpl.java

 1 package com.dvd.biz.Impl;
 2 
 3 import com.dvd.biz.UserBiz;
 4 import com.dvd.dao.UserDao;
 5 import com.dvd.dao.impl.UserDaoImpl;
 6 import com.dvd.entiy.User;
 7 
 8 public class UserBizImpl implements UserBiz {
 9     private UserDao userDao = null;
10 
11     public UserBizImpl() {
12         userDao = new UserDaoImpl();
13     }
14 
15     @Override
16     public User login(User user) {
17         return userDao.queryUser(user);
18     }
19 
20     @Override
21     public int registerUser(User user) {
22         if (userDao.queryUser(user) != null) {
23             return 1;// 此用户名已经存在
24         } else {
25             boolean res = userDao.saveUser(user);
26             if (res) {
27                 return 2;// 注册成功
28             } else {
29                 return 3;// 注册失败
30             }
31         }
32     }
33 
34 }

 

 

 

 

 

 AdminDVDOperatorView.java

  1 package com.dvd.view;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.GridLayout;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7 import java.awt.event.ItemEvent;
  8 import java.awt.event.ItemListener;
  9 import java.awt.event.MouseAdapter;
 10 import java.awt.event.MouseEvent;
 11 import java.util.ArrayList;
 12 import java.util.List;
 13 
 14 import javax.swing.BorderFactory;
 15 import javax.swing.JButton;
 16 import javax.swing.JComboBox;
 17 import javax.swing.JInternalFrame;
 18 import javax.swing.JLabel;
 19 import javax.swing.JOptionPane;
 20 import javax.swing.JPanel;
 21 import javax.swing.JScrollPane;
 22 import javax.swing.JTable;
 23 import javax.swing.JTextField;
 24 import javax.swing.event.TableModelListener;
 25 import javax.swing.table.TableModel;
 26 
 27 import com.dvd.Util.DVDUtil;
 28 import com.dvd.biz.DVDBiz;
 29 import com.dvd.biz.Impl.DVDBizImpl;
 30 import com.dvd.entiy.DVD;
 31 
 32 public class AdminDVDOperatorView extends JInternalFrame {
 33 
 34     private static final long serialVersionUID = -3558209667843105955L;
 35     private DVDBiz dvdBiz = null;
 36     private List<DVD> dvdList = null;
 37     private DVDInfoTableModel infoTableModel = null;
 38 
 39     private JPanel paneltable = null;
 40     private JScrollPane jScrollPanetable = null;// 用来保存Jtable的一个面板
 41     private JTable table = null;// 声明JTable
 42     private JPanel panelmanage = null;
 43     private JPanel manage = null;// 声明信息
 44 
 45     private JPanel panelbutton = null;// 按钮面板
 46     private JTextField tf_search = null;
 47     private JButton btn_search = null;
 48     private JButton btn_add = null;
 49     private JButton btn_updata = null;
 50     private JButton btn_del = null;
 51     private JButton btn_exit = null;
 52     private JComboBox<String> cb_type = null;
 53     private JLabel lb_type = null;
 54 
 55     private JLabel lb_name = null;
 56     private JLabel lb_count = null;
 57     private JLabel lb_status = null;
 58     private JTextField tf_name = null;
 59     private JTextField tf_count = null;
 60     private JComboBox<String> cb_status = null;
 61 
 62     public AdminDVDOperatorView() {
 63         dvdBiz = new DVDBizImpl();
 64         init();
 65         registerListener();
 66     }
 67 
 68     private void init() {
 69         this.setTitle("DVD租赁记录查询");
 70         this.setSize(525, 450);
 71         this.setIconifiable(true);// 窗体可最小化
 72         this.setClosable(true);// 窗体可被关闭
 73         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 74         // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 75         this.setLayout(new BorderLayout());
 76         dvdList = new ArrayList<DVD>();
 77 
 78         lb_name = new JLabel("DVD名字", JLabel.CENTER);
 79         lb_count = new JLabel("借出次数", JLabel.CENTER);
 80         lb_status = new JLabel("DVD状态", JLabel.CENTER);
 81         tf_name = new JTextField(8);
 82         tf_count = new JTextField(8);
 83         cb_status = new JComboBox<String>(new String[] { "已借", "可借" });
 84         paneltable = new JPanel(new BorderLayout());
 85         panelmanage = new JPanel();
 86         manage = new JPanel();
 87 
 88         table = new JTable();
 89 
 90         // 让JTable绑定数据模型呈现数据
 91 
 92         refreshTable(dvdList);
 93 
 94         manage.add(lb_name);
 95         manage.add(tf_name);
 96         manage.add(lb_count);
 97         manage.add(tf_count);
 98         manage.add(lb_status);
 99         manage.add(cb_status);
100 
101         jScrollPanetable = new JScrollPane();// 创建面板
102         // 给面板设置边框
103         paneltable
104                 .setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "DVD记录查询 "));
105         jScrollPanetable.setViewportView(table);
106         paneltable.add(jScrollPanetable);
107         panelmanage.add(manage);
108         paneltable.add(panelmanage, BorderLayout.SOUTH);
109         this.add(paneltable, BorderLayout.CENTER);
110         // 给面板设置边框
111         panelmanage.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null)));
112 
113         panelbutton = new JPanel(new GridLayout(9, 1, 5, 10));
114         // 给面板设置边框
115         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
116         this.add(panelbutton, BorderLayout.EAST);
117         lb_type = new JLabel("查询类型");
118         panelbutton.add(lb_type);
119         cb_type = new JComboBox<String>(new String[] { "所有DVD", "DVD编号", "DVD名字" });
120         panelbutton.add(cb_type);
121 
122         tf_search = new JTextField();
123         panelbutton.add(tf_search);
124 
125         btn_search = new JButton("查询");
126         panelbutton.add(btn_search);
127         tf_search.setEditable(false);// 默认不可用
128 
129         btn_add = new JButton("添加DVD");
130         panelbutton.add(btn_add);
131 
132         btn_updata = new JButton("更新DVD");
133         panelbutton.add(btn_updata);
134         btn_updata.setEnabled(false);// 默认不可用
135 
136         btn_del = new JButton("删除DVD");
137         panelbutton.add(btn_del);
138         btn_del.setEnabled(false);// 默认不可用
139 
140         panelbutton.add(new JLabel());
141         this.getRootPane().setDefaultButton(btn_search);// 设置默认获取的焦点
142 
143         btn_exit = new JButton("退出窗口");
144         panelbutton.add(btn_exit);
145 
146         this.setVisible(true);
147     }
148 
149     private void registerListener() {
150 
151         btn_exit.addActionListener(new ActionListener() {
152 
153             @Override
154             public void actionPerformed(ActionEvent e) {
155                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定退出?", "确认信息",
156                         JOptionPane.YES_NO_OPTION);
157                 if (flag == JOptionPane.YES_OPTION) {
158                     AdminDVDOperatorView.this.dispose();
159                 }
160             }
161         });
162 
163         btn_del.addActionListener(new ActionListener() {
164 
165             @Override
166             public void actionPerformed(ActionEvent e) {
167                 int row = table.getSelectedRow();// 取得选中的那行
168                 int did = (Integer) table.getValueAt(row, 0);
169                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定删除DVD?", "确认信息",
170                         JOptionPane.YES_NO_OPTION);
171                 if (flag == JOptionPane.YES_OPTION) {
172                     boolean res = dvdBiz.delDVD(did);
173                     if (res) {
174                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "删除成功!");
175                         return;
176                     } else {
177                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "删除失败,请联系管理员!!");
178                         return;
179                     }
180                 }
181             }
182         });
183 
184         btn_updata.addActionListener(new ActionListener() {
185 
186             @Override
187             public void actionPerformed(ActionEvent e) {
188                 String dname = tf_name.getText().trim();
189                 String dcount = tf_count.getText().trim();
190                 int status = cb_status.getSelectedIndex();
191                 if (dname.equals("")) {
192                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD名字不能为空");
193                     return;
194                 } else if (dcount.equals("")) {
195                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "借出次数不能为空");
196                     return;
197                 }
198                 if (!DVDUtil.isNumber(dcount)) {
199                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD借出次数只能是数字");
200                     return;
201                 }
202                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定更新DVD?", "确认信息",
203                         JOptionPane.YES_NO_OPTION);
204 
205                 if (flag == JOptionPane.YES_OPTION) {
206                     int row = table.getSelectedRow();
207                     boolean res = dvdBiz
208                             .modifyDVD(new DVD((Integer) table.getValueAt(row, 0), dname, new Integer(dcount), status));
209                     System.out.println(res);
210                     if (res) {
211                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "更新成功!");
212                         return;
213                     } else {
214                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "更新失败,请联系管理员!");
215                         return;
216                     }
217                 }
218             }
219         });
220 
221         table.addMouseListener(new MouseAdapter() {
222             @Override
223             public void mouseClicked(MouseEvent e) {
224                 /// 假设选中一行,更新删除按钮可用
225                 if (table.getSelectedRow() != -1) {
226                     btn_del.setEnabled(true);
227                     btn_updata.setEnabled(true);
228 
229                 }
230                 int row = table.getSelectedRow();// 得到你所选中那行的下标
231                 String dname = table.getValueAt(row, 1).toString();
232                 String dcount = table.getValueAt(row, 2).toString();
233                 String status = table.getValueAt(row, 3).toString();
234                 tf_name.setText(dname);
235                 tf_count.setText(dcount);
236                 cb_status.setSelectedItem(status);
237             }
238         });
239 
240         cb_type.addItemListener(new ItemListener() {
241 
242             @Override
243             public void itemStateChanged(ItemEvent e) {
244                 String item = e.getItem().toString();
245                 tf_search.setText("");
246                 if (item.equals("所有DVD")) {
247                     tf_search.setEditable(false);
248                 } else {
249                     tf_search.setEditable(true);
250                 }
251             }
252         });
253 
254         btn_add.addActionListener(new ActionListener() {
255 
256             @Override
257             public void actionPerformed(ActionEvent e) {
258                 String dname = tf_name.getText().trim();
259                 String dcount = tf_count.getText().trim();
260                 int status = cb_status.getSelectedIndex();// 0代表已经借出,1代表可借
261                 if (dname.equals("")) {
262                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD名字不能为空");
263                     return;
264                 } else if (dcount.equals("")) {
265                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "借出次数不能为空");
266                     return;
267                 }
268                 if (!DVDUtil.isNumber(dcount)) {
269                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD借出次数只能是数字");
270                     return;
271                 }
272                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定添加DVD?", "确认信息",
273                         JOptionPane.YES_NO_OPTION);
274 
275                 if (flag == JOptionPane.YES_OPTION) {
276                     boolean res = dvdBiz.addDVD(new DVD(dname, new Integer(dcount), status));
277                     if (res) {
278                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "添加成功!");
279                         return;
280                     } else {
281                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "添加失败,请联系管理员!!");
282                         return;
283                     }
284                 }
285             }
286         });
287 
288         btn_search.addActionListener(new ActionListener() {
289 
290             @Override
291             public void actionPerformed(ActionEvent e) {
292 
293                 int index = cb_type.getSelectedIndex();
294                 String content = tf_search.getText().trim();
295                 if (index != 0 && content.equals("")) {
296                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "查询的内容不能为空");
297                     return;
298                 }
299                 // 先清除数据 ,防止数据 的累加
300                 if (dvdList != null) {
301                     dvdList.clear();
302                 }
303                 if (index == 0) {
304                     dvdList = dvdBiz.queryAllDVDs();
305                 } else if (index == 1) {
306                     tf_search.setEnabled(true);// 输入框可用
307                     if (DVDUtil.isNumber(content)) {
308                         DVD dvd = dvdBiz.queryDVDById(Integer.parseInt(content));
309                         if (dvd != null) {
310                             dvdList.add(dvd);
311                         }
312                     } else {
313                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "输入的编号只能是数字");
314                         return;
315                     }
316                 } else {
317                     dvdList = dvdBiz.queryDVDByName(content);
318                 }
319                 refreshTable(dvdList);
320                 btn_del.setEnabled(false);
321                 btn_updata.setEnabled(false);
322                 if (dvdList.size() == 0) {
323                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "没有你要查询的记录!");
324                     return;
325                 }
326             }
327         });
328     }
329 
330     private class DVDInfoTableModel implements TableModel {
331         private List<DVD> dvdsList = null;
332 
333         private DVDInfoTableModel(List<DVD> dvdList) {
334             this.dvdsList = dvdList;
335         }
336 
337         @Override
338         public void addTableModelListener(TableModelListener l) {
339 
340         }
341 
342         // JTable 列的数据类型
343         public Class<?> getColumnClass(int columnIndex) {
344 
345             return String.class;
346         }
347 
348         // JTable数据 的列数
349         public int getColumnCount() {
350 
351             return 4;
352         }
353 
354         // 设置 JTable数据 的列名
355         public String getColumnName(int columnIndex) {
356             if (columnIndex == 0) {
357                 return "影碟ID";
358             } else if (columnIndex == 1) {
359                 return "影碟名字";
360             } else if (columnIndex == 2) {
361                 return "影碟借出次数";
362             } else if (columnIndex == 3) {
363                 return "影碟状态";
364             } else {
365                 return "出错";
366             }
367         }
368 
369         // JTable显示 的行数
370         public int getRowCount() {
371 
372             return dvdsList.size();
373         }
374 
375         // 获取JTable中指定行指定单元格的数据
376         public Object getValueAt(int rowIndex, int columnIndex) {
377             DVD dvd = dvdsList.get(rowIndex);
378             if (columnIndex == 0) {
379                 return dvd.getId();
380             } else if (columnIndex == 1) {
381                 return dvd.getDname();
382             } else if (columnIndex == 2) {
383                 return dvd.getDcount();
384             } else if (columnIndex == 3) {
385                 return "" + (dvd.getStatus() == 1 ? "可借" : "已借");
386             } else {
387                 return "出错";
388             }
389         }
390 
391         // 设置单元格是否可以编辑
392         public boolean isCellEditable(int rowIndex, int columnIndex) {
393 
394             return false;
395         }
396 
397         @Override
398         public void removeTableModelListener(TableModelListener l) {
399 
400         }
401 
402         @Override
403         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
404 
405         }
406 
407     }
408 
409     // 刷新Jtable并显示数据
410     private void refreshTable(List<DVD> dvdList) {
411         infoTableModel = new DVDInfoTableModel(dvdList);
412         table.setModel(infoTableModel);
413     }
414 }

 

 

 AdminMainView.java

  1 package com.dvd.view;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.Color;
  5 import java.awt.EventQueue;
  6 import java.awt.Font;
  7 import java.awt.GridLayout;
  8 import java.awt.event.ActionEvent;
  9 import java.awt.event.ActionListener;
 10 
 11 import javax.swing.BorderFactory;
 12 import javax.swing.ImageIcon;
 13 import javax.swing.JButton;
 14 import javax.swing.JDesktopPane;
 15 import javax.swing.JFrame;
 16 import javax.swing.JLabel;
 17 import javax.swing.JOptionPane;
 18 import javax.swing.JPanel;
 19 
 20 import com.dvd.entiy.User;
 21 
 22 public class AdminMainView extends JFrame {
 23     private static final long serialVersionUID = -7828161836358813128L;
 24 
 25     private JPanel panel_main = null;
 26     private JPanel panel_wel = null;
 27     private JDesktopPane desktopPane = null;
 28     private JPanel panel_btn = null;
 29 
 30     private JButton btn_query_rent_dvd = null;
 31     private JButton btn_dvd_record = null;
 32     private JButton btn_exit = null;
 33 
 34     private JLabel lb_welcome = null;
 35     private JLabel desk_img = null;
 36     private User user = null;
 37 
 38     public AdminMainView(User user) {
 39         this.user = user;
 40         init();
 41         registerListener();
 42 
 43     }
 44 
 45     private void init() {
 46 
 47         panel_main = new JPanel(new BorderLayout());
 48         panel_wel = new JPanel();
 49         desktopPane = new JDesktopPane();
 50         panel_btn = new JPanel(new GridLayout(7, 1, 0, 35));
 51 
 52         btn_query_rent_dvd = new JButton("管理员DVD查询操作");
 53         btn_dvd_record = new JButton("DVD租赁记录查询");
 54         btn_exit = new JButton("退出窗口");
 55         /*
 56          * 快捷功能区
 57          */
 58 
 59         panel_btn.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "快捷功能区"));
 60         panel_btn.add(new JLabel());
 61         panel_btn.add(new JLabel());
 62         panel_btn.add(btn_query_rent_dvd);
 63         panel_btn.add(btn_dvd_record);
 64         panel_btn.add(btn_exit);
 65         panel_btn.add(new JLabel());
 66         panel_btn.add(new JLabel());
 67 
 68         /*
 69          * 欢迎区
 70          */
 71         lb_welcome = new JLabel("欢  迎   " + user.getUname() + "  使  用  影  碟  租  赁  管  理  系  统");
 72         lb_welcome.setFont(new Font("宋体", Font.BOLD, 23));
 73         lb_welcome.setForeground(Color.BLUE);
 74         panel_wel.add(lb_welcome);
 75         EventQueue.invokeLater(new Runnable() {
 76 
 77             @Override
 78             public void run() {
 79                 new Thread(new DynaminThread()).start();
 80 
 81             }
 82         });
 83         /*
 84          * 主面板
 85          */
 86         ImageIcon image = new ImageIcon("src/images/main.png");
 87         desk_img = new JLabel(image);
 88         desk_img.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());
 89         desktopPane.add(desk_img, new Integer(Integer.MIN_VALUE));
 90 
 91         panel_main.add(panel_wel, BorderLayout.NORTH);
 92         panel_main.add(panel_btn, BorderLayout.EAST);
 93         panel_main.add(desktopPane, BorderLayout.CENTER);
 94 
 95         this.getContentPane().add(panel_main);
 96         this.setTitle("管理员操作主面板");
 97         // this.setSize(1000, 650);
 98         this.pack();
 99         this.setResizable(false);
100         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
101         this.setLocationRelativeTo(null);
102         this.setVisible(true);
103     }
104 
105     private void registerListener() {
106 
107         /*
108          * 管理员DVD查询操作
109          */
110         btn_query_rent_dvd.addActionListener(new ActionListener() {
111 
112             @Override
113             public void actionPerformed(ActionEvent e) {
114                 AdminDVDOperatorView qdv = new AdminDVDOperatorView();
115                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
116                 qdv.toFront();// 视图显示 的前面
117 
118             }
119         });
120 
121         /*
122          * DVD租赁记录查询
123          */
124         btn_dvd_record.addActionListener(new ActionListener() {
125 
126             @Override
127             public void actionPerformed(ActionEvent e) {
128                 AdminQueryDVDRecord qdv = new AdminQueryDVDRecord();
129                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
130                 qdv.toFront();// 视图显示 的前面
131 
132             }
133         });
134 
135         /*
136          * 退出窗口
137          */
138         btn_exit.addActionListener(new ActionListener() {
139 
140             @Override
141             public void actionPerformed(ActionEvent e) {
142                 int flag = JOptionPane.showConfirmDialog(AdminMainView.this, "是否确定退出窗口", "确认信息",
143                         JOptionPane.YES_NO_OPTION);
144                 if (flag == JOptionPane.YES_OPTION) {
145                     System.exit(0);// 关闭窗体,并释放全部资源。
146                     // AdminMainView.this.dispose();// 关闭窗体,释放一部分资源。
147                 }
148             }
149         });
150 
151     }
152 
153     /**
154      * 这是一个线程类,专门用来进行对欢迎Label标签进行移动
155      * 
156      * @author LZC
157      *
158      */
159     private class DynaminThread implements Runnable {
160 
161         @Override
162         public void run() {
163             while (true) {
164                 for (int i = 780; i > -650; i--) {
165                     try {
166                         Thread.sleep(10);
167                     } catch (InterruptedException e) {
168                         e.printStackTrace();
169                     }
170                     lb_welcome.setLocation(i, 5);
171                 }
172             }
173 
174         }
175     }
176 
177 }

 

 

 AdminQueryDVDRecord.java

  1 package com.dvd.view;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.GridLayout;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7 import java.util.ArrayList;
  8 import java.util.List;
  9 
 10 import javax.swing.BorderFactory;
 11 import javax.swing.JButton;
 12 import javax.swing.JComboBox;
 13 import javax.swing.JInternalFrame;
 14 import javax.swing.JLabel;
 15 import javax.swing.JOptionPane;
 16 import javax.swing.JPanel;
 17 import javax.swing.JScrollPane;
 18 import javax.swing.JTable;
 19 import javax.swing.JTextField;
 20 import javax.swing.event.TableModelListener;
 21 import javax.swing.table.TableModel;
 22 
 23 import com.dvd.biz.RecordBiz;
 24 import com.dvd.biz.Impl.RecordBizImpl;
 25 import com.dvd.entiy.Record2;
 26 
 27 public class AdminQueryDVDRecord extends JInternalFrame {
 28 
 29     private static final long serialVersionUID = -3558209667843105955L;
 30     private JScrollPane jScrollPanetable = null;// 用来保存Jtable的一个面板
 31     private JTable table = null;// 声明JTable
 32 
 33     private JPanel panelbutton = null;// 按钮面板
 34     private JTextField tf_insert = null;
 35     private JButton btn_search = null;
 36     // private JButton btn_rent = null;
 37     private JButton btn_exit = null;
 38     private JComboBox<String> cb_type = null;
 39     private JLabel lb_type = null;
 40 
 41     private List<Record2> record2List = null;
 42     private DVDInfoTableModel infoTableModel = null;
 43     RecordBiz recordBiz = null;
 44 
 45     public AdminQueryDVDRecord() {
 46 
 47         init();
 48         registerLister();
 49 
 50     }
 51 
 52     private void init() {
 53         this.setTitle("DVD租赁记录查询");
 54         this.setSize(525, 450);
 55         this.setIconifiable(true);// 窗体可最小化
 56         this.setClosable(true);// 窗体可被关闭
 57         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 58         this.setLayout(new BorderLayout());
 59 
 60         recordBiz = new RecordBizImpl();
 61 
 62         record2List = new ArrayList<Record2>();
 63         table = new JTable();
 64         jScrollPanetable = new JScrollPane();// 创建面板
 65         // 给面板设置边框
 66         jScrollPanetable
 67                 .setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "DVD记录查询 "));
 68         jScrollPanetable.setViewportView(table);
 69         this.add(jScrollPanetable, BorderLayout.CENTER);
 70 
 71         panelbutton = new JPanel(new GridLayout(9, 1, 10, 10));
 72         // 给面板设置边框
 73         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
 74         this.add(panelbutton, BorderLayout.EAST);
 75         refreshTable(record2List);
 76         lb_type = new JLabel("查询类型");
 77         panelbutton.add(lb_type);
 78         cb_type = new JComboBox<String>(new String[] { "指定用户租赁记录", "指定DVD租赁记录" });
 79         panelbutton.add(cb_type);
 80 
 81         tf_insert = new JTextField();
 82         panelbutton.add(tf_insert);
 83 
 84         btn_search = new JButton("查询");
 85         panelbutton.add(btn_search);
 86 
 87         panelbutton.add(new JLabel());
 88         panelbutton.add(new JLabel());
 89         panelbutton.add(new JLabel());
 90         panelbutton.add(new JLabel());
 91 
 92         btn_exit = new JButton("退出窗口");
 93         panelbutton.add(btn_exit);
 94         this.getRootPane().setDefaultButton(btn_search);// 默认查询为获得焦点的按钮
 95         this.setVisible(true);
 96     }
 97 
 98     private void registerLister() {
 99         btn_search.addActionListener(new ActionListener() {
100 
101             @Override
102             public void actionPerformed(ActionEvent e) {
103                 String content = tf_insert.getText().trim();
104                 int index = cb_type.getSelectedIndex();
105                 if (content.equals("")) {
106                     JOptionPane.showInternalMessageDialog(AdminQueryDVDRecord.this, "查询内容不能为空");
107                     return;
108                 }
109                 // record2List = recordBiz.queryHasReturnRecords(content);
110                 // 先清除数据 ,防止数据 的累加
111                 if (record2List != null) {
112                     record2List.clear();
113                 }
114                 List<Record2> record22List = new ArrayList<Record2>();
115                 if (index == 0) {
116                     record22List = recordBiz.queryUserRecords(content);
117                 } else {
118                     record22List = recordBiz.queryDVDRecords(content);
119                 }
120                 refreshTable(record22List);
121                 if (record22List.size() == 0) {
122                     JOptionPane.showInternalMessageDialog(AdminQueryDVDRecord.this, "没有你要查询的记录!");
123                     return;
124                 }
125 
126             }
127         });
128         btn_exit.addActionListener(new ActionListener() {
129 
130             @Override
131             public void actionPerformed(ActionEvent arg0) {
132                 int flag = JOptionPane.showInternalConfirmDialog(AdminQueryDVDRecord.this, "是否确定退出?", "确认信息",
133                         JOptionPane.YES_NO_OPTION);
134                 if (flag == JOptionPane.YES_OPTION) {
135                     AdminQueryDVDRecord.this.dispose();
136                 }
137 
138             }
139         });
140 
141     }
142 
143     private class DVDInfoTableModel implements TableModel {
144         private List<Record2> record2List = null;
145 
146         private DVDInfoTableModel(List<Record2> record2List) {
147             this.record2List = record2List;
148         }
149 
150         @Override
151         public void addTableModelListener(TableModelListener l) {
152             // TODO 自动生成的方法存根
153 
154         }
155 
156         // JTable 列的数据类型
157         public Class<?> getColumnClass(int columnIndex) {
158             // TODO 自动生成的方法存根
159             return String.class;
160         }
161 
162         // JTable数据 的列数
163         public int getColumnCount() {
164             // TODO 自动生成的方法存根
165             return 6;
166         }
167 
168         @Override
169         public String getColumnName(int columnIndex) {
170             if (columnIndex == 0) {
171                 return "记录ID";
172             } else if (columnIndex == 1) {
173                 return "影碟ID号";
174             } else if (columnIndex == 2) {
175                 return "用户名";
176             } else if (columnIndex == 3) {
177                 return "影碟名字";
178             } else if (columnIndex == 4) {
179                 return "租赁时间";
180             } else if (columnIndex == 5) {
181                 return "归还时间";
182             } else {
183                 return "出错";
184             }
185         }
186 
187         // JTable显示 的行数
188         public int getRowCount() {
189             // TODO 自动生成的方法存根
190             return record2List.size();
191         }
192 
193         // 获取JTable中指定行指定单元格的数据
194         public Object getValueAt(int rowIndex, int columnIndex) {
195             Record2 record = record2List.get(rowIndex);
196             if (columnIndex == 0) {
197                 return record.getId();
198             } else if (columnIndex == 1) {
199                 return record.getDid();
200             } else if (columnIndex == 2) {
201                 return record.getUname();
202             } else if (columnIndex == 3) {
203                 return record.getDname();
204             } else if (columnIndex == 4) {
205                 return record.getLendTime();
206             } else if (columnIndex == 5) {
207                 return record.getReturnTime();
208             } else {
209                 return "出错";
210             }
211         }
212 
213         @Override
214         public boolean isCellEditable(int rowIndex, int columnIndex) {
215             // TODO 自动生成的方法存根
216             return false;
217         }
218 
219         @Override
220         public void removeTableModelListener(TableModelListener l) {
221             // TODO 自动生成的方法存根
222 
223         }
224 
225         @Override
226         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
227             // TODO 自动生成的方法存根
228 
229         }
230 
231     }
232 
233     private void refreshTable(List<Record2> record2List) {
234         infoTableModel = new DVDInfoTableModel(record2List);
235         table.setModel(infoTableModel);
236     }
237 
238 }

 

 

 LoginView.java

  1 package com.dvd.view;
  2 
  3 import java.awt.GridLayout;
  4 import java.awt.event.ActionEvent;
  5 import java.awt.event.ActionListener;
  6 
  7 import javax.swing.ImageIcon;
  8 import javax.swing.JButton;
  9 import javax.swing.JComboBox;
 10 import javax.swing.JFrame;
 11 import javax.swing.JLabel;
 12 import javax.swing.JOptionPane;
 13 import javax.swing.JPanel;
 14 import javax.swing.JPasswordField;
 15 import javax.swing.JTextField;
 16 
 17 import com.dvd.biz.UserBiz;
 18 import com.dvd.biz.Impl.UserBizImpl;
 19 import com.dvd.entiy.User;
 20 
 21 public class LoginView extends JFrame {
 22 
 23     private static final long serialVersionUID = 7893951512570101893L;
 24 
 25     private UserBiz userBiz = null;
 26 
 27     private JPanel panel_main = null;
 28     private JPanel panel_left = null;
 29     private JPanel panel_right = null;
 30 
 31     private JLabel lb_img = null;
 32     private JLabel lb_uname = null;
 33     private JLabel lb_upass = null;
 34     private JLabel lb_type = null;
 35 
 36     private JTextField tf_uname = null;
 37     private JPasswordField pf_upass = null;
 38     private JComboBox<String> cb_type = null;
 39 
 40     private JButton btn_login = null;
 41     private JButton btn_register = null;
 42 
 43     public LoginView() {
 44         userBiz = new UserBizImpl();
 45         init();
 46         registerListener();
 47     }
 48 
 49     private void init() {
 50         this.setSize(320, 220);
 51         this.setResizable(false);
 52         this.setLocationRelativeTo(null);// 窗口在中间打开
 53         this.setTitle("登录窗口");
 54         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 55         panel_main = new JPanel(new GridLayout(1, 2));
 56         panel_left = new JPanel();
 57         panel_right = new JPanel(new GridLayout(4, 2, 10, 0));
 58 
 59         lb_img = new JLabel(new ImageIcon(ClassLoader.getSystemResource("images/login.png")));
 60         lb_uname = new JLabel("用  户:", JLabel.CENTER);
 61         lb_upass = new JLabel("密  码:", JLabel.CENTER);
 62         lb_type = new JLabel("类  型:", JLabel.CENTER);
 63 
 64         tf_uname = new JTextField(8);
 65         pf_upass = new JPasswordField(8);
 66         cb_type = new JComboBox<String>(new String[] { "普通用户", "管理员" });
 67 
 68         btn_login = new JButton("登录");
 69         btn_register = new JButton("注册");
 70         this.getRootPane().setDefaultButton(btn_login);// 默认登录为获得焦点的按钮
 71 
 72         panel_left.add(lb_img);
 73         panel_right.add(lb_uname);
 74         panel_right.add(tf_uname);
 75         panel_right.add(lb_upass);
 76         panel_right.add(pf_upass);
 77         panel_right.add(lb_type);
 78         panel_right.add(cb_type);
 79         panel_right.add(btn_login);
 80         panel_right.add(btn_register);
 81 
 82         panel_main.add(panel_left);
 83         panel_main.add(panel_right);
 84 
 85         this.getContentPane().add(panel_main);
 86         this.pack();
 87         this.setVisible(true);
 88 
 89     }
 90 
 91     private void registerListener() {
 92         btn_login.addActionListener(new ActionListener() {
 93 
 94             @Override
 95             public void actionPerformed(ActionEvent arg0) {
 96                 String uname = tf_uname.getText().trim();
 97                 String upass = new String(pf_upass.getPassword());
 98                 int type = cb_type.getSelectedIndex() + 1;
 99                 if (uname.equals("")) {
100                     JOptionPane.showMessageDialog(LoginView.this, "用户名不能为空");
101                     return;
102                 } else if (upass.equals("")) {
103                     JOptionPane.showMessageDialog(LoginView.this, "密码不能为空");
104                     return;
105                 }
106                 User user = new User(uname, upass, type);
107                 user = userBiz.login(user);
108                 if (user != null) {
109                     if (user.getType() == 1) {
110                         new UserMainView(user);
111                     } else {
112                         new AdminMainView(user);
113                     }
114                     LoginView.this.dispose();// 打开新的窗口,旧的窗口自动关闭
115                 } else {
116                     JOptionPane.showMessageDialog(LoginView.this, "用户名或密码出错");
117                     return;
118                 }
119             }
120         });
121 
122         btn_register.addActionListener(new ActionListener() {
123 
124             @Override
125             public void actionPerformed(ActionEvent arg0) {
126                 new UserRegisterView();// 弹出注册视图
127 
128             }
129         });
130 
131     }
132 
133 }

 

 

 UserMainView.java

  1 package com.dvd.view;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.Color;
  5 import java.awt.EventQueue;
  6 import java.awt.Font;
  7 import java.awt.GridLayout;
  8 import java.awt.event.ActionEvent;
  9 import java.awt.event.ActionListener;
 10 
 11 import javax.swing.BorderFactory;
 12 import javax.swing.ImageIcon;
 13 import javax.swing.JButton;
 14 import javax.swing.JDesktopPane;
 15 import javax.swing.JFrame;
 16 import javax.swing.JLabel;
 17 import javax.swing.JOptionPane;
 18 import javax.swing.JPanel;
 19 
 20 import com.dvd.entiy.User;
 21 
 22 public class UserMainView extends JFrame {
 23     private static final long serialVersionUID = -7828161836358813128L;
 24 
 25     private JPanel panel_main = null;
 26     private JPanel panel_wel = null;
 27     private JDesktopPane desktopPane = null;
 28     private JPanel panel_btn = null;
 29 
 30     private JButton btn_query_rent_dvd = null;
 31     private JButton btn_dvd_record = null;
 32     private JButton btn_exit = null;
 33 
 34     private JLabel lb_welcome = null;
 35     private JLabel desk_img = null;
 36     private User user = null;
 37 
 38     public UserMainView(User user) {
 39         this.user = user;
 40         init();
 41         registerListener(this.user);
 42 
 43     }
 44 
 45     private void init() {
 46 
 47         panel_main = new JPanel(new BorderLayout());
 48         panel_wel = new JPanel();
 49         desktopPane = new JDesktopPane();
 50         panel_btn = new JPanel(new GridLayout(7, 1, 0, 35));
 51 
 52         btn_query_rent_dvd = new JButton("DVD查询租赁操作");
 53         btn_dvd_record = new JButton("DVD租赁记录查询");
 54         btn_exit = new JButton("退出窗口");
 55         /*
 56          * 快捷功能区
 57          */
 58 
 59         panel_btn.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "快捷功能区"));
 60         panel_btn.add(new JLabel());
 61         panel_btn.add(new JLabel());
 62         panel_btn.add(btn_query_rent_dvd);
 63         panel_btn.add(btn_dvd_record);
 64         panel_btn.add(btn_exit);
 65         panel_btn.add(new JLabel());
 66         panel_btn.add(new JLabel());
 67 
 68         /*
 69          * 欢迎区
 70          */
 71         lb_welcome = new JLabel("欢  迎  " + user.getUname() + " 使  用  影  碟  租  赁  管  理  系  统");
 72         lb_welcome.setFont(new Font("宋体", Font.BOLD, 23));
 73         lb_welcome.setForeground(Color.BLUE);
 74         panel_wel.add(lb_welcome);
 75         EventQueue.invokeLater(new Runnable() {
 76 
 77             @Override
 78             public void run() {
 79                 new Thread(new DynaminThread()).start();
 80 
 81             }
 82         });
 83         /*
 84          * 主面板
 85          */
 86         ImageIcon image = new ImageIcon("src/images/main.png");
 87         desk_img = new JLabel(image);
 88         desk_img.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());
 89         desktopPane.add(desk_img, new Integer(Integer.MIN_VALUE));
 90 
 91         panel_main.add(panel_wel, BorderLayout.NORTH);
 92         panel_main.add(panel_btn, BorderLayout.EAST);
 93         panel_main.add(desktopPane, BorderLayout.CENTER);
 94 
 95         this.getContentPane().add(panel_main);
 96         this.setTitle("用户操作主面板");
 97         // this.setSize(1000, 650);
 98         this.pack();
 99         this.setResizable(false);
100         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
101         this.setLocationRelativeTo(null);
102         this.setVisible(true);
103     }
104 
105     private void registerListener(User user) {
106         btn_query_rent_dvd.addActionListener(new ActionListener() {
107 
108             @Override
109             public void actionPerformed(ActionEvent e) {
110                 UserQueryDVDRecordView qdv = new UserQueryDVDRecordView(user);
111 
112                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
113                 qdv.toFront();// 视图显示 的前面
114 
115             }
116         });
117         btn_dvd_record.addActionListener(new ActionListener() {
118 
119             @Override
120             public void actionPerformed(ActionEvent e) {
121                 UserQueryRentDVDView qdv = new UserQueryRentDVDView();
122                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
123                 qdv.toFront();// 视图显示 的前面
124 
125             }
126         });
127         btn_exit.addActionListener(new ActionListener() {
128 
129             @Override
130             public void actionPerformed(ActionEvent e) {
131                 int flag = JOptionPane.showConfirmDialog(UserMainView.this, "是否确定退出窗口", "确认信息",
132                         JOptionPane.YES_NO_OPTION);
133                 if (flag == JOptionPane.YES_OPTION) {
134                     System.exit(0);// 关闭窗体,并释放全部资源。
135                     // AdminMainView.this.dispose();// 关闭窗体,释放一部分资源。
136                 }
137             }
138         });
139     }
140 
141     /**
142      * 这是一个线程类,专门用来进行对欢迎Label标签进行移动
143      * 
144      * @author LZC
145      *
146      */
147     private class DynaminThread implements Runnable {
148 
149         @Override
150         public void run() {
151             while (true) {
152                 for (int i = 780; i > -650; i--) {
153                     try {
154                         Thread.sleep(10);
155                     } catch (InterruptedException e) {
156                         e.printStackTrace();
157                     }
158                     lb_welcome.setLocation(i, 5);
159                 }
160             }
161 
162         }
163     }
164 
165 }

 

 

 UserQueryDVDRecordView.java

  1 package com.dvd.view;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.GridLayout;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7 import java.awt.event.MouseAdapter;
  8 import java.awt.event.MouseEvent;
  9 import java.util.ArrayList;
 10 import java.util.List;
 11 
 12 import javax.swing.BorderFactory;
 13 import javax.swing.JButton;
 14 import javax.swing.JComboBox;
 15 import javax.swing.JInternalFrame;
 16 import javax.swing.JLabel;
 17 import javax.swing.JOptionPane;
 18 import javax.swing.JPanel;
 19 import javax.swing.JScrollPane;
 20 import javax.swing.JTable;
 21 import javax.swing.event.TableModelListener;
 22 import javax.swing.table.TableModel;
 23 
 24 import com.dvd.biz.DVDBiz;
 25 import com.dvd.biz.Impl.DVDBizImpl;
 26 import com.dvd.entiy.DVD;
 27 import com.dvd.entiy.User;
 28 
 29 public class UserQueryDVDRecordView extends JInternalFrame {
 30 
 31     private static final long serialVersionUID = -3558209667843105955L;
 32     private JScrollPane jScrollPane = null;// 用来保存Jtable的一个面板
 33     private JTable table = null;// 声明JTable
 34 
 35     private JPanel panelbutton = null;// 按钮面板
 36     private JButton btn_search = null;
 37     private JButton btn_rent = null;
 38     private JButton btn_exit = null;
 39     private JComboBox<String> cb_type = null;
 40     private JLabel lb_type = null;
 41 
 42     private DVDInfoTableModel infoTableModel = null;
 43     DVDBiz dvdBiz = null;
 44     List<DVD> dvdList = null;
 45     User user = null;
 46 
 47     public UserQueryDVDRecordView(User user) {
 48         this.user = user;
 49         dvdBiz = new DVDBizImpl();
 50         init();
 51         registerListener(this.user);
 52     }
 53 
 54     private void init() {
 55         this.setTitle("DVD信息查询");
 56         this.setSize(500, 450);
 57         this.setIconifiable(true);// 窗体可最小化
 58         this.setClosable(true);// 窗体可关闭
 59         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 60         this.setLayout(new BorderLayout());
 61 
 62         dvdList = new ArrayList<DVD>();
 63 
 64         table = new JTable();
 65 
 66         jScrollPane = new JScrollPane();// 创建面板
 67         // 给面板设置边框
 68         jScrollPane.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询信息"));
 69         jScrollPane.setViewportView(table);
 70         ;
 71         this.add(jScrollPane, BorderLayout.CENTER);
 72 
 73         panelbutton = new JPanel(new GridLayout(7, 1, 10, 30));
 74         // 给面板设置边框
 75         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
 76         this.add(panelbutton, BorderLayout.EAST);
 77 
 78         refreshTable(dvdList);
 79 
 80         lb_type = new JLabel("查询类型");
 81         panelbutton.add(lb_type);
 82         cb_type = new JComboBox<String>(new String[] { "全部DVD", "可借DVD" });
 83         panelbutton.add(cb_type);
 84         btn_search = new JButton("查询");
 85         panelbutton.add(btn_search);
 86 
 87         btn_rent = new JButton("租DVD");
 88         panelbutton.add(btn_rent);
 89         btn_rent.setEnabled(false);// 默认不可用
 90 
 91         panelbutton.add(new JLabel());
 92 
 93         panelbutton.add(new JLabel());
 94 
 95         btn_exit = new JButton("退出窗口");
 96         panelbutton.add(btn_exit);
 97 
 98         this.setVisible(true);
 99     }
100 
101     private void registerListener(User user) {
102         btn_rent.addActionListener(new ActionListener() {
103 
104             @Override
105             public void actionPerformed(ActionEvent arg0) {
106                 int row = table.getSelectedRow();// 得到你所选中那行的下标
107                 int did = (int) table.getValueAt(row, 0);
108                 // System.out.println("id编号" + did);
109                 int flag = dvdBiz.lendDVD(did, user.getId());
110                 // System.out.println(user.getId());
111                 // System.out.println("flag=" + flag);
112                 if (flag == 1) {
113                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "不可借,已经借出");
114                     return;
115                 } else if (flag == 2) {
116                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "成功租到DVD");
117                     return;
118                 } else if (flag == 3) {
119                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "租DVD失败");
120                     return;
121                 }
122             }
123         });
124 
125         table.addMouseListener(new MouseAdapter() {
126             @Override
127             public void mouseClicked(MouseEvent e) {
128                 /// 假设选中一行,租DVD按钮可用
129                 btn_rent.setEnabled(true);
130                 int row = table.getSelectedRow();// 得到你所选中那行的下标
131 
132             }
133         });
134         /*
135          * cb_type.addItemListener(new ItemListener() {
136          * 
137          * @Override public void itemStateChanged(ItemEvent e) { String item =
138          * e.getItem().toString(); if (item.equals("可借DVD")) {
139          * btn_rent.setEnabled(true); }
140          * 
141          * } });
142          */
143         btn_search.addActionListener(new ActionListener() {
144 
145             @Override
146             public void actionPerformed(ActionEvent e) {
147                 int index = cb_type.getSelectedIndex();
148                 List<DVD> dvdList = new ArrayList<DVD>();
149                 if (index == 0) {
150                     dvdList = dvdBiz.queryAllDVDs();
151                 } else {
152                     dvdList = dvdBiz.canLendDVD();
153                 }
154                 refreshTable(dvdList);
155                 if (dvdList.size() == 0) {
156                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "没有你要查询的记录!");
157                     return;
158                 }
159 
160             }
161         });
162 
163         btn_exit.addActionListener(new ActionListener() {
164 
165             @Override
166             public void actionPerformed(ActionEvent e) {
167                 int flag = JOptionPane.showInternalConfirmDialog(UserQueryDVDRecordView.this, "是否确定退出?", "确认信息",
168                         JOptionPane.YES_NO_OPTION);
169                 if (flag == JOptionPane.YES_OPTION) {
170                     UserQueryDVDRecordView.this.dispose();
171                 }
172             }
173         });
174 
175     }
176 
177     private class DVDInfoTableModel implements TableModel {
178         private List<DVD> dvdsList = null;
179 
180         private DVDInfoTableModel(List<DVD> dvdList) {
181             this.dvdsList = dvdList;
182         }
183 
184         @Override
185         public void addTableModelListener(TableModelListener l) {
186             // TODO 自动生成的方法存根
187 
188         }
189 
190         @Override
191         public Class<?> getColumnClass(int columnIndex) {
192             // TODO 自动生成的方法存根
193             return String.class;
194         }
195 
196         @Override
197         public int getColumnCount() {
198             // TODO 自动生成的方法存根
199             return 4;
200         }
201 
202         @Override
203         public String getColumnName(int columnIndex) {
204             if (columnIndex == 0) {
205                 return "影碟ID";
206             } else if (columnIndex == 1) {
207                 return "影碟名字";
208             } else if (columnIndex == 2) {
209                 return "影碟借出次数";
210             } else if (columnIndex == 3) {
211                 return "影碟状态";
212             } else {
213                 return "出错";
214             }
215         }
216 
217         @Override
218         public int getRowCount() {
219             // TODO 自动生成的方法存根
220             return dvdsList.size();
221         }
222 
223         @Override
224         public Object getValueAt(int rowIndex, int columnIndex) {
225             DVD dvd = dvdsList.get(rowIndex);
226             if (columnIndex == 0) {
227                 return dvd.getId();
228             } else if (columnIndex == 1) {
229                 return dvd.getDname();
230             } else if (columnIndex == 2) {
231                 return dvd.getDcount();
232             } else if (columnIndex == 3) {
233                 return "" + (dvd.getStatus() == 1 ? "可借" : "已借");
234             } else {
235                 return "出错";
236             }
237         }
238 
239         @Override
240         public boolean isCellEditable(int rowIndex, int columnIndex) {
241             // TODO 自动生成的方法存根
242             return false;
243         }
244 
245         @Override
246         public void removeTableModelListener(TableModelListener l) {
247             // TODO 自动生成的方法存根
248 
249         }
250 
251         @Override
252         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
253             // TODO 自动生成的方法存根
254 
255         }
256 
257     }
258 
259     // 刷新Jtable并显示数据
260     private void refreshTable(List<DVD> dvdList) {
261         infoTableModel = new DVDInfoTableModel(dvdList);
262         table.setModel(infoTableModel);
263     }
264 }

 

 

 UserQueryRentDVDView.java

  1 package com.dvd.view;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.GridLayout;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7 import java.awt.event.MouseAdapter;
  8 import java.awt.event.MouseEvent;
  9 import java.util.ArrayList;
 10 import java.util.List;
 11 
 12 import javax.swing.BorderFactory;
 13 import javax.swing.JButton;
 14 import javax.swing.JComboBox;
 15 import javax.swing.JInternalFrame;
 16 import javax.swing.JLabel;
 17 import javax.swing.JOptionPane;
 18 import javax.swing.JPanel;
 19 import javax.swing.JScrollPane;
 20 import javax.swing.JTable;
 21 import javax.swing.event.TableModelListener;
 22 import javax.swing.table.TableModel;
 23 
 24 import com.dvd.biz.DVDBiz;
 25 import com.dvd.biz.Impl.DVDBizImpl;
 26 import com.dvd.entiy.DVD;
 27 
 28 public class UserQueryRentDVDView extends JInternalFrame {
 29 
 30     private static final long serialVersionUID = -3558209667843105955L;
 31     private JScrollPane jScrollPane = null;// 用来保存Jtable的一个面板
 32     private JTable table = null;// 声明JTable
 33 
 34     private JPanel panelbutton = null;// 按钮面板
 35     private JButton btn_search = null;
 36     private JButton btn_return = null;
 37     private JButton btn_exit = null;
 38     private JComboBox<String> cb_type = null;
 39     private JLabel lb_type = null;
 40     private DVDInfoTableModel infoTableModel = null;
 41     DVDBiz dvdBiz = null;
 42 
 43     public UserQueryRentDVDView() {
 44         dvdBiz = new DVDBizImpl();
 45         init();
 46         registerListener();
 47     }
 48 
 49     private void init() {
 50         this.setTitle("DVD租赁记录查询");
 51         this.setSize(500, 450);
 52         this.setIconifiable(true);// 窗体可最小化
 53         this.setClosable(true);// 窗体可被关闭
 54         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 55         this.setLayout(new BorderLayout());
 56 
 57         table = new JTable();
 58         jScrollPane = new JScrollPane();// 创建面板
 59         // 给面板设置边框
 60         jScrollPane
 61                 .setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "本人租赁记录查询 "));
 62         jScrollPane.setViewportView(table);
 63         this.add(jScrollPane, BorderLayout.CENTER);
 64 
 65         panelbutton = new JPanel(new GridLayout(7, 1, 10, 30));
 66         // 给面板设置边框
 67         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
 68         this.add(panelbutton, BorderLayout.EAST);
 69         lb_type = new JLabel("查询类型");
 70         panelbutton.add(lb_type);
 71         cb_type = new JComboBox<String>(new String[] { "全部DVD", "未还DVD" });
 72         panelbutton.add(cb_type);
 73 
 74         btn_search = new JButton("查询");
 75         panelbutton.add(btn_search);
 76 
 77         btn_return = new JButton("还DVD");
 78         panelbutton.add(btn_return);
 79         btn_return.setEnabled(false);// 默认不可用
 80 
 81         panelbutton.add(new JLabel());
 82 
 83         panelbutton.add(new JLabel());
 84 
 85         btn_exit = new JButton("退出窗口");
 86         panelbutton.add(btn_exit);
 87 
 88         this.setVisible(true);
 89     }
 90 
 91     private void registerListener() {
 92         btn_return.addActionListener(new ActionListener() {
 93 
 94             @Override
 95             public void actionPerformed(ActionEvent e) {
 96                 int row = table.getSelectedRow();// 得到你所选中那行的下标
 97                 int rid = (int) table.getValueAt(row, 0);
 98                 // System.out.println(rid);
 99                 int flag = dvdBiz.returnDVD(rid);
100                 System.out.println(flag);
101                 if (flag == 1) {
102                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "DVD已经归还");
103                     return;
104                 } else if (flag == 2) {
105                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "DVD已经归还");
106                     return;
107                 } else if (flag == 3) {
108                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "归还成功");
109                     return;
110                 } else if (flag == 4) {
111                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "归还失败");
112                     return;
113                 }
114             }
115         });
116         table.addMouseListener(new MouseAdapter() {
117             @Override
118             public void mouseClicked(MouseEvent e) {
119                 /// 假设选中一行,还DVD按钮可用
120                 btn_return.setEnabled(true);
121 
122             }
123         });
124 
125         btn_search.addActionListener(new ActionListener() {
126 
127             @Override
128             public void actionPerformed(ActionEvent e) {
129                 int index = cb_type.getSelectedIndex();
130                 List<DVD> dvdList = new ArrayList<DVD>();
131                 if (index == 0) {
132                     dvdList = dvdBiz.queryAllDVDs();
133                 } else {
134                     dvdList = dvdBiz.hasLendedDvD();
135                 }
136                 refreshTable(dvdList);
137                 if (dvdList.size() == 0) {
138                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "没有你要查询的记录!");
139                     return;
140                 }
141 
142             }
143         });
144         btn_exit.addActionListener(new ActionListener() {
145 
146             @Override
147             public void actionPerformed(ActionEvent e) {
148                 int flag = JOptionPane.showInternalConfirmDialog(UserQueryRentDVDView.this, "是否确定退出?", "确认信息",
149                         JOptionPane.YES_NO_OPTION);
150                 if (flag == JOptionPane.YES_OPTION) {
151                     UserQueryRentDVDView.this.dispose();
152                 }
153             }
154         });
155     }
156 
157     private class DVDInfoTableModel implements TableModel {
158         private List<DVD> dvdsList = null;
159 
160         private DVDInfoTableModel(List<DVD> dvdList) {
161             this.dvdsList = dvdList;
162         }
163 
164         @Override
165         public void addTableModelListener(TableModelListener l) {
166             // TODO 自动生成的方法存根
167 
168         }
169 
170         @Override
171         public Class<?> getColumnClass(int columnIndex) {
172             // TODO 自动生成的方法存根
173             return String.class;
174         }
175 
176         @Override
177         public int getColumnCount() {
178             // TODO 自动生成的方法存根
179             return 4;
180         }
181 
182         @Override
183         public String getColumnName(int columnIndex) {
184             if (columnIndex == 0) {
185                 return "影碟ID";
186             } else if (columnIndex == 1) {
187                 return "影碟名字";
188             } else if (columnIndex == 2) {
189                 return "影碟借出次数";
190             } else if (columnIndex == 3) {
191                 return "影碟状态";
192             } else {
193                 return "出错";
194             }
195         }
196 
197         @Override
198         public int getRowCount() {
199             // TODO 自动生成的方法存根
200             return dvdsList.size();
201         }
202 
203         @Override
204         public Object getValueAt(int rowIndex, int columnIndex) {
205             DVD dvd = dvdsList.get(rowIndex);
206             if (columnIndex == 0) {
207                 return dvd.getId();
208             } else if (columnIndex == 1) {
209                 return dvd.getDname();
210             } else if (columnIndex == 2) {
211                 return dvd.getDcount();
212             } else if (columnIndex == 3) {
213                 return "" + (dvd.getStatus() == 1 ? "可借" : "已借");
214             } else {
215                 return "出错";
216             }
217         }
218 
219         @Override
220         public boolean isCellEditable(int rowIndex, int columnIndex) {
221             // TODO 自动生成的方法存根
222             return false;
223         }
224 
225         @Override
226         public void removeTableModelListener(TableModelListener l) {
227             // TODO 自动生成的方法存根
228 
229         }
230 
231         @Override
232         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
233             // TODO 自动生成的方法存根
234 
235         }
236 
237     }
238 
239     // 刷新Jtable并显示数据
240     private void refreshTable(List<DVD> dvdList) {
241         infoTableModel = new DVDInfoTableModel(dvdList);
242         table.setModel(infoTableModel);
243     }
244 
245 }
246 // UserQueryRentDVDView

 

 

 UserRegisterView.java

  1 package com.dvd.view;
  2 
  3 import java.awt.Font;
  4 import java.awt.GridLayout;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7 
  8 import javax.swing.JButton;
  9 import javax.swing.JFrame;
 10 import javax.swing.JLabel;
 11 import javax.swing.JOptionPane;
 12 import javax.swing.JPanel;
 13 import javax.swing.JPasswordField;
 14 import javax.swing.JTextField;
 15 
 16 import com.dvd.biz.UserBiz;
 17 import com.dvd.biz.Impl.UserBizImpl;
 18 import com.dvd.dao.UserDao;
 19 import com.dvd.dao.impl.UserDaoImpl;
 20 import com.dvd.entiy.User;
 21 
 22 public class UserRegisterView extends JFrame {
 23     private static final long serialVersionUID = 7893951512570101893L;
 24     private JPanel panel_main = null;
 25     private JPanel panel01 = null;
 26     private JPanel panel02 = null;
 27     private JPanel panel03 = null;
 28     private JPanel panel04 = null;
 29     private JPanel panel05 = null;
 30 
 31     private JLabel lb_name = null;
 32     private JLabel lb_init_upass = null;
 33     private JLabel lb_confirm_upass = null;
 34 
 35     private JTextField tf_name = null;
 36     private JPasswordField pf_init_upass = null;
 37     private JPasswordField pf_confirm_upass = null;
 38 
 39     private JButton btn_confirm = null;
 40     private JButton btn_back = null;
 41 
 42     UserDao userDao = null;
 43     UserBiz userBiz = null;
 44 
 45     public UserRegisterView() {
 46         userDao = new UserDaoImpl();
 47         userBiz = new UserBizImpl();
 48         init();
 49         registerListener();
 50     }
 51 
 52     private void init() {
 53         this.setSize(450, 260);
 54         this.setResizable(false);
 55         this.setLocationRelativeTo(null);// 窗口在中间打开
 56         this.setTitle("用户注册窗口");
 57         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 58         panel_main = new JPanel(new GridLayout(5, 1));
 59         JPanel panel01 = new JPanel();
 60         JPanel panel02 = new JPanel();
 61         JPanel panel03 = new JPanel();
 62         JPanel panel04 = new JPanel();
 63         JPanel panel05 = new JPanel();
 64 
 65         lb_name = new JLabel("用户名");
 66         lb_name.setFont(new Font("宋体", Font.BOLD, 15));
 67         lb_init_upass = new JLabel("初始化密码");
 68         lb_init_upass.setFont(new Font("宋体", Font.BOLD, 15));
 69         lb_confirm_upass = new JLabel("确认密码");
 70         lb_confirm_upass.setFont(new Font("宋体", Font.BOLD, 15));
 71 
 72         tf_name = new JTextField(15);
 73         pf_init_upass = new JPasswordField(15);
 74         pf_confirm_upass = new JPasswordField(15);
 75 
 76         btn_confirm = new JButton("确认提交");
 77         btn_back = new JButton("退出");
 78 
 79         panel02.add(lb_name);
 80         panel02.add(tf_name);
 81         panel03.add(lb_init_upass);
 82         panel03.add(pf_init_upass);
 83         panel04.add(lb_confirm_upass);
 84         panel04.add(pf_confirm_upass);
 85         panel05.add(btn_confirm);
 86         panel05.add(btn_back);
 87 
 88         panel_main.add(panel01);
 89         panel_main.add(panel02);
 90         panel_main.add(panel03);
 91         panel_main.add(panel04);
 92         panel_main.add(panel05);
 93 
 94         this.getContentPane().add(panel_main);
 95 
 96         this.getRootPane().setDefaultButton(btn_confirm);// 默认获得焦点的按钮
 97         this.setVisible(true);
 98 
 99     }
100 
101     private void registerListener() {
102         // 退出按钮
103         btn_back.addActionListener(new ActionListener() {
104 
105             @Override
106             public void actionPerformed(ActionEvent e) {
107                 // int flag =
108                 // JOptionPane.showInternalConfirmDialog(UserRegisterView.this,
109                 // "是否退出注册?", "退出信息",
110                 // JOptionPane.YES_NO_OPTION);
111                 int flag = JOptionPane.showConfirmDialog(UserRegisterView.this, "是否退出注册?", "确认信息",
112                         JOptionPane.YES_NO_OPTION);
113                 if (flag == JOptionPane.YES_OPTION) {
114                     UserRegisterView.this.dispose();// 窗口自动关闭
115                 }
116             }
117         });
118         // 注册按钮
119         btn_confirm.addActionListener(new ActionListener() {
120 
121             @Override
122             public void actionPerformed(ActionEvent e) {
123                 String uname = tf_name.getText();
124                 String init_upass = new String(pf_init_upass.getPassword());
125                 String upass = new String(pf_confirm_upass.getPassword());
126                 if (uname.equals("")) {
127                     JOptionPane.showMessageDialog(UserRegisterView.this, "用户名不能为空");
128                     return;
129                 } else if (init_upass.equals("")) {
130                     JOptionPane.showMessageDialog(UserRegisterView.this, "初始化密码不能为空");
131                     return;
132                 } else if (upass.equals("")) {
133                     JOptionPane.showMessageDialog(UserRegisterView.this, "确认密码不能为空");
134                     return;
135                 }
136                 User user = new User(uname, upass, 1);
137 
138                 int flag = userBiz.registerUser(user);
139                 if (flag == 1) {
140                     JOptionPane.showMessageDialog(UserRegisterView.this, "用户名已存在");
141                     return;
142                 } else if (flag == 2) {
143                     JOptionPane.showMessageDialog(UserRegisterView.this, "注册成功");
144                     return;
145                 } else if (flag == 3) {
146                     JOptionPane.showMessageDialog(UserRegisterView.this, "注册失败");
147                     return;
148                 }
149             }
150         });
151 
152     }
153 
154 }

 

 

TestLogin.java

1 package com.dvd.text;
2 
3 import com.dvd.view.LoginView;
4 
5 public class TestLogin {
6     public static void main(String[] args) {
7         new LoginView();
8     }
9 }

 

 

 

 看了那么多代码,来看看运行怎么样

 

 最后就是红色这里还没完善,有待更新

 

posted @ 2017-08-21 17:08  Kmily_Lee  阅读(1486)  评论(2编辑  收藏  举报