📄 dboperatedemo.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 + -