跟着网上的视频学的,还有个别地方写的不够好,主要学习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

  1. package com.dvd.biz;
  2.  
  3. import com.dvd.entiy.User;
  4.  
  5. public interface UserBiz {
  6. // 用户登录,返回的就是登录用户的信息(对象)
  7. public User login(User user);
  8.  
  9. // 注册用户
  10. public int registerUser(User user);
  11. }

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. }

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

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

DVD租赁系统的更多相关文章

  1. 《Java从入门到放弃》JavaSE篇:综合练习——单身狗租赁系统(数组版)

    因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内 ...

  2. 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统

    今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五 ...

  3. Java汽车租赁系统[源码+数据库]

    系统名称 Java汽车租赁系统   (源码在文末) 系统概要 汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块.其中系统模块和业务模块底下又有其子模块. 功能模块 一.业务模块 1.客户管理 ...

  4. 深入.NET和C#的小型汽车租赁系统的框架

    前言:写这个小型系统之前呢,我们应该要猜测可能要用到哪些知识点. 那么对于这个小型系统:主要用到了如下的知识:  封装,集合(ArrayList和HashTable)和泛型和非泛型集合(泛型:List ...

  5. 简易DVD查询系统

    ==========DVD管理系统========== 这是DVD任务管理器的主界面: package day20181224; import java.text.ParseException; im ...

  6. Java代码~~汽车租赁系统

    租车信息: 输出结果: 代码: 1.先定义抽象类(汽车类:Moto) package cn.aura.demo01; public abstract class Moto { //公共属性 priva ...

  7. 一种基于Java Swing/HTML/MySQL的汽车租赁系统

    该项目是一个Java的课程作业(大二),主要运用Java.Swing.HTML.MySQL,实现基本的租车逻辑.界面可视化.信息导出.数据存储等功能.实现管理员.用户两种角色登录,并结合Java开发中 ...

  8. C#汽车租赁系统 完整版

      Truck.cs类 //卡车类 public class Truck : Vehicle1 { //重载 public int Load { get; set; } //构造函数 public T ...

  9. C#汽车租赁系统

    类图: 父类(车类,抽象类) /// <summary> /// 车辆基本信息类.搞一个抽象类玩玩 /// </summary> public abstract class V ...

随机推荐

  1. Java知多少(89)列表和组合框

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

  2. centos7系统下安装php-fpm并配置nginx支持并开启网站gzip压缩

    注:此处不介绍nginx的安装.以下教程默认已安装nginx. 1. yum install -y php-fpm yum install php-pdo yum install php-mysql ...

  3. ubuntu apache2下目录结构以及重写规则

    ubuntu apache2下目录结构 在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get install apache ...

  4. Ubuntu中apt与apt-get命令的区别

    https://blog.csdn.net/taotongning/article/details/82320472

  5. python -u 启动python文件的作用,PYTHONUNBUFFERED环境变量的作用

    python -u 启动python文件的作用是不缓存,直接把输出重定向到文件,比如nohup启动什么的,如果不使用-u启动,那么程序中的print和日志什么的,可能不会非常及时的重定向到out文件, ...

  6. 父页面操作嵌套iframe子页面的HTML标签元素

    一个页面A.html使用iframe嵌套一个页面B.html,在A页面写js操作B页面HTML元素,首先要获取到B页面document对象,才能对嵌套页面进行操作 请看一个实例,在A页面写js操作B页 ...

  7. sencha touch 带本地搜索功能的selectfield(选择插件)

    带本地搜索功能的选择插件,效果图: 在使用selectfield的过程中,数据过大时,数据加载缓慢,没有模糊查询用户体验也不好, 在selectfield的基础上上稍作修改而成,使用方式同select ...

  8. sohu_news搜狐新闻类型分类

    数据获取 数据是从搜狐新闻开放的新闻xml数据,经过一系列的处理之后,生成的一个excel文件 该xml文件的处理有单独的处理过程,就是用pandas处理,该过程在此省略 import numpy a ...

  9. 时间模块和random模块

    时间模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块. #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time( ...

  10. 遍历form表单里面的表单元素,取其value

    form.elements 获取所有表单元素 form 表单 <form action="http://localhost:1995/api/post" class=&quo ...