数据库课程设计-宿舍管理系统

 

最近写完了数据库的课程设计,想把整个源码的编辑过程发出来。程序很简单,需要有很多完善的地方,在这里,我想和大家分享写这个程序的心路历程。

首先,在开始写程序之前。我们需要先写一些工具类,来辅助完成整个程序的构建,在这里我把连接jdbc的代码放在了一个包下面。

如下图:

在这里我们先来写最基本的类,jdbcDrive,这是负责和数据库进行连接,并且执行语句的类

 

public class jdbcDrive {
	public static Connection connection;
	public static Statement statement;
	public static ResultSet  resultset;
	public static void jdbcConnection(){
  
		try {
		    connection = DriverManager.getConnection(jdbc.dbURL, jdbc.userName,jdbc.userPwd);
			System.out.println("连接数据库成功!");
			} catch (Exception e) {
			System.out.print("SQL Server连接失败!");
			}
	}
	
	public static void jdbcConnectionClose(){
		try {
			connection.close();
			System.out.println("数据库连接成功关闭");
		} catch (SQLException e) {
			System.out.println("数据库连接关闭失败");
		}
	}
	
	public static void jdbcExecuteUpdate(String s) throws SQLException{
		jdbcConnection();
		statement=connection.createStatement();
		statement.executeUpdate(s);
	}
	
	public static void jdbcExecuteQuery(String s) throws SQLException{
		jdbcConnection();
		statement=connection.createStatement();
		resultset=statement.executeQuery(s);
	}
	public static void main(String [] args) {
	}
}

在这里我选择的是SQL SERVER 2014,它的jdbc版本已经不需要加载数据库了,可以直接进行连接,在这里分为四个方法。其中两个是负责,数据库的连接和释放。jdbcExecuteUpdate负责传递SQL的增加,修改,删除,不需要有结果集的语句。jdbcExecuteQuery负责进行jdbc的查询,将查询的结果放在resultset里面。Connection类是负责进行数据库的连接,Statement 负责传递查询语句。resultset是结果集,负责保存储存的信息。

 

 

在进行数据的连接的时候,需要向数据库传递参数。我把参数放在了一个接口里面。

 

public interface jdbc {
    String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Dormitory";
	String userName = "sa";
	String userPwd = "123456";
}

写完基本的jdbc类之后,我们在进行整个系统的界面搭建。

 

设计主界面的时候,用到以下几个类,第一个是用于放置菜单选项的JMenuBar,它是放置JMenu的容器,而JMenu是房子JMenuItem的容器。具体的构建过程就是,在JFrame里添加JMenu,用来表示要放置的菜单选项,在JMenu里面放置JMeunItem用来表示菜单的子选项。其中,用了JLabel来存放图片。各个JMenuItem的监听事件放在了一个单独的包里面。具体的搭建界面如下:

 

 

public class Login extends JFrame {
	private JButton loginButton,exitButton;
	private JLabel userNameLabel,passwordLabel;
	private JTextField userNameText;
	private JPasswordField passwordText;
	private HandleAction handleAction;
	private static JPanel loginPanel;
	private ManagementUi MainUi;
	private Toolkit toolKit=null;
	private Dimension screenSize=null;
	public static personManage nowPeople;
	public  Login(){
		Init();
	}
	
	public void Init(){
		//获取当前窗口,并且获取屏幕的尺寸
		toolKit=Toolkit.getDefaultToolkit();
		screenSize=toolKit.getScreenSize();
		//加载封装了图片的Panel子类,并添加到当前JFrame容器里面
	    loginPanel=new LoginPanel();
		loginPanel.setLayout(null);
		add(loginPanel);
		//将整个图框居中
     	setBounds(screenSize.width/2-loginPanel.getWidth()/2
     			,screenSize.height/2-loginPanel.getHeight()/2
     			,loginPanel.getWidth(),loginPanel.getHeight());
		handleAction=new  HandleAction();
		this.setIconImage(new ImageIcon("resource/picture.png").getImage());
		//向loginPanel容器加入两个Jlabel,两个按钮,一个文本框,一个密码框
		userNameLabel=new JLabel("用户名");
		userNameLabel.setBounds(100, 120, 200, 18);
		loginPanel.add(userNameLabel);
		
		userNameText=new JTextField();
		userNameText.setBounds(150, 120, 150, 18);
		loginPanel.add(userNameText);
		
		passwordLabel=new JLabel("密码");
		passwordLabel.setBounds(100, 180, 200, 18);
		loginPanel.add(passwordLabel);
		
		passwordText=new JPasswordField();
		passwordText.setBounds(150, 180, 150, 18);
		loginPanel.add(passwordText);
		
		loginButton=new JButton("登录");
		loginButton.setBounds(150, 230, 60, 18);
		loginPanel.add(loginButton);
		
		exitButton=new JButton("退出");
		exitButton.setBounds(230, 230, 60, 18);
		loginPanel.add(exitButton);
		
		exitButton.addActionListener(handleAction);
		loginButton.addActionListener(handleAction);
		setTitle("宁悦宿舍管理系统");
		this.setResizable(false);
		setVisible(true);
		setDefaultCloseOperation(this.EXIT_ON_CLOSE);
	}
	private class HandleAction implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			if(e.getSource()==loginButton){
				String pass=new String(passwordText.getPassword());
				if(jdbcLogin.Judge(userNameText.getText(),pass)){
					nowPeople=new personManage(userNameText.getText(),null,null,pass);
					MainUi=new ManagementUi();
					Login.this.setVisible(false);
				}else{
					JOptionPane.showMessageDialog(Login.this,"不是系统的合法用户或密码错误" );
				}
				
			}else if(e.getSource()==exitButton) {
				Login.this.dispose();
			}
		}
	}
	
	public static void main(String [] args){
		Login in=new Login();
	}
}

class LoginPanel extends JPanel {
	protected I
评论 122
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值