《javaJDBC小項(xiàng)目《學(xué)生管理系統(tǒng)》源碼帶注解》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《javaJDBC小項(xiàng)目《學(xué)生管理系統(tǒng)》源碼帶注解(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Java+javabean+JDBC學(xué)生管理系統(tǒng)一、 項(xiàng)目結(jié)構(gòu)本項(xiàng)目是使用javabean和jdbc做的,這個(gè)包是實(shí)體包這個(gè)是菜單包,源碼不會(huì)再發(fā)這些,自己寫(xiě)就好了。二、 項(xiàng)目運(yùn)行結(jié)果三、 源碼廢話(huà)不多說(shuō),直接上源碼:這兩個(gè)是關(guān)鍵源碼,是負(fù)責(zé)登錄和學(xué)生信息操作的邏輯類(lèi):public class AdminDaoImpl extends DBHelper implements AdminDao Admin admin = null;/* * 登錄 */SuppressWarnings(resource)Overridepublic Admin login(String name) String
2、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(
3、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
4、 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
5、);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 = (Res
6、ultSet) 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.setAddr
7、ess(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
8、(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=?;Ob
9、ject 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 stu
10、dent 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 bo
11、olean 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) o
12、bj;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
13、 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
14、(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 p
15、aram = stu.getEmail(), stu.getId() ;Object obj = this.excute(sql, param);b = (boolean) obj;return b;好吧,到此為止,邏輯算是完成了,接下來(lái)就是工具包,也就是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.Dri
16、ver;private static final String name = root;private static final String pwd = sa123456;private Connection conn = null;private PreparedStatement pstmt = null;private ResultSet rs = null;/* * 創(chuàng)建數(shù)據(jù)庫(kù)連接 * * return */public Connection Getconn() try Class.forName(Driver);conn = DriverManager.getConnection(
17、url, name, pwd); catch (ClassNotFoundException e) System.out.println(注冊(cè)驅(qū)動(dòng)失敗); catch (SQLException e) System.out.println(驅(qū)動(dòng)包路徑錯(cuò)誤);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 =
18、0; i 0) o = true; else o = false;closeAll(); catch (SQLException e) e.printStackTrace();return o;/* * 關(guān)閉數(shù)據(jù)庫(kù) */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(錯(cuò)誤關(guān)閉);至于這個(gè)類(lèi),是一些控制臺(tái)輸入信息判斷,當(dāng)然可以
19、貼出來(lái)供大家參考/* * 匹配信息 * * 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 Strin
20、g matchesId() id = input.next();if (Pattern.matches(0-91,$, id) else System.out.println(輸入錯(cuò)誤,只能輸入數(shù)字:);this.matchesId();return id;/* * 匹配性別 * * return */public String matchesGender() gender = input.next();if (!(gender.equals(男) | gender.equals(女) System.out.println(性別只能是男或者女:);this.matchesGender();re
21、turn gender;/* * 匹配年齡 * * return */public int matchesAge() age = input.next();if (!Pattern.matches(0-91,$, age) System.out.println(以上輸入不合法,只能輸入1-120之內(nèi)的數(shù)字:);this.matchesAge(); else if (Integer.valueOf(age) 120) System.out.println(以上輸入不合法,只能輸入1-120之內(nèi)的數(shù)字:);this.matchesAge();return Integer.parseInt(age)
22、;/* * 匹配年級(jí) * * return */public String matchesGrade() grade = input.next();if (!(grade.equals(初級(jí)) | grade.equals(中級(jí)) | grade.equals(高級(jí)) System.out.println(無(wú)此年級(jí)設(shè)置,年級(jí)只能輸入初級(jí)、中級(jí)或高級(jí),請(qǐng)重新輸入:);this.matchesGrade();return grade;/* * 匹配手機(jī)號(hào) * * return */public long matchesPhone() phone = input.next();if (!Patter
23、n.matches(0-911$, phone) System.out.println(輸入有誤,電話(huà)號(hào)碼只能是11位數(shù)字,請(qǐng)重新輸入:);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(郵箱格式有誤,請(qǐng)輸入正確的電子郵箱(包含和.com));this.matchesEmail();return email;好了,別的我就不說(shuō)了,怎么調(diào)用,我更就不用說(shuō)了吧?本文為原創(chuàng)作品,轉(zhuǎn)載需注明出處