daima1
package com.qst; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Scanner; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.qst.dao.ClassEntityDao; import com.qst.dao.ClassEntityDaoImpl; import com.qst.dao.StudentDao; import com.qst.dao.StudentDaoImpl; import com.qst.entity.ClassEntity; import com.qst.entity.Student; /** * 程序入口类 * * @author qst * */ public class Main { // 创建系统控制台输入类实例 public static final Scanner input = new Scanner(System.in); // 学生数据操作接口实现类对象 private StudentDao stuDao = new StudentDaoImpl(); private ClassEntityDao classEntityDao = new ClassEntityDaoImpl(); /** * 系统主菜单 */ public void menu() { for (int j = 0;;) { System.out.println("\n\n\t\t基于MySQL的“智慧课堂”数据库操作"); System.out.println("================================================================"); System.out.println("\n" + "\t\t1、添加学生信息\n" + "\t\t2、根据班级编号查询学生信息\n" + "\t\t3、退出系统\n"); System.out.println("================================================================"); System.out.print("input> "); int a = input.nextInt(); if (a == 1) { // 1、添加学生信息 System.out.println(); addStudent(); }else if (a == 2) { // 2、根据班级编号查询学生信息 System.out.println(); showStudentByClassid(); } else { // 3或输入1,2,3之外的数字,退出系统 System.out.println("退出系统!"); break; } } } public void addStudent() { System.out.println("添加学生信息"); System.out.println("姓名:"); String sname = input.next(); System.out.println("性别(男/女):"); String sex = input.next(); System.out.println("年纪:"); int age = input.nextInt(); System.out.println("出生日期(yyyy-MM-dd):"); String birthday = input.next(); System.out.println("电话:(11位数字)"); String phone = input.next(); while(true) { //电话号码验证 String check = "^((13[0-9])|(14[0,1,4-9])|(15[0-3,5-9])|(16[2,5,6,7])|(17[0-8])|(18[0-9])|(19[0-3,5-9]))\\d{8}$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(phone); boolean isMatched = matcher.matches(); if(isMatched) {break;} else { System.out.println("电话号码不正确,请重新输入:(11位数字)"); phone = input.next(); } } System.out.println("邮箱:"); String email = input.next(); while(true) { //邮箱验证 String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(email); boolean isMatched = matcher.matches(); if(isMatched) {break;} else { System.out.println("邮箱格式不正确,请重新输入(xxx@xxx.com):"); email = input.next(); } } System.out.println("地址:"); String addr = input.next(); System.out.println("请输入班级编号:"); List<ClassEntity> ss = classEntityDao.getClassEntityAll(); for (Iterator iterator = ss.iterator(); iterator.hasNext();) { ClassEntity classEntity = (ClassEntity) iterator.next(); System.out.print(classEntity.getId() + "、" + classEntity.getCname()); } System.out.println(); int classEntityId = input.nextInt(); ClassEntity classEntity = classEntityDao.getClassEntityById(classEntityId); java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date dateBirthday = sdf.parse(birthday); Student student = new Student(0, sname, sex, age, dateBirthday, phone, email, addr, classEntity); boolean b = this.stuDao.insertStudent(student); System.out.println(); if (b) { System.out.println("添加学生信息成功"); } else { System.out.println("添加学生信息失败"); } } catch (ParseException e) { // TODO Auto-generated catch block System.out.println("日期格式出错"); } } private void showStudentByClassid() { System.out.println("根据班级编号查询学生信息"); System.out.println("请输入班级编号:"); List<ClassEntity> ss = classEntityDao.getClassEntityAll(); for (Iterator iterator = ss.iterator(); iterator.hasNext();) { ClassEntity classEntity = (ClassEntity) iterator.next(); System.out.print(classEntity.getId() + "、" + classEntity.getCname()); } System.out.println(); int classEntityId = input.nextInt(); List<Student> s = stuDao.getStudentByClassId(classEntityId); for (Iterator iterator = s.iterator(); iterator.hasNext();) { Student student = (Student) iterator.next(); System.out.println(student); } } public static void main(String[] args) { Main main = new Main(); main.menu(); } }
package com.qst.common; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 数据库连接对象管理类 * * @author qst * */ public class ConnManage { /** * 获取数据库连接对象 * * @return 数据库连接对象 */ public static Connection getConnection() { Connection conn = null; try { String url = "jdbc:mysql://localhost:3306/wisdomclassroomdb?characterEncoding=UTF-8&useSSL=false"; String user = "root"; String pwd = "123456"; Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, user, pwd); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block System.out.println("驱动类找不到"); e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("连接对象创建失败"); e.printStackTrace(); } return conn; } /** * 数据库连接对象关闭 * * @param conn 数据库连接对象 */ public static void closeConnection(Connection conn) { try { if (!conn.isClosed()) { conn.close(); } } catch (SQLException e) { System.out.println("连接对象关闭异常"); } } }
package com.qst.dao; import java.util.List; import com.qst.entity.ClassEntity; /** * 班级数据操作接口 * * @author qst * */ public interface ClassEntityDao { /** * 根据班级编号查询班级对象 * @param id 班级编号 * @return 班级对象 */ public ClassEntity getClassEntityById(int id); /** * 查询全部班级对象 * @return 全部班级对象 */ public List<ClassEntity> getClassEntityAll(); }
package com.qst.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.qst.common.ConnManage; import com.qst.entity.ClassEntity; import com.qst.entity.Student; /** * 班级数据操作接口实现类 * * @author qst * */ public class ClassEntityDaoImpl implements ClassEntityDao { /** * 根据班级编号查询班级对象 * * @param id 班级编号 * @return 班级对象 */ public ClassEntity getClassEntityById(int id) { ClassEntity classEntity = null; try { // 得到连接对象 Connection conn = ConnManage.getConnection(); String sql = "select id,cname,size from tbl_class where id=?"; PreparedStatement prep = conn.prepareStatement(sql); prep.setInt(1, id); ResultSet rs = prep.executeQuery(); while (rs.next()) { classEntity = new ClassEntity(); classEntity.setId(id); classEntity.setCname(rs.getString("cname")); classEntity.setSize(rs.getInt("size")); } // 关闭连接对象 ConnManage.closeConnection(conn); } catch (Exception e) { e.printStackTrace(); } return classEntity; } /** * 查询全部班级对象 * * @return 全部班级对象 */ public List<ClassEntity> getClassEntityAll() { List<ClassEntity> list = new ArrayList<ClassEntity>(); try { // 得到连接对象 Connection conn = ConnManage.getConnection(); String sql = "select id,cname,size from tbl_class"; PreparedStatement prep = conn.prepareStatement(sql); ResultSet rs = prep.executeQuery(); while (rs.next()) { ClassEntity classEntity = new ClassEntity(); classEntity.setId(rs.getInt("id")); classEntity.setCname(rs.getString("cname")); classEntity.setSize(rs.getInt("size")); list.add(classEntity); } // 关闭连接对象 ConnManage.closeConnection(conn); } catch (Exception e) { e.printStackTrace(); } return list; } }
package com.qst.dao; import java.util.List; import com.qst.entity.Student; /** * 学生数据操作接口 * * @author qst * */ public interface StudentDao { /** * 添加学生对象 * @param student 学生对象 * @return true 表示成功 false失败 */ public boolean insertStudent(Student student); /** * 根据班级编号查询学生 * @param id 班级编号 * @return 学生对象集合 */ public List<Student> getStudentByClassId(int id); }
package com.qst.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Types; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.qst.common.ConnManage; import com.qst.entity.ClassEntity; import com.qst.entity.Student; /** * 学生数据操作接口实现类 * * @author qst * */ public class StudentDaoImpl implements StudentDao { /** * 添加学生对象 * * @param student 学生对象 * @return true 表示成功 false失败 */ public boolean insertStudent(Student student) { boolean b = false; try { // 得到连接对象 Connection conn = ConnManage.getConnection(); String sql = "insert into tbl_student" + "(id,sname,sex,age,birthday,phone,email,addr,c_id) " + " values(DEFAULT,?,?,?,?,?,?,?,?)"; PreparedStatement prep = conn.prepareStatement(sql); prep.setString(1, student.getSname()); prep.setString(2, student.getSex()); prep.setInt(3, student.getAge()); if (student.getBirthday() != null) { prep.setDate(4, new java.sql.Date(student.getBirthday().getTime())); } else { prep.setNull(4, Types.NULL); } prep.setString(5, student.getPhone()); prep.setString(6, student.getEmail()); prep.setString(7, student.getAddr()); if (student.getClassEntity() != null) { prep.setInt(8, student.getClassEntity().getId()); } else { prep.setNull(8, Types.NULL); } b = prep.executeUpdate() > 0 ? true : false; // 关闭连接对象 ConnManage.closeConnection(conn); } catch (Exception e) { e.printStackTrace(); } return b; } /** * 根据班级编号查询学生 * * @param id 班级编号 * @return 学生对象集合 */ public List<Student> getStudentByClassId(int id) { List<Student> students = new ArrayList<Student>(); try { // 得到连接对象 Connection conn = ConnManage.getConnection(); String sql = "select " + "id,sname,sex,age,birthday,phone,email,addr " + "from tbl_student " + "where c_id=? " + "order by id desc"; PreparedStatement prep = conn.prepareStatement(sql); prep.setInt(1, id); ResultSet rs = prep.executeQuery(); while (rs.next()) { Student student = new Student(); student = new Student(); student.setId(rs.getInt("id")); student.setSname(rs.getString("sname")); student.setSex(rs.getString("sex")); student.setAge(rs.getInt("age")); java.sql.Date sqlBirthday = rs.getDate("birthday"); if (sqlBirthday != null) { student.setBirthday(new java.util.Date(sqlBirthday.getTime())); } student.setPhone(rs.getString("phone")); student.setEmail(rs.getString("email")); student.setAddr(rs.getString("addr")); ClassEntity c = new ClassEntity(); c.setId(id); student.setClassEntity(c); students.add(student); } // 关闭连接对象 ConnManage.closeConnection(conn); } catch (Exception e) { e.printStackTrace(); } return students; } }
package com.qst.entity; /** * 班级实体类 * * @author qst * */ public class ClassEntity { //班级编号 private int id; //班级名 private String cname; //班级人数 private int size; //有参构造 public ClassEntity(int id, String cname, int size) { super(); this.id = id; this.cname = cname; this.size = size; } //无参构造 public ClassEntity() { super(); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } @Override public String toString() { return "ClassEntity [id=" + id + ", cname=" + cname + ", size=" + size + "]"; } }
package com.qst.entity; import java.text.SimpleDateFormat; import java.util.Date; /** * 学生实体类 * * @author qst * */ public class Student { // 学号 private int id; // 姓名 private String sname; // 性别 private String sex; // 年纪 private int age; // 出生日期 private Date birthday; // 电话 private String phone; // 邮箱 private String email; // 地址 private String addr; // 班级 private ClassEntity classEntity; // 有参构造 public Student(int id, String sname, String sex, int age, Date birthday, String phone, String email, String addr) { super(); this.id = id; this.sname = sname; this.sex = sex; this.age = age; this.birthday = birthday; this.phone = phone; this.email = email; this.addr = addr; } // 有参构造 public Student(int id, String sname, String sex, int age, Date birthday, String phone, String email, String addr, ClassEntity classEntity) { super(); this.id = id; this.sname = sname; this.sex = sex; this.age = age; this.birthday = birthday; this.phone = phone; this.email = email; this.addr = addr; this.classEntity = classEntity; } // 无参构造 public Student() { super(); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public ClassEntity getClassEntity() { return classEntity; } public void setClassEntity(ClassEntity classEntity) { this.classEntity = classEntity; } @Override public String toString() { java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String strBirthday = " "; if (this.birthday != null) { try { strBirthday = sdf.format(this.birthday); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return "Student [id=" + id + ", sname=" + sname + ", sex=" + sex + ", birthday=" + strBirthday + ", addr="+ addr + ", classEntity=" + ((classEntity != null) ? classEntity.getId() : "null") + "]"; } }

浙公网安备 33010602011771号