⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adrian-example.java

📁 JAVA访问数据库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.swing.*;
import java.until.regex.*;
class PersonRecodDB extends JFrame implements ActionListener,
                                            FocusListener,KeyListener{
private JTextField txtID,txtFirstname,txtLastname,txtPhone;
private JButton btnAdd,btnPrevious,btnFirst,btnLast;
private boolean addMode,editMode;
private Connection conn;
private Statement stat;
private ResultSet rsPerson;
private final String driverMYSQL ="org.git.mm.mysql.driver";
private final String driverMSACCESS ="sun.jdbc.odbc.JdbcOdbcDriver";
private String selectedDriver;
private JMenuItem mnuExit;
public PersonRecordDB(){
	if(!loadDriver())System.exit(0);
	setTitle("Person Record Database");
	setSize(300,250);
	JMenubar bar = new JMenubar();
	JMenu mnuFile =new JMenu("File");
	mnuExit = new JMenu("Exit");
	mnuFile.setMnemonic(keyEvent.VK_F);
	mnuExit.setmnemonic(keyEvent.Vk_E);
	mnuExit.addActionListener(this);
	mnuFile.add(mnuExit);
	bar.add(mnuFile);
	setJMenuBar(bar);
	//sub panel
	JPanel pnlNorth = new JPanel(new BorderLayout());
	JPanel pnlCenter = new JPanel(new GridLayout(5,2));
	JPanel pnlEast = new JPanel(new GridLayout(5,1));
	JPanel pnlSouth = new JPanel();

	//data labels
	JLabel lblTitle = new JPanel(new BorderLayout());
	lblTitle.setFont(new Font("Time",Font.BOLD,20));
	JLabel lblID = new JPanel("person ID", JLabel.CENTER);
	JLabel lblFname = new JLabel("Firstname",JLabel.CENTER);
	JLabel lblLname =new JLabel("Lastmane",JLabel.CENTER);
	JLabel lblPhone =new JLabel("Phone",JLabel.CENTER);
	//data fields
	txtID = new JTextField();
	txtFirstname = new JTextField();
	txtLastname = new JTextField();
	txtPhone =new JTextField();
	//operation buttons
	btnAdd = new JButton("Add");
	btnCancel = new JButton("Cancel");
	btnDelete = new JButton("Delete");
	btnEdit = new JButton("Edit");
	btnSave = new JButton("Save");
	btnFind =new JButton("Find");
	//navigation buttons
	btnFirst = new JButton("First");
	btnNext = new JButton("Next");
	btnPrevious = new JButton("previous");
	btnLast = new JButton("Last");
	//register listener with data fields
	txtID.addKeyListener(this);
	txtFirstname.addKeyListener(this);
	txtLastname.addKeyListener(this);
	txtPhone.addKeyListener(this);
	txtID.addFocusListener(this);
	txtFirstname.addFocusListener(this);
    txtlastname.addFocusListener(this);
    txtPhone.addFocusListener(this);
    //register listener with buttons
    btnAdd.addActionListener(this);
    btnCancel.addActionListener(this);
    btnDelete.addActionListener(this);
    btnEdit.addActionListener(this);
    btnSave.addActionListener(this);
    btnFine.addActionListener(this);
    btnFirst.addActionListener(this);
    btnNext.addActionListener(this);
    btnPrevious.addActionListener(this);
    btnLast.addActionListener(this);
    //add controls to sub-panels
    pnlNorth.add(lblTitle);
    pnlCenter.add(lblID);
    pnlCenter.add(txtID);
    pnlCenter.add(txtFname);
    pnlCenter.add(txtFirstname);
    pnlCenter.add(lblname);
    pnlCenter.add(txtLastname);
    pnlCenter.add(lblPhone);
    pnlCenter.add(txtphone);
    pnlCenter.add(new JLabel());
    pnlCenter.add(btnFine);

    pnlEast.add(btnAdd);
    pnlEast.add(btnCancel);
    pnlEast.add(btnDelete);
    pnlEast.add(btnEdit);
    pnlEast.add(btnSave);

    pnlSouth.add(btnFirst);
    pnlSouth.add(btnNext);
    pnlSouth.add(btnPrevious);
    pnlSouth.add(btnLast);

    //get a reference to the content pane
    Container c = getContetpane();

    //add sub-panels to this panel
    c.add(pnlNorth,BorderLayout.NORTH);
    c.add(pnlCenter,BorderLayout.CENTER);
    c.add(pnlEast,BorderLayout.EAST);
    C.add(pnlSouth,BorderLayout.SOUTH);
    //force the user to exit from the menu
    setDefaultCloseOperation(JFrame.Do_NOTHING_ON_CLOSE);

    //display from in the center of the screen
    centerScreen(this);
    //show from
    setVisible(true);
    //start in the view mode
    setViewMode();
    createResultSet();
    //connect and return results

    try{
    	moveFirst();
    		}
          catch(SQLException e){
          	displayMessage(getErrorMessages(e),"Datebase Message",
          	                      JOptionPane.ERROR_MESSAGE);
          	}

}

    public void actionPerformed(ActionEvent e){

		try{
			if(e.getSource()==btnFirst){
				moveFirst();
				}
				else if(e.getSource()==btnNext){
					moveNext();
					}
					else if(e.getSource()==btnPrevious){
						movePrevious();
						}
						else if(e.getSource()==btnLast){
							moveLast();
					       }
					       else if(e.getSource()==btnAdd){
							   setAddMode();
							   }
							   else if(e.getSource()==btnCancel){
								   setViewMode();
								   moveFirst();
								   }
								   else if(e.getSource()==btnDelete){
									   int reply = JOptionPane.showConfirmDialog(this,"Delete this record",

									           "Database Message", JOptionPance.Yes_No,JOptionPane.Question_MESSAGE);
									           if(reply == JOption.Yes_OPTION){
												   deleteRecord();
												   }
											   }
											   esle if(e.getSource()==btnEdit){
												   setEditMode();
												   }
												   else if(e.getSource()==btnSave){
													   if(checkFields()){
														   if(addMode){
															   insertRecord();
															   setViewMode();
															   }
															   else if(editMode){
																    updateRecord();
																    setViewMode();
																    }
														   }
														   else{
															   dispalyMessage("Complete all fields","Validation Message",
															           JOptionPane.INFORMATION_MESSAGE);
															   }
													   }
													   else if(e.getSource()==btnFind){
														   findRecord();
														   }
														   else if(e.getSource()==mnuExit){
															   close();
															  System.exit(0);
															   }

									   }
									   catch(SQLException sqle){
										   dispalyMessage(getErrorMessage(sqle),"Database Message",JOptionPane.ERROR_MESSAGE);
										   }


		}


public void centerScreen(JFrame frame){

	Dimension screen = toolkit.getDefaultToolkit().getScreenSize();
	Dimension d =frame.getSize();
	setBounds((screen.width - d.width)/2, (screen.height - d.height)/2, d.width, d.height);

	}

public boolean checkFields(){

	boolean result = true;
	JtextField[] fields = { txtID, txtFirstname, txtLastname, txtPhone};
	for(int i = 0; i< fields.length; i++){
		if(fields[i].getText().equals("")){
			result = false;
			fields[i].requestFocus();
			break;
			}
		}
		return results;
	}


public void clearFields(){
	txtID.setText("");
	txtFirstname.setText("");
	txtLastname.setText("");
	txtPhone.setText("");

	}

public void close( )throws SQLException{
  If (!conn.isClosed( )){
 Conn.close( );
}
}// close

public viod createResultSet(){
String url = null;
If(selectedDriver.equals(driverMYSQL)){
Url ="jdbc://localhost/personDatabase";
Else//Microsft has won aqain
url= "jdbc:odbc:personsDatabase";
String sql="Select*from Persons order by id";
Try{
//make the connection
conn = DriverManager.getConnection(url);
// create the SQL statement object
stat=conn.createstement(ResultSet.TYPE_SCROLL_SENSLTIVE,ResultSet.CONCUR_UPDATABLE);
//execute the SQL statement to results (records) rePerson=stat.executeQuery(sql);
} catch {SQLException e}{
displayMessage(getErrorMessages(e),"Database Message",JoptionPane.ERROR_MESSAGE);
} // try
} // createResultSet

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -