大作業—JAVAGUI實現數據庫管理系統(1)

啊啊啊我好菜啊 一點點來叭

先設計登陸界面:包含用戶名、密碼等組件(先簡單實現一下功能,等後期在優化界面比如驗證碼的添加什麼的)

然後連接數據庫 在數據庫先建第一張表然後添加一些數據(隨便填了一些)

普通用戶登錄輸入用戶名和密碼,數據庫裏有並且對應上則登陸成功進入普通用戶的操作界面(功能什麼的下次再寫),不存在的登陸失敗,可以註冊。(下一次寫註冊的界面和功能的實現)

管理員我尋思是輸入特定的用戶名和密碼纔可以登陸成功,但是功能界面什麼的意思差不多最後再寫這個。

先寫這些吧!

sql server用戶表的建立:

CREATE TABLE PY  
(ID CHAR(10),    //用戶名
 PAWD CHAR(20)   //密碼
 );

登錄界面:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class 界面 extends JFrame{	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public 界面() 
	{ 
	setTitle("登錄");
	setBak(); //調用背景方法 
	JPanel jp = new JPanel(); //創建個JPanel 
	jp.setOpaque(false); //把JPanel設置爲透明 這樣就不會遮住後面的背景 這樣你就能在JPanel隨意加組件了 
	this.add(jp);
	
	Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();  
	int x = (int)screensize.getWidth();
	int y = (int)screensize.getHeight(); 
	//獲取屏幕的長寬並將界面設置成該大小
	this.setSize(x,y);	
	
	
	jp.setLayout(new BorderLayout());
	JLabel jj=new JLabel("歡迎進入用戶管理系統!");
	jj.setFont(new Font("宋體",Font.PLAIN,45));//設置字體的字體,樣子,大小			
	jp.add(jj,BorderLayout.NORTH); //在整體佈局的上方
	jj.setHorizontalAlignment(SwingConstants.CENTER);//居中
	jj.setPreferredSize(new Dimension(0,500));  //寬度300
	
	
	JLabel j1_useranme=new JLabel("請輸入用戶名");
	j1_useranme.setFont(new Font("宋體",Font.PLAIN,20));
	JTextField ja_username=new JTextField(20);
	JLabel j2_useranme=new JLabel("請輸入密碼  ");
	j2_useranme.setFont(new Font("宋體",Font.PLAIN,20));
	JPasswordField jb_password=new JPasswordField(20);//密碼採用密碼輸入:即輸入後顯示**
	
	JPanel p=new JPanel();
	jp.add(p,BorderLayout.CENTER);	
	p.setLayout(new BorderLayout());//在邊框佈局中的center部分嵌入邊框佈局	
	JPanel p1=new JPanel();
	JPanel p3=new JPanel();
	JLabel b=new JLabel(" ");
	p1.add(j1_useranme);
	p1.add(ja_username);
	p3.add(j2_useranme);
	p3.add(jb_password);
	p.add(b,BorderLayout.NORTH);
	p.add(p1,BorderLayout.CENTER);
	p.add(p3,BorderLayout.SOUTH);
	b.setPreferredSize(new Dimension(0,40));
	
	JButton j3_ok=new JButton("登錄");
	j3_ok.addActionListener(new ActionListener()    //監聽登錄按鈕
			{

		public void actionPerformed(ActionEvent e)
		{
			
			Jdbcs d = new Jdbcs();			
			String jusername=ja_username.getText();//獲取賬號
			char[] s=jb_password.getPassword();
			String jpassword=new String(s);		//獲取密碼
			d.compare(jusername, jpassword);   
		}
		}
			);
						
	
	JButton j4_register=new JButton("註冊");
	j4_register.addActionListener(new ActionListener()//同理,先寫一樣的後期再改
			{
	public void actionPerformed(ActionEvent e)
	{
		closeThis();
		new PY();
	}
			});
	
	JPanel p2=new JPanel();	
	p2.add(j3_ok);
	p2.add(j4_register);
	p2.setPreferredSize(new Dimension(0,100));
	jp.add(p2,BorderLayout.SOUTH);//在整體的下方,兩個按鈕並排
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	} 
	
	public void setBak()//背景方法
	{ 
		((JPanel)this.getContentPane()).setOpaque(false); 
		ImageIcon img = new ImageIcon("C:\\\\Users\\\\小甘同學\\\\Pictures\\\\2.jpg"); //添加圖片的位置
		JLabel background = new JLabel(img);
		this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
		background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight()); 
		} 

	
	public  void closeThis()//關閉當前界面方法
	{
		this.dispose();
	}

	
	public static void main(String[] args)
	{		
		new 界面().setVisible(true);
	}

}

界面是這樣的:(當然密碼的輸入顯示是****)
在這裏插入圖片描述
連接數據庫:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;
public class Jdbcs { 	
	 
	   Connection con = null;
       Statement statement = null;
       ResultSet res = null;
	
	   String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//加載jbdc驅動
	   String dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SCHOOL";
	   String userName="sa";
	   String userPwd="俺的密碼(手動打碼)";
	
	public Jdbcs()
	   {
	  try
	 {
	     Class.forName(driverName);
	     System.out.println("加載驅動成功!");
	 }catch(Exception e){
	     e.printStackTrace();
	     System.out.println("加載驅動失敗!");
	 }
	 try{
	         con=DriverManager.getConnection(dbURL,userName,userPwd);
	         System.out.println("連接數據庫成功!");
	 }catch(Exception e)
	 {
	     e.printStackTrace();
	     System.out.print("SQL Server連接失敗!");
	 }        
	   }

	 public void compare(String username, String password) {
		 
	      if(username.equals("")||password.equals(""))
	    {
	   JOptionPane.showMessageDialog(null,"對不起,請輸入用戶名或密碼.","錯誤!",JOptionPane.ERROR_MESSAGE);
		}
	      else
	      {    		
	    	  String sql="select *  from PY where ID='"+ username +"'"; 
	    	  try {    	    			 		    		  				    			  	    		 		    		    		  		    		
		    		  res = statement.executeQuery(sql);
		    		  
		    		  if(res.next())//如果存在,就驗證密碼
		    		  {
		    			 
		    			  if(res.getString("PAWD").equals(password))//如果密碼正確,進入下一個界面
		    			  {
		    				  new PY();	    					    				  
		    			  }
		    			  else//錯誤則提示
		    			  {
		    		JOptionPane.showMessageDialog(null,"對不起,輸入密碼錯誤.","錯誤!",JOptionPane.ERROR_MESSAGE);
		    			  }	    			  
		    		  }
		    		  else//如果用戶名不存在
		    		  {
		    	   JOptionPane.showMessageDialog(null,"用戶名不存在","錯誤!",JOptionPane.ERROR_MESSAGE);
		    		  }	    		  
	    		
	    		 res.close();
	             con.close();
	             statement.close();
	   
	          } catch (SQLException e) {
	              e.printStackTrace();
	          }
	                   
	     }
		
}
}

如果用戶名或密碼存在空值:
在這裏插入圖片描述
如果用戶名存在但是密碼錯誤:
在這裏插入圖片描述

如果用戶名不存在:
在這裏插入圖片描述

如果成功的話進入下一個界面:(現在啥也沒有🤷隨便插了個圖片)
在這裏插入圖片描述
就醬🙌

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章