日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

信息管理系统 github_Java+MySQL实现学生信息管理系统

發(fā)布時(shí)間:2024/9/27 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 信息管理系统 github_Java+MySQL实现学生信息管理系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基于Java swing+MySQL實(shí)現(xiàn)學(xué)生信息管理系統(tǒng):主要實(shí)現(xiàn)JDBC對(duì)學(xué)生信息進(jìn)行增刪改查,應(yīng)付一般課設(shè)足矣,分享給大家。

源碼:

https://github.com/ZhuangM/student.git

1、 開發(fā)環(huán)境:jdk7+MySQL5+win7

代碼結(jié)構(gòu):model-dao-view

2、 數(shù)據(jù)庫設(shè)計(jì)——建庫建表語句

CREATE DATABASE student;DROP TABLE IF EXISTS `admin`;CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `username` varchar(20) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;LOCK TABLES `admin` WRITE;INSERT INTO `admin` VALUES (1,'admin','admin','admin');UNLOCK TABLES;DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `sno` varchar(20) NOT NULL, `department` varchar(20) NOT NULL, `hometown` varchar(20) NOT NULL, `mark` varchar(20) NOT NULL, `email` varchar(20) NOT NULL, `tel` varchar(20) NOT NULL, `sex` varchar(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;LOCK TABLES `student` WRITE;INSERT INTO `student` VALUES (18,'張三','001','信息科學(xué)技術(shù)學(xué)院','遼寧','80','zhangsan@163.com','13888888888','男'),(19,'李四','002','理學(xué)院','上海','70','lisi@sina.com','13812341234','男'),(20,'王五','003','外國語學(xué)院','北京','88','wangwu@126.com','13698765432','女');UNLOCK TABLES;

3、model——管理員、學(xué)生

/*** 項(xiàng)目名:student* 修改歷史:*/package com.student.model;/*** 模塊說明:admin* */public class Admin { private int id; private String name; private String username; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}/*** 項(xiàng)目名:student* 修改歷史:*/package com.student.model;/*** 模塊說明: 學(xué)生* */public class Student { private int id; private String sno;// 學(xué)號(hào) private String name; private String sex; private String department;// 院系 private String homeTown;// 籍貫 private String mark;// 學(xué)分 private String email; private String tel;// 聯(lián)系方式 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } public String getHomeTown() { return homeTown; } public void setHomeTown(String homeTown) { this.homeTown = homeTown; } public String getMark() { return mark; } public void setMark(String mark) { this.mark = mark; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; }}

4、 工具類DBUtil(對(duì)jdbc進(jìn)行封裝)

/*** 項(xiàng)目名:student* 修改歷史:*/package com.student.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.student.AppConstants;/*** 模塊說明:數(shù)據(jù)庫工具類* */public class DBUtil { private static DBUtil db; private Connection conn; private PreparedStatement ps; private ResultSet rs; private DBUtil() { } public static DBUtil getDBUtil() { if (db == null) { db = new DBUtil(); } return db; } public int executeUpdate(String sql) { int result = -1; if (getConn() == null) { return result; } try { ps = conn.prepareStatement(sql); result = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return result; } public int executeUpdate(String sql, Object[] obj) { int result = -1; if (getConn() == null) { return result; } try { ps = conn.prepareStatement(sql); for (int i = 0; i < obj.length; i++) { ps.setObject(i + 1, obj[i]); } result = ps.executeUpdate(); close(); } catch (SQLException e) { e.printStackTrace(); } return result; } public ResultSet executeQuery(String sql) { if (getConn() == null) { return null; } try { ps = conn.prepareStatement(sql); rs = ps.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } public ResultSet executeQuery(String sql, Object[] obj) { if (getConn() == null) { return null; } try { ps = conn.prepareStatement(sql); for (int i = 0; i < obj.length; i++) { ps.setObject(i + 1, obj[i]); } rs = ps.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } private Connection getConn() { try { if (conn == null || conn.isClosed()) { Class.forName(AppConstants.JDBC_DRIVER); conn = DriverManager.getConnection(AppConstants.JDBC_URL, AppConstants.JDBC_USERNAME, AppConstants.JDBC_PASSWORD); } } catch (ClassNotFoundException e) { System.out.println("jdbc driver is not found."); e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } public void close() { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } }}

5、dao:主要調(diào)用DBUtil操作相應(yīng)的model——增刪改查

BaseDAO.java

/*** 項(xiàng)目名:student* 修改歷史:*/package com.student.base;import java.sql.ResultSet;import java.sql.SQLException;import com.student.DAO;import com.student.dao.AdminDAO;import com.student.dao.StudentDAO;import com.student.util.DBUtil;/*** 模塊說明: DAO基類* */public abstract class BaseDAO { protected final DBUtil db = DBUtil.getDBUtil(); protected ResultSet rs; private static BaseDAO baseDAO; public BaseDAO() { init(); } private void init() { // buildAbilityDAO(); } // protected abstract void buildAbilityDAO(); public static synchronized BaseDAO getAbilityDAO(DAO dao) { switch (dao) { case AdminDAO: if (baseDAO == null || baseDAO.getClass() != AdminDAO.class) { baseDAO = AdminDAO.getInstance(); } break; case StudentDAO: if (baseDAO == null || baseDAO.getClass() != StudentDAO.class) { baseDAO = StudentDAO.getInstance(); } break; default: break; } return baseDAO; } protected void destroy() { try { if (rs != null) { rs.close(); } } catch (SQLException se) { se.printStackTrace(); } finally { db.close(); } }}

AdminDAO.java

/*** 項(xiàng)目名:student* 修改歷史:*/package com.student.dao;import java.sql.SQLException;import com.student.base.BaseDAO;/*** 模塊說明: 管理員增刪改查* */public class AdminDAO extends BaseDAO { private static AdminDAO ad = null; public static synchronized AdminDAO getInstance() { if (ad == null) { ad = new AdminDAO(); } return ad; } public boolean queryForLogin(String username, String password) { boolean result = false; if (username.length() == 0 || password.length() == 0) { return result; } String sql = "select * from admin where username=? and password=?"; String[] param = { username, password }; rs = db.executeQuery(sql, param); try { if (rs.next()) { result = true; } } catch (SQLException e) { e.printStackTrace(); } finally { destroy(); } return result; }}

StudentDAO.java

/*** 項(xiàng)目名:student* 修改歷史:*/package com.student.dao;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.student.base.BaseDAO;import com.student.model.Student;/*** 模塊說明: 學(xué)生增刪改查* */public class StudentDAO extends BaseDAO { private final int fieldNum = 9; private final int showNum = 15; private static StudentDAO sd = null; public static synchronized StudentDAO getInstance() { if (sd == null) { sd = new StudentDAO(); } return sd; } // update public boolean update(Student stu) { boolean result = false; if (stu == null) { return result; } try { // check if (queryBySno(stu.getSno()) == 0) { return result; } // update String sql = "update student set sex=?,department=?,email=?,tel=?,hometown=?,mark=? where name=? and sno=?"; String[] param = { stu.getSex(), stu.getDepartment(), stu.getEmail(), stu.getTel(), stu.getHomeTown(), stu.getMark(), stu.getName(), stu.getSno() }; int rowCount = db.executeUpdate(sql, param); if (rowCount == 1) { result = true; } } catch (SQLException se) { se.printStackTrace(); } finally { destroy(); } return result; } // delete public boolean delete(Student stu) { boolean result = false; if (stu == null) { return result; } String sql = "delete from student where name=? and sno=?"; String[] param = { stu.getName(), stu.getSno() }; int rowCount = db.executeUpdate(sql, param); if (rowCount == 1) { result = true; } destroy(); return result; } // add public boolean add(Student stu) { boolean result = false; if (stu == null) { return result; } try { // check if (queryBySno(stu.getSno()) == 1) { return result; } // insert String sql = "insert into student(name,sno,sex,department,hometown,mark,email,tel) values(?,?,?,?,?,?,?,?)"; String[] param = { stu.getName(), stu.getSno(), stu.getSex(), stu.getDepartment(), stu.getHomeTown(), stu.getMark(), stu.getEmail(), stu.getTel() }; if (db.executeUpdate(sql, param) == 1) { result = true; } } catch (SQLException se) { se.printStackTrace(); } finally { destroy(); } return result; } // query by name public String[][] queryByName(String name) { String[][] result = null; if (name.length() < 0) { return result; } List stus = new ArrayList(); int i = 0; String sql = "select * from student where name like ?"; String[] param = { "%" + name + "%" }; rs = db.executeQuery(sql, param); try { while (rs.next()) { buildList(rs, stus, i); i++; } if (stus.size() > 0) { result = new String[stus.size()][fieldNum]; for (int j = 0; j < stus.size(); j++) { buildResult(result, stus, j); } } } catch (SQLException se) { se.printStackTrace(); } finally { destroy(); } return result; } // query public String[][] list(int pageNum) { String[][] result = null; if (pageNum < 1) { return result; } List stus = new ArrayList(); int i = 0; int beginNum = (pageNum - 1) * showNum; String sql = "select * from student limit ?,?"; Integer[] param = { beginNum, showNum }; rs = db.executeQuery(sql, param); try { while (rs.next()) { buildList(rs, stus, i); i++; } if (stus.size() > 0) { result = new String[stus.size()][fieldNum]; for (int j = 0; j < stus.size(); j++) { buildResult(result, stus, j); } } } catch (SQLException se) { se.printStackTrace(); } finally { destroy(); } return result; } // 將rs記錄添加到list中 private void buildList(ResultSet rs, List list, int i) throws SQLException { Student stu = new Student(); stu.setId(i + 1); stu.setName(rs.getString("name")); stu.setDepartment(rs.getString("department")); stu.setEmail(rs.getString("email")); stu.setHomeTown(rs.getString("hometown")); stu.setMark(rs.getString("mark")); stu.setSex(rs.getString("sex")); stu.setSno(rs.getString("sno")); stu.setTel(rs.getString("tel")); list.add(stu); } // 將list中記錄添加到二維數(shù)組中 private void buildResult(String[][] result, List stus, int j) { Student stu = stus.get(j); result[j][0] = String.valueOf(stu.getId()); result[j][1] = stu.getName(); result[j][2] = stu.getSno(); result[j][3] = stu.getSex(); result[j][4] = stu.getDepartment(); result[j][5] = stu.getHomeTown(); result[j][6] = stu.getMark(); result[j][7] = stu.getEmail(); result[j][8] = stu.getTel(); } // query by sno private int queryBySno(String sno) throws SQLException { int result = 0; if ("".equals(sno) || sno == null) { return result; } String checkSql = "select * from student where sno=?"; String[] checkParam = { sno }; rs = db.executeQuery(checkSql, checkParam); if (rs.next()) { result = 1; } return result; }}

6、 view:與用戶交互的界面(包括LoginView.java、MainView.java、AddView.java、DeleteView.java、UpdateView.java),主要使用DAO提供的接口,由于篇幅原因,僅列出MainView即首頁。

/*** 項(xiàng)目名:student* 修改歷史:*/package com.student.view;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import com.student.AppConstants;import com.student.DAO;import com.student.base.BaseDAO;import com.student.dao.StudentDAO;/*** 模塊說明: 首頁* */public class MainView extends JFrame { private static final long serialVersionUID = 5870864087464173884L; private final int maxPageNum = 99; private JPanel jPanelNorth, jPanelSouth, jPanelCenter; private JButton jButtonFirst, jButtonLast, jButtonNext, jButtonPre, jButtonAdd, jButtonDelete, jButtonUpdate, jButtonFind; private JLabel currPageNumJLabel; private JTextField condition; public static JTable jTable; private JScrollPane jScrollPane; private DefaultTableModel myTableModel; public static String[] column = { "id

總結(jié)

以上是生活随笔為你收集整理的信息管理系统 github_Java+MySQL实现学生信息管理系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。