使用JavaGUI对数据库的操作

Jdbc类设计:
连接数据库、insert_into(String name,String password)向数据库中插入数据的方法、drop(String name)删除数据的方法、update(String name,String password)修改数据方法、find()查询数据方法(注:此方法不要也行,操作中并未涉及到此方法)
Win类设计:
创建一个窗口window、一个面板contentPane,四个按钮btnNewButton,btnNewButton_1,btnNewButton_2,btnNewButton_3、两个文本框textField,textField_1、两个标签label,label1。构造方法Win()、创建窗口和面板的方法win()、以及创建按钮,文本框和标签的方法init(),然后把方法initial()和方法win(),放入构造方法中。在init()方法中对按钮设置事件监听和响应,设置Jdbc类的对象调用Jdbc类里面的方法,实现通过界面对数据库的操作。
Win1类设计:
主要是对Win类中登陆按钮的响应,显示登陆成功的页面。其中设置一个窗口frame,一个面板contentPane,一个标签lbll以及一个方法win1()实现窗口面板和标签的功能。
Menu类设计:主类,就一句话创建Win类对象,由于Win里的方法都放在了构造方法中就不用调用。

package Window;
public class Menu {
	public static void main(String[] args) {
		Win a = new Win();
	}
}


//##################
package Window;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;

