当前位置: 移动技术网 > IT编程>开发语言>Java > 学生管理系统

学生管理系统

2020年07月07日  | 移动技术网IT编程  | 我要评论

学生管理系统

后记

可添加Maven依赖和HikariCP连接池

界面

主界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库

stu_grade
stu_studentstu_user

DAO类源码

package ssm.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import ssm.model.GradeType;
import ssm.util.StringUtil;

/**
 * 
 * 班级类别类
 * 对班级进行增删改查
 *
 */
public class GradeTypeDao {
	/**
	 * 班级添加
	 */
	public int add(Connection con,GradeType gradeType)throws Exception{
		String sql = "INSERT INTO stu_grade VALUES(null,?,?,?)";//班级添加sql语句
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, gradeType.getCollege());
		ps.setString(2, gradeType.getGradeName());
		ps.setString(3, gradeType.getGradeDESC());
		return ps.executeUpdate();
	}
	/**
	 * 班级维护
	 */
	public ResultSet list(Connection con,GradeType gradeType)throws Exception{
		StringBuffer sb = new StringBuffer("SELECT * FROM stu_grade");
		if(StringUtil.isNotEmpty(gradeType.getGradeName())) {
			sb.append(" and gradeName like '%"+gradeType.getGradeName()+"%'");
		}
		PreparedStatement ps = con.prepareStatement(sb.toString().replaceFirst("and", "where"));
		return ps.executeQuery();
	}
	/**
	 * 班级删除
	 */
	public int delete(Connection con,String id)throws Exception{
		String sql = "DELETE FROM stu_grade WHERE id = ?";//删除sql语句
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, id);
		return ps.executeUpdate();
	}
	/**
	 * 班级修改
	 */
	public int update(Connection con,GradeType gradeType)throws Exception{
		String sql = "UPDATE stu_grade SET college=? , gradeName=? , gradeDESC=? WHERE id=?";
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, gradeType.getCollege());
		ps.setString(2, gradeType.getGradeName());
		ps.setString(3, gradeType.getGradeDESC());
		ps.setInt(4, gradeType.getId());
		return ps.executeUpdate();
	}
}

package ssm.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import ssm.model.GradeType;
import ssm.model.Student;
import ssm.util.StringUtil;

/**
 * 
 * 对学生表进行增删改查
 *
 */
public class StudentDao {
	/**
	 * 添加学生信息
	 * @param con
	 * @param student
	 * @return
	 * @throws Exception
	 */
	public int add(Connection con,Student student)throws Exception{
		String sql = "INSERT INTO stu_student VALUES(null,?,?,?,?,?,?,?,?)";//学生添加sql语句
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, student.getStuName());
		ps.setString(2, student.getStuCollege());
		ps.setString(3, student.getStuIDcard());
		ps.setString(4, student.getStuAge());
		ps.setString(5, student.getStuGender());
		ps.setString(6, student.getStuAddress());
		ps.setString(7, student.getStuPhone());
		ps.setInt(8, student.getStuTypeid());
		return ps.executeUpdate();
	}
	/**
	 * 学生维护
	 */
	public ResultSet list(Connection con,Student student)throws Exception{
		StringBuffer sb = new StringBuffer("SELECT * FROM stu_student");
		if(StringUtil.isNotEmpty(student.getStuName())) {
			sb.append(" and stuName like '%"+student.getStuName()+"%'");
		}
		PreparedStatement ps = con.prepareStatement(sb.toString().replaceFirst("and", "where"));
		return ps.executeQuery();
	}
	/**
	 * 学生删除
	 */
	public int delete(Connection con,String id)throws Exception{
		String sql = "DELETE FROM stu_student WHERE id = ?";//删除sql语句
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, id);
		return ps.executeUpdate();
	}
	/**
	 * 学生修改
	 */
	public int update(Connection con,Student student)throws Exception{
		String sql = "UPDATE stu_student SET stuName=? , stuAge=? , stuGender=? , stuPhone=? , stuAddress=? , stuIDcard=? , stuCollege=? , stuTypeid=? WHERE id=?";
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, student.getStuName());
		ps.setString(2, student.getStuAge());
		ps.setString(3, student.getStuGender());
		ps.setString(4, student.getStuPhone());
		ps.setString(5, student.getStuAddress());
		ps.setString(6, student.getStuIDcard());
		ps.setString(7, student.getStuCollege());
		ps.setInt(8, student.getStuTypeid());
		ps.setInt(9, student.getId());
		return ps.executeUpdate();
	}
}

package ssm.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import ssm.model.User;

/**
 * 
 * 用户访问数据库
 *
 */
public class UserDao {
/**
 * 登陆验证,判断用户名和密码
 */
	public User login(Connection con,User user)throws Exception{
		User resultUser = null;
		String sql = "SELECT * FROM stu_user WHERE username = ? AND password = ?";//查找数据库接口
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, user.getUserName());
		ps.setString(2, user.getPassWord());
		ResultSet rs = ps.executeQuery();
		if(rs.next()) {
			resultUser = new User();
			resultUser.setId(rs.getInt("id"));
			resultUser.setUserName(rs.getString("userName"));
			resultUser.setPassWord(rs.getString("passWord"));
		}
		return resultUser;
	}
}

model类

package ssm.model;

import javax.swing.JTextField;

/**
 * 
 * 班级分类实体
 *
 */
public class GradeType {
	private int id;//编号
	private String college;//学院名称
	private String gradeName;//班级名称
	private String gradeDESC;//班级备注
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getCollege() {
		return college;
	}
	public void setCollege(String college) {
		this.college = college;
	}
	public String getGradeName() {
		return gradeName;
	}
	public void setGradeName(String s_gradeName) {
		this.gradeName = s_gradeName;
	}
	public String getGradeDESC() {
		return gradeDESC;
	}
	public void setGradeDESC(String gradeDESC) {
		this.gradeDESC = gradeDESC;
	}
	//三个有参构造
	public GradeType(String college, String gradeName, String gradeDESC) {
		super();
		this.college = college;
		this.gradeName = gradeName;
		this.gradeDESC = gradeDESC;
	}
	//无参构造
	public GradeType() {
		super();
	}
	//四个有参构造
	public GradeType(int id, String college, String gradeName, String gradeDESC) {
		super();
		this.id = id;
		this.college = college;
		this.gradeName = gradeName;
		this.gradeDESC = gradeDESC;
	}
	public String toString() {
		return gradeName;
	}
}

package ssm.model;
/**
 * 
 * 学生分类实体
 *
 */
public class Student {
	private int id;//学生编号
	private String stuName;//学生姓名
	private String stuCollege;//学生学院
	private String stuIDcard;//学生学号
	private String stuAge;//学生年龄
	private String stuGender;//学生性别
	private String stuAddress;//学生地址
	private String stuPhone;//学生练习方式
	private int stuTypeid;//学生班级
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getStuName() {
		return stuName;
	}
	public void setStuName(String stuName) {
		this.stuName = stuName;
	}
	public String getStuCollege() {
		return stuCollege;
	}
	public void setStuCollege(String stuCollege) {
		this.stuCollege = stuCollege;
	}
	public String getStuIDcard() {
		return stuIDcard;
	}
	public void setStuIDcard(String stuIDcard) {
		this.stuIDcard = stuIDcard;
	}
	public String getStuAge() {
		return stuAge;
	}
	public void setStuAge(String stuAge) {
		this.stuAge = stuAge;
	}
	public String getStuGender() {
		return stuGender;
	}
	public void setStuGender(String stuGender) {
		this.stuGender = stuGender;
	}
	public String getStuAddress() {
		return stuAddress;
	}
	public void setStuAddress(String stuAddress) {
		this.stuAddress = stuAddress;
	}
	public String getStuPhone() {
		return stuPhone;
	}
	public void setStuPhone(String stuPhone) {
		this.stuPhone = stuPhone;
	}
	public int getStuTypeid() {
		return stuTypeid;
	}
	public void setStuTypeid(int stuTypeid) {
		this.stuTypeid = stuTypeid;
	}
	
	//构造有参->添加
	public Student(String stuName, String stuCollege, String stuIDcard, String stuAge, String stuGender,
			String stuAddress, String stuPhone, int stuTypeid) {
		super();
		this.stuName = stuName;
		this.stuCollege = stuCollege;
		this.stuIDcard = stuIDcard;
		this.stuAge = stuAge;
		this.stuGender = stuGender;
		this.stuAddress = stuAddress;
		this.stuPhone = stuPhone;
		this.stuTypeid = stuTypeid;
	}
	//构造无参
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	//构造有参->维护
	public Student(int id, String stuName, String stuCollege, String stuIDcard, String stuAge, String stuGender,
			String stuAddress, String stuPhone, int stuTypeid) {
		super();
		this.id = id;
		this.stuName = stuName;
		this.stuCollege = stuCollege;
		this.stuIDcard = stuIDcard;
		this.stuAge = stuAge;
		this.stuGender = stuGender;
		this.stuAddress = stuAddress;
		this.stuPhone = stuPhone;
		this.stuTypeid = stuTypeid;
	}
	
}

package ssm.model;
/**
 * 
 * 用户实体·用户名·密码
 *
 */
public class User {
	private int id;//编号
	private String userName;//用户名
	private String passWord;//密码
	private int is_admin;//管理员判定
	
	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;
	}
	public int getIs_admin() {
		return is_admin;
	}
	public void setIs_admin(int is_admin) {
		this.is_admin = is_admin;
	}
		
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User(String userName, String passWord) {
		super();
		this.userName = userName;
		this.passWord = passWord;
	}

	
}

util类

package ssm.util;

import java.sql.Connection;
import java.sql.DriverManager;
/**
 * 
 * 连接数据库类
 *
 */
public class Jdbcutil {
	private String JdbcUrl = "jdbc:mysql://localhost:3306/SkingStudentManager?useSSL=false";//连接数据库,要在Url后面添加后缀跳过SSL验证
	private String JdbcUsername = "root";//数据库用户名
	private String JdbcPassword = "admin";//数据库密码
	private String JdbcName = "com.mysql.jdbc.Driver";//驱动名称
	
	//数据库连接
	public Connection getCon()throws Exception{
		Class.forName(JdbcName);
		Connection con = DriverManager.getConnection(JdbcUrl,JdbcUsername,JdbcPassword);
		return con;
	}
	
	//数据库关闭
	public void closeCon(Connection con)throws Exception{
		if(con != null) {
			con.close();
		}
	} 
	
	//测试数据库是否连接
	public static void main(String[] args) {
		Jdbcutil jdbcutil = new Jdbcutil();
		try {
			jdbcutil.getCon();
			System.out.println("数据库连接成功");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

package ssm.util;

/**
 * 
 * 处理字符串工具类
 *
 */
public class StringUtil {
	//判断是否为空
	public static boolean isEmpty(String str) {
		if(str == null || "".equals(str.trim())) {//trim函数->删除文本中除单词间的单个空格之外的所有空格
			return true;
		}else {
			return false;
		}
	}
	
	//判断不是空
	public static boolean isNotEmpty(String str) {
		if((str != null) && (!"".equals(str.trim()))) {
			return true;
		}else {
			return false;
		}
	}
}

view类

package ssm.view;
/**
 * 班级添加窗口
 */

import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.Font;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.LineBorder;

import ssm.dao.GradeTypeDao;
import ssm.model.GradeType;
import ssm.util.Jdbcutil;
import ssm.util.StringUtil;

import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.awt.event.ActionEvent;

public class GradeTypeAddFrm extends JInternalFrame {
	private JTextField college;
	private JTextField gradeName;
	private JTextField gradeDESC;
	private Jdbcutil jdbcutil = new Jdbcutil();
	private GradeTypeDao gradeTypeDao = new GradeTypeDao(); 

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GradeTypeAddFrm frame = new GradeTypeAddFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GradeTypeAddFrm() {
		setClosable(true);
		setIconifiable(true);
		setTitle("班级添加");
		setBounds(100, 100, 450, 300);
		
		JLabel lblNewLabel = new JLabel("学院名称:");
		lblNewLabel.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		JLabel lblNewLabel_1 = new JLabel("班级名称:");
		lblNewLabel_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		JLabel lblNewLabel_2 = new JLabel("班级备注:");
		lblNewLabel_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		college = new JTextField();
		college.setColumns(10);
		
		gradeName = new JTextField();
		gradeName.setColumns(10);
		
		gradeDESC = new JTextField();
		gradeDESC.setColumns(10);
		
		JButton btnNewButton = new JButton("添加");
		btnNewButton.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				gradeTypeAddPerformed(e);
			}
		});
		
		JButton btnNewButton_1 = new JButton("重置");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				resetActionPerformed(e);
			}
		});
		btnNewButton_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(106)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addComponent(btnNewButton)
							.addPreferredGap(ComponentPlacement.RELATED, 98, Short.MAX_VALUE)
							.addComponent(btnNewButton_1))
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
								.addComponent(lblNewLabel_1)
								.addComponent(lblNewLabel)
								.addComponent(lblNewLabel_2))
							.addGap(18)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(gradeDESC, GroupLayout.DEFAULT_SIZE, 142, Short.MAX_VALUE)
								.addComponent(gradeName, GroupLayout.DEFAULT_SIZE, 142, Short.MAX_VALUE)
								.addComponent(college, GroupLayout.DEFAULT_SIZE, 142, Short.MAX_VALUE))))
					.addContainerGap(100, GroupLayout.PREFERRED_SIZE))
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(31)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblNewLabel)
						.addComponent(college, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblNewLabel_1)
						.addComponent(gradeName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addComponent(lblNewLabel_2)
						.addComponent(gradeDESC, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE))
					.addGap(22)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(btnNewButton)
						.addComponent(btnNewButton_1))
					.addGap(28))
		);
		getContentPane().setLayout(groupLayout);
		
		//优化文本域边框
		gradeDESC.setBorder(new LineBorder(new java.awt.Color(127,157,185),1,false));
	}
	/**
	 * 班级添加操作
	 * @param e
	 */
	protected void gradeTypeAddPerformed(ActionEvent evt) {
		// TODO Auto-generated method stub
		String college = this.college.getText();//获得学院名称
		String gradeName = this.gradeName.getText();//获得班级名称
		String gradeDESC = this.gradeDESC.getText();//获得班级备注
		
		//判断是否为空
		if(StringUtil.isEmpty(college)) {
			JOptionPane.showMessageDialog(null, "请输入学院名称");
			return;
		}
		if(StringUtil.isEmpty(gradeName)) {
			JOptionPane.showMessageDialog(null, "请输入班级名称");
			return;
		}
		if(StringUtil.isEmpty(gradeDESC)) {
			JOptionPane.showMessageDialog(null, "请输入班级备注");
			return;
		}
		GradeType gradeType = new GradeType(college,gradeName,gradeDESC);
		Connection con = null;
		try {
			con = jdbcutil.getCon();
			int n = gradeTypeDao.add(con, gradeType);
			if(n == 1) {
				JOptionPane.showMessageDialog(null, "班级添加成功");
				this.resetValues();
			}else {
				JOptionPane.showMessageDialog(null, "班级添加失败");
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				jdbcutil.closeCon(con);//关闭数据库
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	/**
	 * 重置添加操作
	 * @param e
	 */
	private void resetActionPerformed(ActionEvent evt) {
		// TODO Auto-generated method stub
		this.resetValues();
	}
	private void resetValues() {
			this.college.setText("");
			this.gradeName.setText("");
			this.gradeDESC.setText("");
	}
}

package ssm.view;
/**
 * 班级维护窗口
 */

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JOptionPane;

import ssm.dao.GradeTypeDao;
import ssm.model.GradeType;
import ssm.util.Jdbcutil;
import ssm.util.StringUtil;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GradeTypeManageFrm extends JInternalFrame {
	private JTextField s_gradeName;
	private JTable gradeTypeTable;
	private Jdbcutil jdbcutil = new Jdbcutil();
	private GradeTypeDao gradeTypeDao = new GradeTypeDao(); 
	private JTextField updateid;
	private JTextField updatecollege;
	private JTextField updategradeName;
	private JTextField updategradeDESC;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GradeTypeManageFrm frame = new GradeTypeManageFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GradeTypeManageFrm() {
		setClosable(true);
		setIconifiable(true);
		setTitle("班级维护");
		setBounds(100, 100, 550, 650);
		
		JLabel lblNewLabel = new JLabel("班级名称:");
		lblNewLabel.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		s_gradeName = new JTextField();
		s_gradeName.setColumns(10);
		
		JButton btnNewButton = new JButton("查询");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				gradeNameSearchAction(e);
			}
		});
		btnNewButton.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 20));
		
		JScrollPane scrollPane = new JScrollPane();
		
		JPanel panel = new JPanel();
		panel.setBorder(new TitledBorder(null, "\u8868\u5355\u64CD\u4F5C", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		
		JButton btnNewButton_1 = new JButton("修改");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				gradeTypeUpdateActionEvent(e);
			}
		});
		btnNewButton_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 18));
		
		JButton btnNewButton_2 = new JButton("删除");
		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				gradeTypeDeleteActionPerformed(e);
			}
		});
		btnNewButton_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 18));
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(94)
							.addComponent(lblNewLabel)
							.addGap(14)
							.addComponent(s_gradeName, GroupLayout.PREFERRED_SIZE, 137, GroupLayout.PREFERRED_SIZE)
							.addGap(41)
							.addComponent(btnNewButton))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(70)
							.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 389, GroupLayout.PREFERRED_SIZE))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(24)
							.addComponent(panel, GroupLayout.PREFERRED_SIZE, 480, GroupLayout.PREFERRED_SIZE)))
					.addContainerGap(30, Short.MAX_VALUE))
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(76)
					.addComponent(btnNewButton_1)
					.addPreferredGap(ComponentPlacement.RELATED, 247, Short.MAX_VALUE)
					.addComponent(btnNewButton_2)
					.addGap(73))
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(48)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(s_gradeName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(lblNewLabel)))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(37)
							.addComponent(btnNewButton)))
					.addGap(18)
					.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 256, GroupLayout.PREFERRED_SIZE)
					.addGap(32)
					.addComponent(panel, GroupLayout.PREFERRED_SIZE, 151, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addComponent(btnNewButton_1, Alignment.TRAILING)
						.addComponent(btnNewButton_2, Alignment.TRAILING))
					.addGap(11))
		);
		
		JLabel lblNewLabel_1 = new JLabel("班级编号:");
		lblNewLabel_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateid = new JTextField();
		updateid.setColumns(10);
		
		JLabel lblNewLabel_2 = new JLabel("学院名称:");
		lblNewLabel_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updatecollege = new JTextField();
		updatecollege.setColumns(10);
		
		JLabel lblNewLabel_3 = new JLabel("班级名称:");
		lblNewLabel_3.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updategradeName = new JTextField();
		updategradeName.setColumns(10);
		
		JLabel lblNewLabel_4 = new JLabel("班级备注:");
		lblNewLabel_4.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updategradeDESC = new JTextField();
		updategradeDESC.setColumns(10);
		GroupLayout gl_panel = new GroupLayout(panel);
		gl_panel.setHorizontalGroup(
			gl_panel.createParallelGroup(Alignment.LEADING)
				.addGroup(Alignment.TRAILING, gl_panel.createSequentialGroup()
					.addGap(36)
					.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
						.addGroup(gl_panel.createSequentialGroup()
							.addComponent(lblNewLabel_3)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(updategradeName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
						.addGroup(gl_panel.createSequentialGroup()
							.addComponent(lblNewLabel_1)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(updateid, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
					.addPreferredGap(ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
					.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
						.addComponent(lblNewLabel_4)
						.addComponent(lblNewLabel_2))
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
						.addComponent(updatecollege, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
						.addComponent(updategradeDESC, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE))
					.addGap(62))
		);
		gl_panel.setVerticalGroup(
			gl_panel.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_panel.createSequentialGroup()
					.addGap(10)
					.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
						.addComponent(updateid, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblNewLabel_2)
						.addComponent(updatecollege, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblNewLabel_1))
					.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_panel.createSequentialGroup()
							.addGap(18)
							.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblNewLabel_4)
								.addComponent(updategradeName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(lblNewLabel_3)))
						.addGroup(gl_panel.createSequentialGroup()
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(updategradeDESC, GroupLayout.PREFERRED_SIZE, 67, GroupLayout.PREFERRED_SIZE)))
					.addContainerGap(12, Short.MAX_VALUE))
		);
		panel.setLayout(gl_panel);
		
		gradeTypeTable = new JTable();
		gradeTypeTable.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent e) {
				gradeTypeTableMousePressed(e);
			}
		});
		gradeTypeTable.setModel(new DefaultTableModel(
			new Object[][] {
			},
			new String[] {
				"\u7F16\u53F7", "\u5B66\u9662\u540D\u79F0", "\u73ED\u7EA7\u540D\u79F0", "\u73ED\u7EA7\u5907\u6CE8"
			}
		));
		scrollPane.setViewportView(gradeTypeTable);
		getContentPane().setLayout(groupLayout);
		//调用初始化表格
		this.fillTable(new GradeType());

	}
	/**
	 * 删除事件(班级维护)
	 * @param e
	 */
	protected void gradeTypeDeleteActionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String id = this.updateid.getText();//获得用户要删除的id
		if(StringUtil.isEmpty(id)) {
			JOptionPane.showMessageDialog(null, "请选择要删除的编号!");
			return;
		}
		int n = JOptionPane.showConfirmDialog(null, "确定要删除吗");
		if(n == 0) {
			Connection con = null;
			try {
				con = jdbcutil.getCon();
				//删除之前判断该班级之下是否
				//如果有学生就不删除
				int deleteNum = gradeTypeDao.delete(con, id);
				if(deleteNum == 1) {
					JOptionPane.showMessageDialog(null,"删除成功!");
					resetValue();
					fillTable(new GradeType());					
				}else {
					JOptionPane.showMessageDialog(null,"删除失败!");
				}
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}finally {
				try {
					jdbcutil.closeCon(con);
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		}
	}

	/**
	 * 修改事件(班级维护)
	 * @param e
	 */
	private void gradeTypeUpdateActionEvent(ActionEvent e) {
		// TODO Auto-generated method stub
		String id = updateid.getText();
		String college = updatecollege.getText();
		String gradeName = updategradeName.getText();
		String gradeDESC = updategradeDESC.getText();
		if(StringUtil.isEmpty(id)) {
			JOptionPane.showMessageDialog(null, "请选择要修改的编号!");
			return;
		}
		if(StringUtil.isEmpty(college)) {
			JOptionPane.showMessageDialog(null, "学院名称不能为空!");
			return;
		}
		if(StringUtil.isEmpty(gradeName)) {
			JOptionPane.showMessageDialog(null, "班级名称不能为空!");
			return;
		}
		if(StringUtil.isEmpty(gradeDESC)) {
			JOptionPane.showMessageDialog(null, "班级备注不能为空!");
			return;
		}
		GradeType gradeType = new GradeType(Integer.parseInt(id),college,gradeName,gradeDESC);
		Connection con = null;
		try {
			con = jdbcutil.getCon();
			int modifyNum = gradeTypeDao.update(con, gradeType);
			if(modifyNum == 1) {
				JOptionPane.showMessageDialog(null, "修改成功!");
				resetValue();
				fillTable(new GradeType());
			}else {
				JOptionPane.showMessageDialog(null, "修改失败!");
			}
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}finally {
			try {
				jdbcutil.closeCon(con);
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}
	/**
	 * 重置表单操作
	 */
	private void resetValue() {
		// TODO Auto-generated method stub
		this.updateid.setText("");
		this.updatecollege.setText("");
		this.updategradeName.setText("");
		this.updategradeDESC.setText("");
	}

	/**
	 * 表格单击事件,单机表格在下面显示信息
	 */
	
	private void gradeTypeTableMousePressed(MouseEvent evt) {
		// TODO Auto-generated method stub
		int row = gradeTypeTable.getSelectedRow();
		updateid.setText((String)gradeTypeTable.getValueAt(row, 0));
		updatecollege.setText((String)gradeTypeTable.getValueAt(row, 1));
		updategradeName.setText((String)gradeTypeTable.getValueAt(row, 2));
		updategradeDESC.setText((String)gradeTypeTable.getValueAt(row, 3));
	}
	
	/**
	 * 班级查询
	 * @param e
	 */
	private void gradeNameSearchAction(ActionEvent evt) {
		// TODO Auto-generated method stub
		String s_gradeName = this.s_gradeName.getText();
		GradeType gradeType = new GradeType();
		gradeType.setGradeName(s_gradeName);
		this.fillTable(gradeType);
		}
	
	/**
	 * 初始化表格
	 */
	private void fillTable(GradeType gradeType) {
		DefaultTableModel dtm = (DefaultTableModel)gradeTypeTable.getModel();
		dtm.setRowCount(0);
		Connection con = null;
		try {
			con = jdbcutil.getCon();
			ResultSet rs = gradeTypeDao.list(con, gradeType);
			while(rs.next()) {
					Vector v = new Vector();
					v.add(rs.getString("id"));
					v.add(rs.getString("college"));
					v.add(rs.getString("gradeName"));
					v.add(rs.getString("gradeDESC"));
					dtm.addRow(v);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				jdbcutil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	} 
}

package ssm.view;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import ssm.dao.UserDao;
import ssm.model.User;
import ssm.util.Jdbcutil;
import ssm.util.StringUtil;

import javax.swing.JProgressBar;
import java.awt.Toolkit;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.awt.event.ActionEvent;

public class LogOnFrm extends JFrame {

	private JPanel contentPane;
	private JTextField username;
	private JPasswordField password;
	private Jdbcutil jdbcutil = new Jdbcutil();
	private UserDao userDao = new UserDao();
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					LogOnFrm frame = new LogOnFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public LogOnFrm() {
		setResizable(false);
		setIconImage(Toolkit.getDefaultToolkit().getImage(LogOnFrm.class.getResource("/ssm/images/标题.jpg")));
		setTitle("学生管理系统");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 430, 340);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		
		JProgressBar progressBar = new JProgressBar();
		
		JLabel lblNewLabel = new JLabel("学生管理系统");
		lblNewLabel.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 21));
		
		JLabel lblNewLabel_1 = new JLabel("用户名");
		lblNewLabel_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 18));
		
		JLabel lblNewLabel_2 = new JLabel("密码");
		lblNewLabel_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 18));
		
		username = new JTextField();
		username.setColumns(10);
		
		password = new JPasswordField();
		
		JButton loginBut = new JButton("登陆");
		loginBut.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				loginActionPerformed(e);
			}
		});
		loginBut.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 18));
		
		JButton retBut = new JButton("重置");
		retBut.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				reSetActionPerformed(e);
			}
		});
		retBut.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 18));
		
		JLabel lblNewLabel_3 = new JLabel("生化环材机");
		lblNewLabel_3.setFont(new Font("Adobe 楷体 Std R", Font.PLAIN, 14));
		GroupLayout gl_contentPane = new GroupLayout(contentPane);
		gl_contentPane.setHorizontalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addComponent(progressBar, GroupLayout.PREFERRED_SIZE, 414, GroupLayout.PREFERRED_SIZE)
				.addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()
					.addContainerGap(166, Short.MAX_VALUE)
					.addComponent(lblNewLabel_3, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)
					.addGap(135))
				.addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()
					.addGap(65)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addComponent(lblNewLabel_2)
						.addComponent(lblNewLabel_1)
						.addComponent(loginBut))
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()
							.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 132, GroupLayout.PREFERRED_SIZE)
							.addGap(134))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING, false)
								.addComponent(password, Alignment.LEADING)
								.addComponent(username, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE)
								.addComponent(retBut))
							.addContainerGap(76, Short.MAX_VALUE))))
		);
		gl_contentPane.setVerticalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addComponent(progressBar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
					.addGap(43)
					.addComponent(lblNewLabel)
					.addGap(27)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblNewLabel_1)
						.addComponent(username, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblNewLabel_2)
						.addComponent(password, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(loginBut)
							.addPreferredGap(ComponentPlacement.RELATED, 14, Short.MAX_VALUE))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(retBut)
							.addGap(18)))
					.addComponent(lblNewLabel_3))
		);
		contentPane.setLayout(gl_contentPane);
		//窗口居中显示
		this.setLocationRelativeTo(null);
	}
	
	/**
	 * 登录操作
	 * @param evt
	 */
	protected void loginActionPerformed(ActionEvent evt) {
		// TODO Auto-generated method stua
		 String userName = this.username.getText();
		 String passWord = new String(this.password.getText());
		 if(StringUtil.isEmpty(userName)) {
			 JOptionPane.showMessageDialog(null, "用户名不能为空");
			 return;
		 }
		 if(StringUtil.isEmpty(passWord)) {
			 JOptionPane.showMessageDialog(null, "密码不能为空");
			 return;
		 }
		 User user = new User(userName,passWord);
		 Connection con = null;//连接数据库
		 try {
			con = jdbcutil.getCon();
			User currenUser = userDao.login(con, user);
			if(currenUser != null) {
				dispose();//销毁当前窗口
				new MainFrm().setVisible(true);
			}else {
				JOptionPane.showMessageDialog(null, "用户名或密码错误");
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				jdbcutil.closeCon(con);//关闭数据库
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	/**
	 * 重置操作
	 * @param e
	 */
	private void reSetActionPerformed(ActionEvent evt) {
		// TODO Auto-generated method stub
		this.username.setText("");
		this.password.setText("");		
	}
}

package ssm.view;
/**
 * 系统主界面
 */
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import ssm.model.GradeType;

import java.awt.Toolkit;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.awt.event.ActionEvent;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;

public class MainFrm extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MainFrm frame = new MainFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MainFrm() {
		setIconImage(Toolkit.getDefaultToolkit().getImage(MainFrm.class.getResource("/ssm/images/标题.jpg")));
		setTitle("主界面");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		//设置默认窗口最大化
		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
		JDesktopPane table = new JDesktopPane();
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu mnNewMenu_3 = new JMenu("系统设置");
		menuBar.add(mnNewMenu_3);
		
		JMenuItem mntmNewMenuItem_5 = new JMenuItem("退出程序");
		mntmNewMenuItem_5.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int result = JOptionPane.showConfirmDialog(null, "是否退出程序");
				if(result == 0) {
					dispose();
				}
			}
		});
		mnNewMenu_3.add(mntmNewMenuItem_5);
		
		JMenu mnNewMenu = new JMenu("班级管理");
		menuBar.add(mnNewMenu);
		
		JMenuItem mntmNewMenuItem = new JMenuItem("班级添加");
		mntmNewMenuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				GradeTypeAddFrm gradeTypeAddFrm = new GradeTypeAddFrm();
				gradeTypeAddFrm.setVisible(true);
				table.add(gradeTypeAddFrm);
			}
		});
		mnNewMenu.add(mntmNewMenuItem);
		
		JMenuItem mntmNewMenuItem_1 = new JMenuItem("班级维护");
		mntmNewMenuItem_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				GradeTypeManageFrm gradeTypeManageFrm = new GradeTypeManageFrm();
				gradeTypeManageFrm.setVisible(true);
				table.add(gradeTypeManageFrm);
			}
		});
		mnNewMenu.add(mntmNewMenuItem_1);
		
		JMenu mnNewMenu_1 = new JMenu("学生管理");
		menuBar.add(mnNewMenu_1);
		
		JMenuItem mntmNewMenuItem_2 = new JMenuItem("学生添加");
		mntmNewMenuItem_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StudentAddFrm studentAddFrm = new StudentAddFrm();
				studentAddFrm.setVisible(true);
				table.add(studentAddFrm);
			}
		});
		mnNewMenu_1.add(mntmNewMenuItem_2);
		
		JMenuItem mntmNewMenuItem_3 = new JMenuItem("学生维护");
		mntmNewMenuItem_3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StudentManageFrm studentManageFrm = new StudentManageFrm();
				studentManageFrm.setVisible(true);
				table.add(studentManageFrm);
			}
		});
		mnNewMenu_1.add(mntmNewMenuItem_3);
		
		JMenu mnNewMenu_2 = new JMenu("关于我们");
		menuBar.add(mnNewMenu_2);
		
		JMenuItem mntmNewMenuItem_4 = new JMenuItem("提桶跑路");
		mntmNewMenuItem_4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ssmInterFrm ssminter = new ssmInterFrm();
				ssminter.setVisible(true);
				table.add(ssminter);
			}
		});
		mnNewMenu_2.add(mntmNewMenuItem_4);
		
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		

		contentPane.add(table, BorderLayout.CENTER);
		table.setLayout(null);
	}
}

