实现了对数据库的增删改查基本功能,代码如下:
建立数据库文件demo后
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class SQLManager {
// 单例设计模式
private Statement statement;
private static SQLManager manager;
// 防止多线程产生多个对象
public static synchronized SQLManager newInstance() {
if (manager == null) {
manager = new SQLManager();
}
return manager;
}
private SQLManager() {
// 连接数据库的驱动
String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名
String url = "jdbc:mysql://localhost:3306/clazz";
// MySQL配置时的用户名
String user = "root";
// Java连接MySQL配置时的密码
String password = "10312517";
try {
// 加载驱动
Class.forName(driver);
// 与数据库建立连接
Connection conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed()) {
// 数据库操作类
statement = conn.createStatement();
} else {
System.out.println("请打开数据库");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Statement getStatement() {
return statement;
}
public void setStatement(Statement statement) {
this.statement = statement;
}
}
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
public class Register extends JFrame {
private JPanel contentPane;
private JTextField textAreaUserName;
private JTextField textAreaPassword;
private JButton btnSelect;
private JTextField textFieldScreen;
private JButton buttonDelete;
private String userName;
private String password;
private JButton btnUpdate;
// private Statement state;
private JTextField textFieldUpdate;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Register frame = new Register();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Register() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 368, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
textAreaUserName = new JTextField();
textAreaUserName.setBounds(127, 20, 155, 23);
contentPane.add(textAreaUserName);
textAreaUserName.setColumns(10);
textAreaPassword = new JTextField();
textAreaPassword.setBounds(127, 53, 155, 23);
contentPane.add(textAreaPassword);
textAreaPassword.setColumns(10);
JButton btnAdd = new JButton("\u589E\u52A0");
btnAdd.setBounds(52, 86, 74, 23);
contentPane.add(btnAdd);
btnAdd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String userName = textAreaUserName.getText();
// 用正则表达式限制输入名称
// Pattern p =
// Pattern.compile("([a-z]|[A-Z]|[0-9]|[\\u4e00-\\u9fa5])+");
// Matcher m = p.matcher(userName);
// boolean b = m.matches();
// if (!b) {
// UserName.setText("用户名格式有错误");
// String s = UserName.getText();
// System.out.println(s);
// }
String password = textAreaPassword.getText();
Statement state = SQLManager.newInstance().getStatement();
String sql = "select * from demo where name='" + userName + "'";
try {
ResultSet set = state.executeQuery(sql);
set.last();
int num = set.getRow();// 返回num是第几行
System.out.println(num);
if (num > 0) {
// if (!b) {
// UserName.setText("用户名格式有错误");
// String s = UserName.getText();
// System.out.println(s);
// } else {
System.out.println("该记录已存在");
// }
} else {
String register = "insert into demo(name,password)values('" + userName + "','" + password
+ "')";
state.execute(register);
System.out.println("增加记录成功");
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
JLabel lblUser = new JLabel("user");
lblUser.setBounds(63, 24, 54, 15);
contentPane.add(lblUser);
JLabel lblPassword = new JLabel("password");
lblPassword.setBounds(52, 57, 60, 15);
contentPane.add(lblPassword);
btnSelect = new JButton("\u67E5\u627E");
btnSelect.setBounds(52, 119, 74, 23);
contentPane.add(btnSelect);
btnSelect.addActionListener(new ActionListener() {
// 查找记录
@Override
public void actionPerformed(ActionEvent e) {
String userName = textAreaUserName.getText();
Statement state = SQLManager.newInstance().getStatement();
String sql = "select * from demo where name='" + userName + "'";
try {
ResultSet set = state.executeQuery(sql);
set.last();
int num = set.getRow();
System.out.println(num);
if (num == 1) {
System.out.println("查找成功");
} else {
System.out.println("查找失败");
}
String password = set.getString("password");
textFieldScreen.setText(password);
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
textFieldScreen = new JTextField();
textFieldScreen.setBounds(179, 86, 103, 23);
contentPane.add(textFieldScreen);
textFieldScreen.setColumns(10);
buttonDelete = new JButton("\u5220\u9664");
buttonDelete.setBounds(52, 152, 74, 23);
contentPane.add(buttonDelete);
buttonDelete.addActionListener(new ActionListener() {
//删除记录内容
@Override
public void actionPerformed(ActionEvent e) {
userName=textAreaUserName.getText();
String delete = "delete from demo where name='" + userName + "'";
try {
Statement state=SQLManager.newInstance().getStatement();
state.execute(delete);
System.out.println("删除本条记录");
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnUpdate = new JButton("\u4FEE\u6539");
btnUpdate.setBounds(52, 185, 74, 23);
contentPane.add(btnUpdate);
btnUpdate.addActionListener(new ActionListener() {
//更改记录内容
@Override
public void actionPerformed(ActionEvent e) {
textFieldScreen.setText("");
Statement state=SQLManager.newInstance().getStatement();
String idName=textAreaUserName.getText();
String upPassword =textFieldUpdate.getText();
// textFieldUpdate.setText(upPassword);
String update="update demo set password='"+upPassword+"' where name='"+idName+"'";
try {
state.execute(update);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
textFieldScreen.setText(upPassword);
System.out.println("修改记录成功");
}
});
textFieldUpdate = new JTextField();
textFieldUpdate.setBounds(179, 186, 103, 21);
contentPane.add(textFieldUpdate);
textFieldUpdate.setColumns(10);
}
}