public class Win1 extends JFrame {
	JFrame frame = new JFrame();
	private JPanel contentPane;	
	public void win1() {
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(100, 100, 450, 300);
		frame.setVisible(true);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		frame.setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lbll = new JLabel("登陆成功");
		lbll.setFont(new Font("宋体", Font.PLAIN, 30));
		lbll.setForeground(new Color(0, 0, 0));
		lbll.setBounds(145, 65, 131, 86);
		contentPane.add(lbll);
	}
}
//##############
package Window;

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

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.UIManager;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Win extends JFrame {

	JFrame window;
	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	JButton btnNewButton,btnNewButton_1,btnNewButton_2,btnNewButton_3;
	
	String name;
	String password;
	Jdbc jdbc = new Jdbc();

	public static void main(String[] args) {
		Win a= new Win();
		
	}
	
	public Win() {
		win();
		init();
	}
	public void win() {
		window = new JFrame();
		window.setBounds(100, 100, 450, 300);
		window.setForeground(new Color(175, 238, 238));
		window.setBackground(new Color(222, 184, 135));
		window.setTitle("欢迎使用");
		window.setVisible(true);
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		contentPane = new JPanel();
		contentPane.setForeground(new Color(240, 255, 255));
		contentPane.setBackground(new Color(0, 255, 255));
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
		window.setContentPane(contentPane);
		contentPane.setLayout(null);
	}
	void init() {

		JLabel label = new JLabel("账号:");
		//lblNewLabel.setBackground(new Color(0, 255, 255));
		label.setBounds(76, 13, 72, 18);
		contentPane.add(label);
		
		JLabel label1 = new JLabel("密码:");
		label1.setBounds(77, 50, 72, 18);//大小位置
		contentPane.add(label1);
		
		textField = new JTextField();
		textField.setBounds(136, 10, 199, 24);
		textField.setColumns(10);//宽度
		contentPane.add(textField);
				
		textField_1 = new JTextField();
		textField_1.setBounds(136, 47, 199, 24);
		textField_1.setColumns(10);
		contentPane.add(textField_1);

		btnNewButton = new JButton("删除用户");
		btnNewButton.setBackground(new Color(127, 255, 212));
		btnNewButton.setForeground(new Color(0, 0, 0));
		btnNewButton.setBounds(222, 159, 113, 27);
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				name=textField.getText();
				jdbc.drop(name);
			}
		});
		contentPane.add(btnNewButton);
		
		btnNewButton_1 = new JButton("修改密码");
		btnNewButton_1.setBackground(new Color(127, 255, 212));
		btnNewButton_1.setBounds(76, 159, 113, 27);
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				name=textField.getText();
				password = textField_1.getText();
				jdbc.update(name,password);
			}
		});
		contentPane.add(btnNewButton_1);
		
		btnNewButton_2 = new JButton("登陆");
		btnNewButton_2.setBackground(new Color(127, 255, 212));
		btnNewButton_2.setBounds(76, 117, 113, 27);
		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Win1 a = new Win1();
				a.win1();
			}
		});
		contentPane.add(btnNewButton_2);
		
		btnNewButton_3 = new JButton("注册");
		btnNewButton_3.setBackground(new Color(127, 255, 212));
		btnNewButton_3.setBounds(222, 117, 113, 27);
		btnNewButton_3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				name=textField.getText();
				password = textField_1.getText();
				jdbc.insert_into(name,password);
			}
		});
		contentPane.add(btnNewButton_3);
		
	}
}
//################
package Window;
import java.util.Scanner;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Jdbc {
    String sql=null;
	Statement statement = null;
	ResultSet rSet=null;
	Connection connection = null;
	String name;
	String password;
	public Jdbc()
		{
			
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
		     } catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		    }
		String url = "jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
		String user = "root";
		String pwd = "123456";
		try
		    {
		       connection = DriverManager.getConnection(url, user, pwd);
		       statement = connection.createStatement();
		    }
		catch(Exception e)
		   {}
		}
	
		//查询数据
		public void find(){
			
			sql = "select * from user";
			try {
				 rSet=statement.executeQuery(sql);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				while(rSet.next()){
					System.out.println(rSet.getString(1)+","+rSet.getString(2));
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		//插入语句
		public boolean insert_into(String name,String password)
		{
			this.name = name;
			this.password = password;
			boolean b = false;
			sql = "insert into user(name,password) values('"+name+"','"+password+"')";
			
			try {
				 b=statement.execute(sql);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return b;
		}
		//删除语句
		public boolean drop(String name)
		{
			this.name = name;
			//String password = "123";
			boolean b = false;
			sql = "delete from user where name='"+name+"'";
			
			try {
				 b=statement.execute(sql);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.print("插入失败!");
			}
			return b;
		}

		//修改语句
		public boolean update(String name,String password)
		{
			this.name = name;
			this.password = password;
			boolean b = false;
			sql = "update user set password='"+password+"' where name='"+name+"'";
			
			try {
				 b=statement.execute(sql);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return b;
		}
}

截图
在这里插入图片描述
数据库图片
在这里插入图片描述

录入=new JButton("录入"); 查询=new JButton("查询");删除=new JButton("删除"); 修改=new JButton("修改");显示=new JButton("显示");录入.addActionListener(new InputAct());查询.addActionListener(new InquestAct()); 修改.addActionListener(new ModifyAct());删除.addActionListener(new DeleteAct());显示.addActionListener(new ShowAct()); 修改.setEnabled(false); p1=new JPanel(); p1.add(new JLabel("学号:",JLabel.CENTER)); p1.add(学号); p2=new JPanel(); p2.add(new JLabel("姓名:",JLabel.CENTER)); p2.add(姓名); p3=new JPanel(); p3.add(new JLabel("性别:",JLabel.CENTER)); p3.add(男); p3.add(女); p4=new JPanel(); p4.add(new JLabel("专业:",JLabel.CENTER)); p4.add(专业); p5=new JPanel(); p5.add(new JLabel("年级:",JLabel.CENTER)); p5.add(年级); p6=new JPanel(); p6.add(new JLabel("出生:",JLabel.CENTER)); p6.add(出生); pv=new JPanel(); pv.setLayout(new GridLayout(6,1)); pv.add(p1); pv.add(p2); pv.add(p3); pv.add(p4); pv.add(p5); pv.add(p6); ph=new JPanel(); ph.add(录入); ph.add(查询); ph.add(修改); ph.add(删除); ph.add(显示); file=new File("学生信息.txt"); 学生散列表=new Hashtable(); if(!file.exists()){ try{ FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(学生散列表); objectOut.close(); out.close(); } catch(IOException e){} } Container con=getContentPane(); con.setLayout(new BorderLayout()); con.add(lb, BorderLayout.WEST); con.add(pv, BorderLayout.CENTER); con.add(ph, BorderLayout.SOUTH); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(100,100,600,300); setVisible(true); Statement stmt; ResultSet rs; } public static void main(String[] args) {StudentManager ff=new StudentManager();} //添加学生信息,的Mysql操作 public class InputAct implements ActionListener{ public void actionPerformed(ActionEvent e){ 修改.setEnabled(false); String number=""; number=学号.getText(); if(number.length()>0){ if(学生散列表.containsKey(number)){ String warning="该生信息已存在,请到修改页面修改!"; JOptionPane.showMessageDialog(null,warning,"警告", JOptionPane.WARNING_MESSAGE); }//end if1 else{ String m="该生信息将被录入!"; int ok=JOptionPane.showConfirmDialog(null,m,"确认", JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok==JOptionPane.YES_OPTION) { try { Class.forName("org.gjt.mm.mysql.Driver"); } catch(java.lang.ClassNotFoundException e11) { System.out.println("Class not found exception occir.Message is:"); System.out.println(e11.getMessage()); } try { PreparedStatement prepstmt1; Statement stmt; ResultSet rs; String url = "jdbc:mysql://localhost/test?user=root&password=0&useUnicode=true&&characterEncoding=8859_1"; String user="root"; String password="0"; Connection conn=null; try { conn=DriverManager.getConnection(url,user,password); } catch(Exception ex) { ex.printStackTrace(); } //对制定的数据库添加信息 String sql1="INSERT INTO students(student_id,name,sex,job,data,grade)"+"VALUES(?,?,?,?,?,?)"; prepstmt1=(PreparedStatement)conn.prepareStatement(sql1); prepstmt1.setString(1,学号.getText()); prepstmt1.setString(2,姓名.getText()); if(男.isSelected()){prepstmt1.setString(3,"男.getText()");} else{prepstmt1.setString(3,女.getText());} prepstmt1.setString(4,专业.getText()); prepstmt1.setString(5,年级.getText()); prepstmt1.setString(6,出生.getText()); prepstmt1.executeUpdate(); } catch(SQLException e1) { System.out.println("SQL Exception occur.Message is:"); System.out.println(e1.getMessage()); } } else{ String warning="必须输入学号!"; JOptionPane.showMessageDialog(null,warning, "警告",JOptionPane.WARNING_MESSAGE); }//end else0 } } else{ String warning="必须输入学号!"; JOptionPane.showMessageDialog(null,warning, "警告",JOptionPane.WARNING_MESSAGE); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值