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

📄 dboperatedemo.java

📁 Java程序设计实用案例教程源代码
💻 JAVA
字号:
package database;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JScrollBar;

public class DBOperateDemo extends JFrame {
	// 连接URL
	private String url = "jdbc:mysql://localhost:3306/";

	// 用户号
	private String user = null;

	// 密码
	private String pwd = null;

	// 数据库连接
	private Connection conn = null;

	private JPanel jContentPane = null;

	private JPanel jPanel = null;

	private JPanel jPanel1 = null;

	// 输入数据库名的文本框
	private JLabel jLabel = null;

	private JTextField jTextField = null;

	// 输入用户名的文本框
	private JLabel jLabel1 = null;

	private JTextField jTextField1 = null;

	// 输入密码的文本框
	private JLabel jLabel2 = null;

	private JTextField jTextField2 = null;

	// 数据库连接按钮
	private JButton jButton = null;

	// 断开按钮
	private JButton jButton1 = null;

	// 显示区域
	private JTextArea jTextArea = null;

	private JPanel jPanel2 = null;

	// SQL语句输入框
	private JTextField jTextField3 = null;

	// SQL语句执行按钮
	private JButton jButton2 = null;

	private JLabel jLabel3 = null;

	// 初始化JPanel
	private JPanel getJPanel() {
		if (jPanel == null) {
			jLabel2 = new JLabel();
			jLabel2.setText("密码:");
			jLabel1 = new JLabel();
			jLabel1.setText("用户名:");
			jLabel = new JLabel();
			jLabel.setText("数据库名:");
			jPanel = new JPanel();
			jPanel.setLayout(new FlowLayout());
			jPanel.add(jLabel, null);
			jPanel.add(getJTextField(), null);
			jPanel.add(jLabel1, null);
			jPanel.add(getJTextField1(), null);
			jPanel.add(jLabel2, null);
			jPanel.add(getJTextField2(), null);
			jPanel.add(getJButton(), null);
			jPanel.add(getJButton1(), null);
		}
		return jPanel;
	}

	// 初始化JPanel 返回值类型是javax.swing.JPanel
	private JPanel getJPanel1() {
		if (jPanel1 == null) {
			jPanel1 = new JPanel();
			jPanel1.setLayout(new BorderLayout());
			jPanel1.add(getJTextArea(), java.awt.BorderLayout.CENTER);
		}
		return jPanel1;
	}

