资源描述
Java+javabean+JDBC学生管理系统一、 项目结构本项目是使用javabean和jdbc做的,这个包是实体包这个是菜单包,源码不会再发这些,自己写就好了。二、 项目运行结果三、 源码废话不多说,直接上源码:这两个是关键源码,是负责登录和学生信息操作的逻辑类:public class AdminDaoImpl extends DBHelper implements AdminDao Admin admin = null;/* * 登录 */SuppressWarnings(resource)Overridepublic Admin login(String name) String sql = select * from admin where username=?;Object param = name;Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;try while (rs.next() admin = new Admin();String username = rs.getString(username);String password = rs.getString(password);admin.setUsername(username);admin.setPassword(password); catch (SQLException e) System.out.println(未找到此name);return admin;public class StudentDaoImpl extends DBHelper implements StudentDao Student stu = null;List list = null;SuppressWarnings(resource)Overridepublic Student getInfoByid(int id) String sql = select * from student where id=?;Object param = id ;Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;stu = new Student();try while (rs.next() stu.setId(rs.getInt(id);stu.setName(rs.getString(name);stu.setAge(rs.getInt(age);stu.setGender(rs.getString(gender);stu.setGrade(rs.getString(grade);stu.setPhone(rs.getLong(phone);stu.setEmail(rs.getString(email);stu.setAddress(rs.getString(address); catch (SQLException e) e.printStackTrace(); finally this.closeAll();return stu;SuppressWarnings(resource)Overridepublic List getAllStu() String sql = select * from student;Object obj = this.excute(sql, null);ResultSet rs = (ResultSet) obj;list = new ArrayList();try while (rs.next() stu = new Student();stu.setId(rs.getInt(id);stu.setName(rs.getString(name);stu.setAge(rs.getInt(age);stu.setGender(rs.getString(gender);stu.setGrade(rs.getString(grade);stu.setPhone(rs.getLong(phone);stu.setEmail(rs.getString(email);stu.setAddress(rs.getString(address);list.add(stu); catch (SQLException e) e.printStackTrace(); finally this.closeAll();return list;SuppressWarnings(resource)Overridepublic String getNameById(int id) String name = null;String sql = select name from student where id=?;Object param = id ;Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;try while (rs.next() name = rs.getString(name); catch (SQLException e) e.printStackTrace(); finally this.closeAll();return name;SuppressWarnings(resource)Overridepublic int getidByIntput(int id) int num = 0;String sql = select id from student where id=?;Object param = id ;Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;try while (rs.next() num = rs.getInt(id); catch (SQLException e) e.printStackTrace(); finally this.closeAll();return num;Overridepublic boolean addStudent(Object param) boolean b = false;String sql = insert into student values(?,?,?,?,?,?,?,?);Object obj = this.excute(sql, param);b = (boolean) obj;return b;Overridepublic boolean removeStuById(int id) boolean b = false;String sql = delete from student where id=?;Object param = id ;Object obj = this.excute(sql, param);b = (boolean) obj;return b;Overridepublic boolean modifyAllStuById(Student stu) boolean b = false;String sql = update student set age = ?,grade=?,address=?,phone=?,email=? where id = ?;Object param = stu.getAge(), stu.getGrade(), stu.getAddress(),stu.getPhone(), stu.getEmail(), stu.getId() ;Object obj = this.excute(sql, param);b = (boolean) obj;return b;Overridepublic boolean modifyPartStuById(Student stu, String attr) boolean b = false;if (attr.equals(age) String sql = update student set age =? where id=?;Object param = stu.getAge(), stu.getId() ;Object obj = this.excute(sql, param);b = (boolean) obj; else if (attr.equals(grade) String sql = update student set grade =? where id=?;Object param = stu.getGrade(), stu.getId() ;Object obj = this.excute(sql, param);b = (boolean) obj; else if (attr.equals(address) String sql = update student set address =? where id=?;Object param = stu.getAddress(), stu.getId() ;Object obj = this.excute(sql, param);b = (boolean) obj; else if (attr.equals(phone) String sql = update student set phone =? where id=?;Object param = stu.getPhone(), stu.getId() ;Object obj = this.excute(sql, param);b = (boolean) obj; else if (attr.equals(email) String sql = update student set email =? where id=?;Object param = stu.getEmail(), stu.getId() ;Object obj = this.excute(sql, param);b = (boolean) obj;return b;好吧,到此为止,逻辑算是完成了,接下来就是工具包,也就是JDBC通式public class DBHelper private static final String url = jdbc:mysql:/localhost:3306/sms?characterEncoding=utf-8;private static final String Driver = com.mysql.jdbc.Driver;private static final String name = root;private static final String pwd = sa123456;private Connection conn = null;private PreparedStatement pstmt = null;private ResultSet rs = null;/* * 创建数据库连接 * * return */public Connection Getconn() try Class.forName(Driver);conn = DriverManager.getConnection(url, name, pwd); catch (ClassNotFoundException e) System.out.println(注册驱动失败); catch (SQLException e) System.out.println(驱动包路径错误);return conn;public Object excute(String sql, Object param) int a = 0;Object o = null;this.Getconn();try pstmt = conn.prepareStatement(sql);if (param != null) for (int i = 0; i 0) o = true; else o = false;closeAll(); catch (SQLException e) e.printStackTrace();return o;/* * 关闭数据库 */public void closeAll() try if (rs != null) rs.close();if (pstmt != null) pstmt.close();if (conn != null) conn.close(); catch (SQLException e) System.out.println(错误关闭);至于这个类,是一些控制台输入信息判断,当然可以贴出来供大家参考/* * 匹配信息 * * author Administrator * */public class Matches Scanner input = new Scanner(System.in);static String id = null;static String gender = null;static String age = null;static String grade = null;static String phone = null;static String email = null;/* * 匹配id * * return */public String matchesId() id = input.next();if (Pattern.matches(0-91,$, id) else System.out.println(输入错误,只能输入数字:);this.matchesId();return id;/* * 匹配性别 * * return */public String matchesGender() gender = input.next();if (!(gender.equals(男) | gender.equals(女) System.out.println(性别只能是男或者女:);this.matchesGender();return gender;/* * 匹配年龄 * * return */public int matchesAge() age = input.next();if (!Pattern.matches(0-91,$, age) System.out.println(以上输入不合法,只能输入1-120之内的数字:);this.matchesAge(); else if (Integer.valueOf(age) 120) System.out.println(以上输入不合法,只能输入1-120之内的数字:);this.matchesAge();return Integer.parseInt(age);/* * 匹配年级 * * return */public String matchesGrade() grade = input.next();if (!(grade.equals(初级) | grade.equals(中级) | grade.equals(高级) System.out.println(无此年级设置,年级只能输入初级、中级或高级,请重新输入:);this.matchesGrade();return grade;/* * 匹配手机号 * * return */public long matchesPhone() phone = input.next();if (!Pattern.matches(0-911$, phone) System.out.println(输入有误,电话号码只能是11位数字,请重新输入:);this.matchesPhone();return Long.parseLong(phone);/* * 匹配email * * return */public String matchesEmail() email = input.next();if (!Pattern.matches(0-9a-zA-Z+0-9a-zA-Z+.0-9a-zA-Z+$, email) System.out.println(邮箱格式有误,请输入正确的电子邮箱(包含和.com));this.matchesEmail();return email;好了,别的我就不说了,怎么调用,我更就不用说了吧?本文为原创作品,转载需注明出处
展开阅读全文