package ssm.view;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import java.awt.Font;
import javax.swing.LayoutStyle.ComponentPlacement;

public class ssmInterFrm extends JInternalFrame {

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ssmInterFrm frame = new ssmInterFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public ssmInterFrm() {
		setClosable(true);
		setIconifiable(true);
		setTitle("提桶跑路");
		setBounds(100, 100, 450, 300);
		
		JLabel lblNewLabel = new JLabel("关山难越,谁悲失路之人;");
		lblNewLabel.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		JLabel lblNewLabel_1 = new JLabel("萍水相逢,尽是他乡之客。");
		lblNewLabel_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		JLabel lblNewLabel_2 = new JLabel("孟尝高洁,空余报国之情;");
		lblNewLabel_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		JLabel lblNewLabel_3 = new JLabel("阮籍猖狂,岂效穷途之哭!");
		lblNewLabel_3.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(111)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 231, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblNewLabel_2, GroupLayout.DEFAULT_SIZE, 218, Short.MAX_VALUE)
						.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 244, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblNewLabel_3, GroupLayout.PREFERRED_SIZE, 208, GroupLayout.PREFERRED_SIZE))
					.addContainerGap())
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 54, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE)
					.addGap(51)
					.addComponent(lblNewLabel_2, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addComponent(lblNewLabel_3, GroupLayout.PREFERRED_SIZE, 31, GroupLayout.PREFERRED_SIZE)
					.addContainerGap(18, Short.MAX_VALUE))
		);
		getContentPane().setLayout(groupLayout);

	}
}