	// 初始化jTextField 返回值类型为javax.swing.JTextField
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setPreferredSize(
					new java.awt.Dimension(80, 22));
		}
		return jTextField;
	}

	// 初始化jTextField1 返回值类型为javax.swing.JTextField
	private JTextField getJTextField1() {
		if (jTextField1 == null) {
			jTextField1 = new JTextField();
			jTextField1.setPreferredSize(
					new java.awt.Dimension(80, 22));
		}
		return jTextField1;
	}

	// 初始化jTextField2 返回值类型为javax.swing.JTextField
	private JTextField getJTextField2() {
		if (jTextField2 == null) {
			jTextField2 = new JTextField();
			jTextField2.setPreferredSize(
					new java.awt.Dimension(80, 22));
		}
		return jTextField2;
	}

	// 初始化jButton 返回值类型为javax.swing.JButton
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setPreferredSize(
					new java.awt.Dimension(60, 22));
			jButton.setText("连接");
			jButton.addActionListener(
					new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("数据库连接");
					//判断数据库连接是否存在
					if (conn == null) {
						//从输入框中读取数据库名,用户名和密码
						url += jTextField.getText();
						user = jTextField1.getText();
						pwd = jTextField2.getText();
						try {
							String driverName = "org.gjt.mm.mysql.Driver";
							//装载MySQL驱动
							Class.forName(driverName);
							DriverManager
									.registerDriver(new org.gjt.mm.mysql.Driver());
							//连接数据库
							if (user == null) {
								conn = DriverManager.getConnection(url);
							} else {
								conn = DriverManager.getConnection(url, user,
										pwd);
							}
							//显示连接成功
							String str = null;
							str = "数据库名:" + jTextField.getText();
							str += "  用户名:" + user;
							str += "  密码:" + pwd + "\n";
							str += "数据库连接成功!";
							jTextArea.setText(jTextArea.getText() + str + "\n");
						} catch (ClassNotFoundException ce) {
							//异常处理
							jTextArea.setText(jTextArea.getText()
									+ "ClassNotFoundException 数据库连接失败!\n");
							ce.printStackTrace();
						} catch (SQLException se) {
							//SQLException异常处理
							jTextArea.setText(jTextArea.getText()
									+ "SQLException 数据库连接失败!\n");
							
						}
					} else {
						//在前台显示数据库已经连接
						jTextArea.setText(jTextArea.getText() + "数据库已经连接!\n");
					}
				}
			});
		}
		return jButton;
	}

	// 初始化JButton1,断开按钮 返回值类型为javax.swing.JButton
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setPreferredSize(new java.awt.Dimension(60, 22));
			jButton1.setText("断开");
			// 创建动作事件监听者对象,并给按钮注册监听者对象
			jButton1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("断开数据库连接!");
					if (conn != null) {
						try {
							// 判断数据库连接是否关闭
							if (!conn.isClosed()) {
								// 如果没有关闭则关闭数据库,相关变量置初值
								conn.close();
								conn = null;
								user = null;
								pwd = null;
								url = "jdbc:mysql://localhost:3306/";
								// 显示数据库关闭成功
								jTextArea.setText(jTextArea.getText()
										+ "数据库关闭成功!\n");
							} else {
								// 显示数据库已经关闭
								System.out.println("数据库已经连接已经关闭!");
								jTextArea.setText(jTextArea.getText()
										+ "数据库已经连接已经关闭!\n");
							}
						} catch (SQLException ex) {
							// 异常处理显示
							System.out.println(ex.getMessage());
							jTextArea.setText(jTextArea.getText()
									+ "SQLException 数据库关闭失败!");
							ex.printStackTrace();
						}
					} else {
						// 显示数据库不存在
						System.out.println("数据库已经连接不存在!");
						jTextArea.setText(jTextArea.getText()
								+ "数据库已经连接不存在!\n");
					}
				}
			});
		}
		return jButton1;
	}

	// 初始化显示区域jTextArea 返回值类型为javax.swing.JTextArea
	private JTextArea getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextArea();
			jTextArea.setPreferredSize(new java.awt.Dimension(600, 100));
		}
		return jTextArea;
	}

	// 初始化JPanel2 返回值类型是javax.swing.JPanel
	private JPanel getJPanel2() {
		if (jPanel2 == null) {
			jLabel3 = new JLabel();
			jLabel3.setText("SQL语句:");
			jLabel3.setToolTipText("");
			jPanel2 = new JPanel();
			jPanel2.add(jLabel3, null);
			jPanel2.add(getJTextField3(), null);
			jPanel2.add(getJButton2(), null);
		}
		return jPanel2;
	}

	// 初始化jTextField3 返回值类型为javax.swing.JTextField
	private JTextField getJTextField3() {
		if (jTextField3 == null) {
			jTextField3 = new JTextField();
			jTextField3.setPreferredSize(new java.awt.Dimension(400, 22));
		}
		return jTextField3;
	}

	// 初始化JButton2,即执行SQL按钮
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton();
			jButton2.setPreferredSize(new java.awt.Dimension(100, 22));
			jButton2.setText("执行SQL");
			// 创建动作事件监听者对象,并给按钮注册监听者对象
			jButton2.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					try {
						// 判断连接是否存在或者连接是否关闭
						if (conn != null && !conn.isClosed()) {
							// 创建Statement 对象
							Statement stmt = conn.createStatement();
							// 获取SQL语句
							String sql = null;
							sql = jTextField3.getText();
							if (sql == null || sql.length() <= 0)
								sql = "select * from userinfo";
							// 在前台显示获得的SQL语句
							System.out.println("执行SQL语句:" + sql);
							jTextArea.setText(jTextArea.getText() + "执行SQL语句:"
									+ sql + "\n");
							// 通过SQL查询语句返回从数据库中检索到的符合条件的记录
							ResultSet rs = stmt.executeQuery(sql);
							// 显示返回的纪录
							while (rs.next()) {
								String username = rs.getString("username");
								int age = rs.getInt("age");
								String password = rs.getString("password");
								String str = "username : " + username
										+ " age : " + age + " password :"
										+ password + "\n";
								System.out.println(str);
								jTextArea.setText(jTextArea.getText() + str
										+ "\n");
							}
							// 关闭数据集
							rs.close();
							stmt.close();
						} else {
							System.out.println("数据库已经关闭或者连接不存在!");
							jTextArea.setText(jTextArea.getText()
									+ "数据库已经关闭或者连接不存在\n");
						}

					} catch (SQLException se) {
						//散地SQLException异常处理
						jTextArea.setText(jTextArea.getText() + "SQL执行失败!\n");
						se.printStackTrace();
					}
				}
			});
		}
		return jButton2;
	}

	public static void main(String[] args) {
		new DBOperateDemo();
	}

	// 默认构造方法
	public DBOperateDemo() {
		super();
		initialize();
	}

	// 类的初始化方法
	private void initialize() {
		this.setSize(600, 400);
		this.setContentPane(getJContentPane());
		this.setTitle("JDBC操作数据库");
		// 创建匿名适配器类,添加窗口事件监听对象
		this.addWindowListener(new java.awt.event.WindowAdapter() {
			public void windowClosing(java.awt.event.WindowEvent e) {
				System.out.println("windowClosing()");
				System.exit(0);
			}
		});
		this.setVisible(true);
	}

	// 初始化jContentPane 返回类型是javax.swing.JPanel
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.setPreferredSize(new java.awt.Dimension(600, 400));
			jContentPane.add(getJPanel(), java.awt.BorderLayout.NORTH);
			jContentPane.add(getJPanel1(), java.awt.BorderLayout.CENTER);
			jContentPane.add(getJPanel2(), java.awt.BorderLayout.SOUTH);
		}
		return jContentPane;
	}

}

⌨️ 快捷键说明

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