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();

    }
}
main
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("连接对象关闭异常");
        }
    }

}
connmanage
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();

}
classentiitydao
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;
    }
}
classentitydaolmpl
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);

}
studutdao
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;
    }

}
studebtdaolmpl
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 + "]";
    }
    
}
classentity
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") + "]";
    }

}
student

 

posted @ 2025-05-06 01:17  晚风依旧啊  阅读(13)  评论(0)    收藏  举报