package ssm.view;

/**
 * 学生添加窗口
 */
import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;

import ssm.dao.GradeTypeDao;
import ssm.model.GradeType;
import ssm.model.Student;
import ssm.util.Jdbcutil;
import ssm.util.StringUtil;
import ssm.dao.StudentDao;

import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.awt.event.ActionEvent;
import javax.swing.JCheckBox;
import javax.swing.JFormattedTextField;
import javax.swing.JList;
import javax.swing.JComboBox;

public class StudentAddFrm extends JInternalFrame {
	private JTextField stuName;
	private JTextField stuAge;
	private JLabel lblNewLabel_3;
	private JTextField stuCollege;
	private JLabel lblNewLabel_4;
	private JTextField stuIDcard;
	private JLabel lblNewLabel_5;
	private JTextField stuAddress;
	private JLabel lblNewLabel_6;
	private JTextField stuPhone;
	private JLabel lblNewLabel_7;
	private JRadioButton stuGenderF;
	private final ButtonGroup buttonGroup_1 = new ButtonGroup();
	private JButton btnNewButton;
	private JButton btnNewButton_1;
	private Jdbcutil jdbcutil = new Jdbcutil();
	private GradeTypeDao gradeTypeDao = new GradeTypeDao();
	private JComboBox stuTypeid;
	private JRadioButton stuGenderM;
	private StudentDao studentDao = new StudentDao();

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					StudentAddFrm frame = new StudentAddFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public StudentAddFrm() {
		setClosable(true);
		setIconifiable(true);
		setTitle("学生添加");
		setBounds(100, 100, 541, 322);

		JLabel lblNewLabel = new JLabel("学生姓名:");
		lblNewLabel.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuName = new JTextField();
		stuName.setColumns(10);

		JLabel lblNewLabel_1 = new JLabel("学生年龄:");
		lblNewLabel_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuAge = new JTextField();
		stuAge.setColumns(10);

		JLabel lblNewLabel_2 = new JLabel("学生性别:");
		lblNewLabel_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		lblNewLabel_3 = new JLabel("学生学院:");
		lblNewLabel_3.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuCollege = new JTextField();
		stuCollege.setColumns(10);

		lblNewLabel_4 = new JLabel("学生学号:");
		lblNewLabel_4.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuIDcard = new JTextField();
		stuIDcard.setColumns(10);

		lblNewLabel_5 = new JLabel("学生地址:");
		lblNewLabel_5.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuAddress = new JTextField();
		stuAddress.setColumns(10);

		lblNewLabel_6 = new JLabel("学生联系方式:");
		lblNewLabel_6.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuPhone = new JTextField();
		stuPhone.setColumns(10);

		lblNewLabel_7 = new JLabel("学生班级:");
		lblNewLabel_7.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuGenderM = new JRadioButton("男");
		buttonGroup_1.add(stuGenderM);
		stuGenderM.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		stuGenderF = new JRadioButton("女");
		buttonGroup_1.add(stuGenderF);
		stuGenderF.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 14));

		btnNewButton = new JButton("添加");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StudentAddActionPerformed(e);
			}
		});
		btnNewButton.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));

		btnNewButton_1 = new JButton("重置");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StudentResetActionPerformed(e);
			}
		});
		btnNewButton_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));

		JList list = new JList();

		stuTypeid = new JComboBox();
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
						.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
								.addGroup(groupLayout.createSequentialGroup().addGap(21)
										.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
												.addComponent(lblNewLabel).addComponent(lblNewLabel_1))
										.addPreferredGap(ComponentPlacement.RELATED)
										.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
												.addComponent(stuAge, GroupLayout.PREFERRED_SIZE,
														GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
												.addComponent(stuName, GroupLayout.PREFERRED_SIZE,
														GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
								.addGroup(groupLayout.createSequentialGroup().addGap(18).addComponent(lblNewLabel_6)
										.addPreferredGap(ComponentPlacement.RELATED).addComponent(stuPhone,
												GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE))
								.addGroup(groupLayout
										.createSequentialGroup().addGap(24).addComponent(lblNewLabel_4).addGap(2)
										.addComponent(stuIDcard, GroupLayout.PREFERRED_SIZE, 143,
												GroupLayout.PREFERRED_SIZE))
								.addGroup(groupLayout.createSequentialGroup().addGap(21).addComponent(lblNewLabel_5)
										.addPreferredGap(
												ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
										.addComponent(
												stuAddress, GroupLayout.PREFERRED_SIZE, 144, GroupLayout.PREFERRED_SIZE)
										.addGap(35))
								.addGroup(groupLayout.createSequentialGroup()
										.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
												.addGroup(groupLayout.createSequentialGroup().addGap(20)
														.addComponent(lblNewLabel_3))
												.addGroup(groupLayout.createSequentialGroup().addGap(21)
														.addComponent(lblNewLabel_2)))
										.addPreferredGap(ComponentPlacement.RELATED)
										.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
												.addGroup(groupLayout.createSequentialGroup().addComponent(stuGenderM)
														.addPreferredGap(ComponentPlacement.UNRELATED)
														.addComponent(stuGenderF))
												.addComponent(stuCollege, GroupLayout.PREFERRED_SIZE, 141,
														GroupLayout.PREFERRED_SIZE))))
						.addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout
								.createSequentialGroup().addGap(8)
								.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(btnNewButton)
										.addComponent(btnNewButton_1).addComponent(lblNewLabel_7))
								.addPreferredGap(ComponentPlacement.RELATED)
								.addComponent(stuTypeid, 0, 155, Short.MAX_VALUE))
								.addGroup(groupLayout.createSequentialGroup().addGap(55).addComponent(list,
										GroupLayout.PREFERRED_SIZE, 1, GroupLayout.PREFERRED_SIZE)))
						.addContainerGap()));
		groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout
				.createSequentialGroup().addContainerGap(16, Short.MAX_VALUE)
				.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(
						stuName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
				.addPreferredGap(ComponentPlacement.RELATED, 12, Short.MAX_VALUE)
				.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_1).addComponent(
						stuAge, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
				.addGap(11)
				.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup().addGap(3).addComponent(lblNewLabel_2).addGap(2)
								.addComponent(lblNewLabel_3).addGap(5).addComponent(lblNewLabel_4)
								.addPreferredGap(ComponentPlacement.RELATED).addComponent(lblNewLabel_5))
						.addGroup(
								groupLayout.createSequentialGroup()
										.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
												.addComponent(stuGenderM).addComponent(stuGenderF))
										.addPreferredGap(ComponentPlacement.RELATED)
										.addComponent(stuCollege, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
												GroupLayout.PREFERRED_SIZE)
										.addPreferredGap(ComponentPlacement.UNRELATED)
										.addComponent(stuIDcard, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
												GroupLayout.PREFERRED_SIZE)
										.addGap(13).addComponent(stuAddress, GroupLayout.PREFERRED_SIZE,
												GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
				.addGap(1)
				.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_6).addComponent(
						stuPhone, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
				.addGap(32))
				.addGroup(groupLayout.createSequentialGroup().addContainerGap().addComponent(btnNewButton).addGap(18)
						.addComponent(btnNewButton_1).addGap(29)
						.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_7)
								.addComponent(stuTypeid, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
										GroupLayout.PREFERRED_SIZE))
						.addGap(18).addComponent(list, GroupLayout.PREFERRED_SIZE, 1, GroupLayout.PREFERRED_SIZE)
						.addGap(105)));
		getContentPane().setLayout(groupLayout);
		// 调用初始化
		this.fillGradeType();
	}

	/**
	 * 添加事件
	 * 
	 * @param e
	 */
	private void StudentAddActionPerformed(ActionEvent evt) {
		// TODO Auto-generated method stub
		String stuName = this.stuName.getText();
		String stuCollege = this.stuCollege.getText();
		String stuAge = this.stuAge.getText();
		String stuPhone = this.stuPhone.getText();
		String stuAddress = this.stuAddress.getText();
		String stuIDcard = this.stuIDcard.getText();

		if (StringUtil.isEmpty(stuName)) {
			JOptionPane.showMessageDialog(null, "姓名不能为空!");
			return;
		}
		if (StringUtil.isEmpty(stuCollege)) {
			JOptionPane.showMessageDialog(null, "学院不能为空!");
			return;
		}
		if (StringUtil.isEmpty(stuPhone)) {
			JOptionPane.showMessageDialog(null, "联系方式不能为空!");
			return;
		}
		if (StringUtil.isEmpty(stuIDcard)) {
			JOptionPane.showMessageDialog(null, "学号不能为空!");
			return;
		}
		if (StringUtil.isEmpty(stuAddress)) {
			JOptionPane.showMessageDialog(null, "地址不能为空!");
			return;
		}
		if (StringUtil.isEmpty(stuAge)) {
			JOptionPane.showMessageDialog(null, "年龄不能为空!");
			return;
		}
		// 性别选择
		String stuGender = null;
		if (stuGenderM.isSelected()) {
			stuGender = "男";
		} else if (stuGenderF.isSelected()) {
			stuGender = "女";
		}
		// 获取班级
		GradeType gradeType = (GradeType) stuTypeid.getSelectedItem();
		int stuTypeid = gradeType.getId();

		// 将获取的数据放入表中
		Student student = new Student(stuName, stuCollege, stuIDcard, stuAge, stuGender, stuAddress, stuPhone,
				stuTypeid);
		Connection con = null;
		try {
			con = jdbcutil.getCon();
			int n = studentDao.add(con, student);
			if(n == 1) {
				JOptionPane.showMessageDialog(null, "添加成功");
				resetValues();
			}else {
				JOptionPane.showMessageDialog(null, "添加失败");
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				jdbcutil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	/**
	 * 重置事件
	 * 
	 * @param e
	 */
	private void StudentResetActionPerformed(ActionEvent evt) {
		// TODO Auto-generated method stub
		this.resetValues();
	}

	private void resetValues() {
		// TODO Auto-generated method stub
		this.stuAddress.setText("");
		this.stuAge.setText("");
		this.stuCollege.setText("");
		this.stuIDcard.setText("");
		this.stuName.setText("");
		this.stuPhone.setText("");
	}

	/**
	 * 初始化班级下拉框
	 * 
	 * @param e
	 */
	private void fillGradeType() {
		Connection con = null;
		GradeType gradeType = null;
		try {
			con = jdbcutil.getCon();
			ResultSet rs = gradeTypeDao.list(con, new GradeType());
			while (rs.next()) {
				gradeType = new GradeType();
				gradeType.setId(rs.getInt("id"));
				gradeType.setGradeName(rs.getString("gradeName"));
				this.stuTypeid.addItem(gradeType);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				jdbcutil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

package ssm.view;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import ssm.dao.GradeTypeDao;
import ssm.dao.StudentDao;
import ssm.model.GradeType;
import ssm.model.Student;
import ssm.util.Jdbcutil;
import ssm.util.StringUtil;

import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;

public class StudentManageFrm extends JInternalFrame {
	private JTable studentTable;
	private JTextField s_stuName;
	private JTextField updateStuGender;
	private JTextField updateStuAge;
	private JTextField updateStuIDcard;
	private JTextField updateStuPhone;
	private JTextField updateStuCollege;
	private JTextField updateStuGrade;
	private JTextField updateStuAddress;
	private Jdbcutil jdbcutil = new Jdbcutil();
	private StudentDao studentDao = new StudentDao();
	private Student student; 
	private JTextField updateStuName;
	private JTextField updateid;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					StudentManageFrm frame = new StudentManageFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public StudentManageFrm() {
		setTitle("学生维护");
		setIconifiable(true);
		setClosable(true);
		setBounds(100, 100, 749, 801);
		
		JScrollPane scrollPane = new JScrollPane();
		
		studentTable = new JTable();
		studentTable.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent e) {
				studentTableMousePressed(e);
			}
		});
		studentTable.setBackground(new Color(255, 255, 255));
		studentTable.setModel(new DefaultTableModel(
			new Object[][] {
			},
			new String[] {
				"\u59D3\u540D", "\u7F16\u53F7", "\u6027\u522B", "\u5E74\u9F84", "\u5B66\u53F7", "\u8054\u7CFB\u65B9\u5F0F", "\u5B66\u9662", "\u73ED\u7EA7", "\u901A\u8BAF\u5730\u5740"
			}
		) {
			boolean[] columnEditables = new boolean[] {
				false, false, true, false, false, false, false, true, true
			};
			public boolean isCellEditable(int row, int column) {
				return columnEditables[column];
			}
		});
		scrollPane.setViewportView(studentTable);
		
		JLabel lblNewLabel = new JLabel("学生姓名:");
		lblNewLabel.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		s_stuName = new JTextField();
		s_stuName.setColumns(10);
		
		JButton btnNewButton = new JButton("查询");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				studentSearchAction(e);
			}
		});
		btnNewButton.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		JLabel lblNewLabel_1 = new JLabel("性别:\r\n");
		lblNewLabel_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuGender = new JTextField();
		updateStuGender.setColumns(10);
		
		JLabel lblNewLabel_2 = new JLabel("年龄:");
		lblNewLabel_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuAge = new JTextField();
		updateStuAge.setColumns(10);
		
		JLabel lblNewLabel_3 = new JLabel("学号:");
		lblNewLabel_3.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuIDcard = new JTextField();
		updateStuIDcard.setColumns(10);
		
		JLabel lblNewLabel_4 = new JLabel("联系方式:");
		lblNewLabel_4.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuPhone = new JTextField();
		updateStuPhone.setColumns(10);
		
		JLabel lblNewLabel_5 = new JLabel("学院:");
		lblNewLabel_5.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuCollege = new JTextField();
		updateStuCollege.setColumns(10);
		
		JLabel lblNewLabel_6 = new JLabel("班级:");
		lblNewLabel_6.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuGrade = new JTextField();
		updateStuGrade.setColumns(10);
		
		JLabel lblNewLabel_7 = new JLabel("通讯地址:");
		lblNewLabel_7.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuAddress = new JTextField();
		updateStuAddress.setColumns(10);
		
		JButton btnNewButton_1 = new JButton("修改");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				studentUpdateActionEvent(e);
			}
		});
		btnNewButton_1.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 20));
		
		JButton btnNewButton_2 = new JButton("删除");
		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				studentDeleteActionPerformed(e);
			}
		});
		btnNewButton_2.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 20));
		
		JLabel lblNewLabel_8 = new JLabel("姓名:");
		lblNewLabel_8.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateStuName = new JTextField();
		updateStuName.setColumns(10);
		
		JLabel lblNewLabel_9 = new JLabel("编号:\r\n");
		lblNewLabel_9.setFont(new Font("Adobe 楷体 Std R", Font.BOLD, 16));
		
		updateid = new JTextField();
		updateid.setColumns(10);
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(112)
							.addComponent(lblNewLabel)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(s_stuName, GroupLayout.PREFERRED_SIZE, 94, GroupLayout.PREFERRED_SIZE)
							.addGap(109)
							.addComponent(btnNewButton))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(39)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addGroup(groupLayout.createSequentialGroup()
									.addComponent(lblNewLabel_1)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(updateStuGender, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
									.addGap(172)
									.addComponent(lblNewLabel_4)
									.addGap(10)
									.addComponent(updateStuPhone, GroupLayout.PREFERRED_SIZE, 134, GroupLayout.PREFERRED_SIZE))
								.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 628, GroupLayout.PREFERRED_SIZE)
								.addGroup(groupLayout.createSequentialGroup()
									.addComponent(lblNewLabel_2)
									.addGap(3)
									.addComponent(updateStuAge, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
									.addGap(178)
									.addComponent(lblNewLabel_5)
									.addGap(34)
									.addComponent(updateStuCollege, GroupLayout.PREFERRED_SIZE, 137, GroupLayout.PREFERRED_SIZE))))
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addGroup(groupLayout.createSequentialGroup()
									.addGap(38)
									.addComponent(lblNewLabel_3)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(updateStuIDcard, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
								.addGroup(groupLayout.createSequentialGroup()
									.addGap(36)
									.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
										.addGroup(groupLayout.createSequentialGroup()
											.addComponent(lblNewLabel_9)
											.addGap(5)
											.addComponent(updateid, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
										.addGroup(groupLayout.createSequentialGroup()
											.addComponent(lblNewLabel_7)
											.addPreferredGap(ComponentPlacement.RELATED)
											.addComponent(updateStuAddress, GroupLayout.PREFERRED_SIZE, 143, GroupLayout.PREFERRED_SIZE)))))
							.addGap(70)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addGroup(groupLayout.createSequentialGroup()
									.addComponent(lblNewLabel_8)
									.addGap(39)
									.addComponent(updateStuName, GroupLayout.PREFERRED_SIZE, 118, GroupLayout.PREFERRED_SIZE))
								.addGroup(groupLayout.createSequentialGroup()
									.addComponent(lblNewLabel_6)
									.addGap(38)
									.addComponent(updateStuGrade, GroupLayout.PREFERRED_SIZE, 133, GroupLayout.PREFERRED_SIZE)))))
					.addContainerGap(66, Short.MAX_VALUE))
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(159)
					.addComponent(btnNewButton_1)
					.addPreferredGap(ComponentPlacement.RELATED, 229, Short.MAX_VALUE)
					.addComponent(btnNewButton_2)
					.addGap(199))
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(39)
							.addComponent(lblNewLabel))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(40)
							.addComponent(s_stuName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(28)
							.addComponent(btnNewButton)))
					.addGap(17)
					.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 302, GroupLayout.PREFERRED_SIZE)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(18)
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblNewLabel_1)
								.addComponent(updateStuGender, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addGroup(groupLayout.createSequentialGroup()
									.addPreferredGap(ComponentPlacement.UNRELATED)
									.addComponent(lblNewLabel_2))
								.addGroup(groupLayout.createSequentialGroup()
									.addGap(11)
									.addComponent(updateStuAge, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
							.addGap(9)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(lblNewLabel_3)
								.addComponent(updateStuIDcard, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(20)
							.addComponent(lblNewLabel_4)
							.addGap(5)
							.addComponent(lblNewLabel_5)
							.addGap(8)
							.addComponent(lblNewLabel_6))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(19)
							.addComponent(updateStuPhone, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addGap(19)
							.addComponent(updateStuCollege, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addGap(22)
							.addComponent(updateStuGrade, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(8)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(lblNewLabel_7)
								.addComponent(updateStuAddress, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addGroup(groupLayout.createSequentialGroup()
									.addPreferredGap(ComponentPlacement.UNRELATED)
									.addComponent(lblNewLabel_9)
									.addGap(32)
									.addComponent(btnNewButton_1))
								.addGroup(groupLayout.createSequentialGroup()
									.addGap(10)
									.addComponent(updateid, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addGroup(groupLayout.createSequentialGroup()
									.addGap(6)
									.addComponent(lblNewLabel_8))
								.addGroup(groupLayout.createSequentialGroup()
									.addGap(7)
									.addComponent(updateStuName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
							.addGap(77)
							.addComponent(btnNewButton_2)))
					.addContainerGap(97, Short.MAX_VALUE))
		);
		getContentPane().setLayout(groupLayout);
		//调用初始化表格
		this.fillTable(new Student());

	}
	/**
	 * 修改事件(学生维护)
	 * @param e
	 */
	private void studentUpdateActionEvent(ActionEvent e) {
		// TODO Auto-generated method stub
		String id = updateid.getText();
		String college = updateStuCollege.getText();
		String grade = updateStuGrade.getText();
		String age = updateStuAge.getText();
		String gender = updateStuGender.getText();
		String phone = updateStuPhone.getText();
		String address = updateStuAddress.getText();
		String IDcard = updateStuIDcard.getText();
		String name = updateStuName.getText();
		if(StringUtil.isEmpty(id)) {
			JOptionPane.showMessageDialog(null, "请选择要修改的编号!");
			return;
		}
		if(StringUtil.isEmpty(college)) {
			JOptionPane.showMessageDialog(null, "学院名称不能为空!");
			return;
		}
		if(StringUtil.isEmpty(grade)) {
			JOptionPane.showMessageDialog(null, "班级名称不能为空!");
			return;
		}
		if(StringUtil.isEmpty(phone)) {
			JOptionPane.showMessageDialog(null, "联系方式不能为空!");
			return;
		}
		if(StringUtil.isEmpty(address)) {
			JOptionPane.showMessageDialog(null, "地址不能为空!");
			return;
		}
		if(StringUtil.isEmpty(IDcard)) {
			JOptionPane.showMessageDialog(null, "学号不能为空!");
			return;
		}
		if(StringUtil.isEmpty(gender)) {
			JOptionPane.showMessageDialog(null, "性别不能为空!");
			return;
		}
		if(StringUtil.isEmpty(name)) {
			JOptionPane.showMessageDialog(null, "姓名不能为空!");
			return;
		}
		if(StringUtil.isEmpty(age)) {
			JOptionPane.showMessageDialog(null, "年龄不能为空!");
			return;
		}
		Student student = new Student(Integer.parseInt(id),name,college,IDcard,age,gender,address,phone,Integer.parseInt(grade));
		Connection con = null;
		try {
			con = jdbcutil.getCon();
			int modifyNum = studentDao.update(con, student);
			if(modifyNum == 1) {
				JOptionPane.showMessageDialog(null, "修改成功!");
				resetValue();
				fillTable(new Student());
			}else {
				JOptionPane.showMessageDialog(null, "修改失败!");
			}
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}finally {
			try {
				jdbcutil.closeCon(con);
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}
	/**
	 * 删除事件(学生维护)
	 * @param e
	 */
	protected void studentDeleteActionPerformed(ActionEvent evt) {
		// TODO Auto-generated method stub
		String id = this.updateid.getText();//获得用户要删除的id
		if(StringUtil.isEmpty(id)) {
			JOptionPane.showMessageDialog(null, "请选择要删除的编号!");	
			return;
		}
		int n = JOptionPane.showConfirmDialog(null, "确定要删除吗");
		if(n == 0) {
			Connection con = null;
			try {
				con = jdbcutil.getCon();
				//判断是否删除成功
				if(studentDao.delete(con, id) == 1) {
					JOptionPane.showMessageDialog(null,"删除成功!");
					resetValue();
					fillTable(new Student());					
				}else {
					JOptionPane.showMessageDialog(null,"删除失败!");
				}		
				} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}finally {
				try {
					jdbcutil.closeCon(con);
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		}
	}
	/**
	 * 重置表单操作
	 */
	private void resetValue() {
		// TODO Auto-generated method stub
		this.updateid.setText("");
		this.updateStuCollege.setText("");
		this.updateStuName.setText("");
		this.updateStuPhone.setText("");
		this.updateStuAge.setText("");
		this.updateStuAddress.setText("");
		this.updateStuGender.setText("");
		this.updateStuGrade.setText("");
		this.updateStuIDcard.setText("");
	}
	/**
	 * 表格单击事件,单机表格在下面显示信息
	 */
	private void studentTableMousePressed(MouseEvent evt) {
		// TODO Auto-generated method stub
		int row =studentTable.getSelectedRow();
		updateStuName.setText((String)studentTable.getValueAt(row, 0));
		updateid.setText((String)studentTable.getValueAt(row, 1));
		updateStuGender.setText((String)studentTable.getValueAt(row, 2));
		updateStuAge.setText((String)studentTable.getValueAt(row, 3));
		updateStuIDcard.setText((String)studentTable.getValueAt(row,4));
		updateStuPhone.setText((String)studentTable.getValueAt(row, 5));
		updateStuCollege.setText((String)studentTable.getValueAt(row, 6));
		updateStuGrade.setText((String)studentTable.getValueAt(row, 7));
		updateStuAddress.setText((String)studentTable.getValueAt(row, 8));

	}
	/**
	 * 班级查询
	 * @param e
	 */
	private void studentSearchAction(ActionEvent evt) {
		// TODO Auto-generated method stub
		String s_stuName = this.s_stuName.getText();
		Student student = new Student();
		student.setStuName(s_stuName);
		this.fillTable(student);
		}
	/**
	 * 初始化表格
	 */
	private void fillTable(Student student) {
		DefaultTableModel dtm = (DefaultTableModel)studentTable.getModel();
		dtm.setRowCount(0);
		Connection con = null;
		try {
			con = jdbcutil.getCon();
			ResultSet rs =studentDao.list(con, student);
			while(rs.next()) {
					Vector v = new Vector();
					v.add(rs.getString("stuName"));
					v.add(rs.getString("id"));
					v.add(rs.getString("stuGender"));
					v.add(rs.getString("stuAge"));
					v.add(rs.getString("stuIDcard"));
					v.add(rs.getString("stuPhone"));
					v.add(rs.getString("stuCollege"));
					v.add(rs.getString("stuTypeid"));
					v.add(rs.getString("stuAddress"));
					dtm.addRow(v);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				jdbcutil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	} 
}

本文地址:https://blog.csdn.net/weixin_43914765/article/details/107160266

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网