import javax.swing.*;
import java.awt.event.*;
public class zonghe extends JFrame implements ActionListener {
JMenu fileMenu;
JMenu helpMenu;
JMenuItem loginItem;
JMenuItem registerItem;
JMenuItem browseDataItem;
JMenuItem changePasswordItem;
JMenuItem updateDeleteItem;
JMenuItem exitItem;
JMenuItem aboutItem;
public zonghe() {
super("数据库管理");
setLocationRelativeTo(null);
JMenuBar menuBar = new JMenuBar();
fileMenu = new JMenu("文件");
helpMenu = new JMenu("帮助");
loginItem = new JMenuItem("登录");
registerItem = new JMenuItem("注册");
browseDataItem = new JMenuItem("浏览数据");
changePasswordItem = new JMenuItem("修改密码");
updateDeleteItem = new JMenuItem("更新/删除");
exitItem = new JMenuItem("退出");
aboutItem = new JMenuItem("关于");
fileMenu.add(loginItem);
fileMenu.add(registerItem);
fileMenu.add(browseDataItem);
fileMenu.add(changePasswordItem);
fileMenu.add(updateDeleteItem);
fileMenu.add(exitItem);
helpMenu.add(aboutItem);
menuBar.add(fileMenu);
menuBar.add(helpMenu);
loginItem.addActionListener(this);
registerItem.addActionListener(this);
browseDataItem.addActionListener(this);
changePasswordItem.addActionListener(this);
updateDeleteItem.addActionListener(this);
exitItem.addActionListener(this);
aboutItem.addActionListener(this);
setJMenuBar(menuBar);
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new zonghe();
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("登录")) {
UserLogin.main(null);
} else if (command.equals("注册")) {
UserRegister.main(null);
} else if (command.equals("浏览数据")) {
UserManager.main(null);
} else if (command.equals("修改密码")) {
updatePassword.main(null);
} else if (command.equals("更新/删除")) {
UserManager.main(null);
} else if (command.equals("退出")) {
System.exit(0);
} else if (command.equals("关于")) {
JOptionPane.showMessageDialog(this, "作者:刘翔\nID:23111301119\n", "作者信息", JOptionPane.INFORMATION_MESSAGE);
}
}
}
↑ 上面是主程序 它调用下面的程序
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class UserLogin extends JFrame {
private JTextField usernameField;
private JPasswordField passwordField;
public UserLogin() {
setTitle("登录窗口");
setSize(300, 150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JLabel usernameLabel = new JLabel("用户:");
usernameField = new JTextField(10);
panel.add(usernameLabel);
panel.add(usernameField);
JLabel passwordLabel = new JLabel("口令:");
passwordField = new JPasswordField(10);
panel.add(passwordLabel);
panel.add(passwordField);
JButton loginButton = new JButton("登录");
JButton exitButton = new JButton("退出");
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
if(username.equals("")||password.equals("")) {
JOptionPane.showMessageDialog(null,"用户或口令不能为空");
}
else {
AccessDataBase_Login.login();
AccessDataBase_Login.match(username, password);
}
}
});
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
panel.add(loginButton);
panel.add(exitButton);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
new UserLogin();
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*;
public class AccessDataBase_Login {
public static void main(String[] args) {
}
public static void login() {
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
Connection con=DriverManager.getConnection("jdbc:access:///C:\\Users\\l'x\\Downloads\\student.accdb");
} catch (SQLException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "数据库连接失败");
}
catch (ClassNotFoundException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "数据库连接失败");
}
}
public static void match(String number,String password) {
PreparedStatement ps = null;
ResultSet res = null;
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
Connection con=DriverManager.getConnection("jdbc:access:///C:\\Users\\l'x\\Downloads\\student.accdb");
//Statement s=con.createStatement();//创建操作对象
String sql = "SELECT password FROM studentTable WHERE number = ?";
ps = con.prepareStatement(sql);
ps.setString(1, number);
res = ps.executeQuery();
if (res.next()) {
String storedPassword = res.getString("password");
if (storedPassword.equals(password)) {
JOptionPane.showMessageDialog(null, "登录成功");
} else {
JOptionPane.showMessageDialog(null, "密码错误");
}
} else {
JOptionPane.showMessageDialog(null, "用户不存在");
}
} catch (SQLException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "SQL语句错误");
}
catch (ClassNotFoundException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "数据库连接失败");
}
}
}
import javax.swing.*;
import java.awt.*;
import java.time.LocalDate;
import java.util.Calendar;
import java.util.ArrayList;
public class UserRegister extends JFrame {
private JTextField accountField;
private JTextField nameField;
private JTextField emailField;
private JTextField passwordField;
private JTextField confirmPasswordField;
private JRadioButton maleRadioButton;
private JRadioButton femaleRadioButton;
private JComboBox<String> yearComboBox;
private JComboBox<String> monthComboBox;
private JComboBox<String> dayComboBox;
private JButton clearButton;
private void clearFields() {
accountField.setText("");
nameField.setText("");
emailField.setText("");
passwordField.setText("");
confirmPasswordField.setText("");
maleRadioButton.setSelected(false);
femaleRadioButton.setSelected(false);
yearComboBox.setSelectedIndex(0);
monthComboBox.setSelectedIndex(0);
dayComboBox.setSelectedIndex(0);
}
public UserRegister() {
setTitle("用户注册");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
JLabel accountLabel = new JLabel("账号:");
JLabel nameLabel = new JLabel("姓名:");
JLabel emailLabel = new JLabel("邮箱:");
JLabel passwordLabel = new JLabel("密码:");
JLabel confirmPasswordLabel = new JLabel("确认密码:");
JLabel genderLabel = new JLabel("性别:");
yearComboBox = new JComboBox<>(getYears());
monthComboBox = new JComboBox<>(getMonths());
dayComboBox = new JComboBox<>(getDays(Integer.parseInt((String) yearComboBox.getSelectedItem()), Integer.parseInt((String) monthComboBox.getSelectedItem())));
yearComboBox.addActionListener(e -> updateDays());
monthComboBox.addActionListener(e -> updateDays());
JPanel datePanel = new JPanel(new GridLayout(0, 1));
datePanel.add(yearComboBox);
datePanel.add(monthComboBox);
datePanel.add(dayComboBox);
accountField = new JTextField(20);
nameField = new JTextField(20);
emailField = new JTextField(20);
passwordField = new JPasswordField(20);
confirmPasswordField = new JPasswordField(20);
maleRadioButton = new JRadioButton("男");
femaleRadioButton = new JRadioButton("女");
ButtonGroup genderGroup = new ButtonGroup();
genderGroup.add(maleRadioButton);
genderGroup.add(femaleRadioButton);
JPanel genderPanel = new JPanel();
genderPanel.add(maleRadioButton);
genderPanel.add(femaleRadioButton);
JPanel panel = new JPanel(new GridLayout(0,2));
panel.add(accountLabel);
panel.add(accountField);
panel.add(nameLabel);
panel.add(nameField);
panel.add(emailLabel);
panel.add(emailField);
panel.add(passwordLabel);
panel.add(passwordField);
panel.add(confirmPasswordLabel);
panel.add(confirmPasswordField);
panel.add(genderLabel);
panel.add(genderPanel);
//panel.add(birthDateLabel);
panel.add(new JLabel("出生年"));
panel.add(yearComboBox);
panel.add(new JLabel("出生月"));
panel.add(monthComboBox);
panel.add(new JLabel("出生日"));
panel.add(dayComboBox);
clearButton = new JButton("清除");
clearButton.addActionListener(e -> clearFields());
JButton registerButton = new JButton("注册");
registerButton.addActionListener(e -> {
String account = accountField.getText();
String name = nameField.getText();
String email = emailField.getText();
String password = passwordField.getText();
String confirmPassword = confirmPasswordField.getText();
String gender = maleRadioButton.isSelected() ? "男" : "女";
String year=(String) yearComboBox.getSelectedItem();
String month=(String) monthComboBox.getSelectedItem();
String day=(String) dayComboBox.getSelectedItem();
if(account.equals("")||name.equals("")||email.equals("")||year.equals("")||month.equals("")||
day.equals("")||gender.equals("")||password.toString().equals("")) {
JOptionPane.showMessageDialog(null,"信息不完整,请重写输入!");
}
else if(!password.equals(confirmPassword)) {
JOptionPane.showMessageDialog(null,"两次密码不一致");
}
else if(email.matches("^[a-zA-Z0-9]@[a-zA-Z0-9.]")) {
JOptionPane.showMessageDialog(null,"eMail格式不对");
}
else {
AccessDataBase_Register.update(account,name,email,year,month,day,gender,password.toString());
}
// 在这里可以进行注册逻辑处理
// TODO: Add your registration logic here
});
setLayout(new BorderLayout());
add(panel, BorderLayout.CENTER);
add(registerButton, BorderLayout.SOUTH);
JPanel buttonPanel = new JPanel();
buttonPanel.add(registerButton);
buttonPanel.add(clearButton);
setLayout(new BorderLayout());
add(panel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new UserRegister());
}
private void updateDays() {
int year = Integer.parseInt((String) yearComboBox.getSelectedItem());
int month = Integer.parseInt((String) monthComboBox.getSelectedItem());
String[] daysArray = getDays(year, month);
DefaultComboBoxModel<String> dayModel = new DefaultComboBoxModel<>(daysArray);
dayComboBox.setModel(dayModel);
}
private String[] getYears() {
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
String[] years = new String[100];
for (int i = 0; i < 100; i++) {
years[i] = Integer.toString(currentYear - i);
}
return years;
}
private String[] getMonths() {
String[] months = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"};
return months;
}
private String[] getDays(int year, int month) {
int daysInMonth = LocalDate.of(year, month, 1).lengthOfMonth();
String[] days = new String[daysInMonth];
for (int i = 1; i <= daysInMonth; i++) {
days[i - 1] = Integer.toString(i);
}
return days;
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
public class AccessDataBase_Register {
public static void update(String number, String name, String eMail, String y, String m, String d, String sex, String password) {
Connection con = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
} catch (ClassNotFoundException e) {
System.out.println("" + e);
}
try {
con = DriverManager.getConnection("jdbc:access:///D:\\数据库\\用户注册.accdb");//建立数据库连接
con.setAutoCommit(false); //关闭自动提交模式
String sql = "INSERT INTO userTable VALUES (?, ?, ?, ?, ?, ?)";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, number);
pstmt.setString(2, name);
pstmt.setString(3, eMail);
pstmt.setString(4,(y + "-" + m + "-" + d)); // 假设 y、m、d 是表示年月日的字符串
pstmt.setString(5, sex);
pstmt.setString(6, password);
pstmt.executeUpdate();
con.commit(); //提交事务
} catch (SQLException e) {
try {
con.rollback(); //回滚事务
} catch (SQLException exp) {
System.out.println(exp.toString()+"");
}
System.out.println(e.toString()+"");
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.setAutoCommit(true); //恢复自动提交模式
con.close();
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
}
}
import javax.swing.*;
import java.awt.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Calendar;
public class UserManager extends JFrame {
private JLabel accountLabel = new JLabel("账号:");
private JComboBox<String> accountComboBox=new JComboBox<>(getAcc());
//private JTextField accountField = new JTextField(20);
private JButton confirmButton = new JButton("确定");
private JLabel nameLabel = new JLabel("姓名:");
private JTextField nameField = new JTextField(20);
private JLabel emailLabel = new JLabel("Email:");
private JTextField emailField = new JTextField(20);
private JComboBox<String> yearComboBox = new JComboBox<>(getYears());
private JComboBox<String> monthComboBox = new JComboBox<>(getMonths());
private JComboBox<String> dayComboBox = new JComboBox<>(getDays(Integer.parseInt((String) yearComboBox.getSelectedItem()), Integer.parseInt((String) monthComboBox.getSelectedItem())));
private JRadioButton maleRadioButton = new JRadioButton("男");
private JRadioButton femaleRadioButton = new JRadioButton("女");
private ButtonGroup genderGroup = new ButtonGroup();
private JButton updateButton = new JButton("更新");
private JButton deleteButton = new JButton("删除");
private JButton exitButton = new JButton("退出");
String sex="男";
public UserManager() {
setTitle("用户更新与删除");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(0, 2));
setLocationRelativeTo(null);
add(accountLabel);
add(accountComboBox);
add(confirmButton);
add(new JLabel());
add(nameLabel);
add(nameField);
add(emailLabel);
add(emailField);
add(new JLabel("出生日期:"));
add(yearComboBox);
add(new JLabel("年"));
add(monthComboBox);
add(new JLabel("月"));
add(dayComboBox);
add(new JLabel("日"));
yearComboBox.addActionListener(e -> updateDay1());
monthComboBox.addActionListener(e -> updateDay1());
genderGroup.add(maleRadioButton);
genderGroup.add(femaleRadioButton);
add(new JLabel("性别:"));
add(maleRadioButton);
add(femaleRadioButton);
add(new JLabel());
add(updateButton);
add(deleteButton);
add(exitButton);
setVisible(true);
confirmButton.addActionListener(e->set((String)accountComboBox.getSelectedItem()));
femaleRadioButton.addActionListener(e->f());
updateButton.addActionListener(e->update((String)accountComboBox.getSelectedItem(),nameField.getText(),emailField.getText(),(String)yearComboBox.getSelectedItem(),(String)monthComboBox.getSelectedItem(),(String)dayComboBox.getSelectedItem(),sex));
deleteButton.addActionListener(e->delete((String)accountComboBox.getSelectedItem()));
}
public void f() {
sex="女";
}
private void updateDay1() {
int year = Integer.parseInt((String) yearComboBox.getSelectedItem());
int month = Integer.parseInt((String) monthComboBox.getSelectedItem());
String[] daysArray = getDays(year, month);
DefaultComboBoxModel<String> dayModel = new DefaultComboBoxModel<>(daysArray);
dayComboBox.setModel(dayModel);
}
private String[] getYears() {
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
String[] years = new String[100];
for (int i = 0; i < 100; i++) {
years[i] = Integer.toString(currentYear - i);
}
return years;
}
private String[] getMonths() {
String[] months = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"};
return months;
}
private String[] getDays(int year, int month) {
int daysInMonth = LocalDate.of(year, month, 1).lengthOfMonth();
String[] days = new String[daysInMonth];
for (int i = 1; i <= daysInMonth; i++) {
days[i - 1] = Integer.toString(i);
}
return days;
}
private String[] getAcc() {
ResultSet res=null;
ArrayList<String> ss = new ArrayList<>();
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
Connection con=DriverManager.getConnection("jdbc:access:///D:\\数据库\\用户注册.accdb");
String sql="select number from userTable ";
Statement s=con.createStatement();//创建操作对象
res=s.executeQuery(sql);//执行语句
while(res.next()) {
ss.add(res.getString(1)); // 现在可以正常工作
}
} catch (SQLException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "数据库连接失败");
}
catch (ClassNotFoundException e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "数据库连接失败");
}
String[] stringArray = ss.toArray(new String[0]);
return stringArray;
}
private void set(String number) {
PreparedStatement ps=null;
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
Connection con=DriverManager.getConnection("jdbc:access:///D:\\数据库\\用户注册.accdb");
String sqls="select * from userTable where number = ? ";//写查询语句
ps=con.prepareStatement(sqls);//创建操作对象
ps.setString(1,number);
ResultSet res=ps.executeQuery();//执行语句
while(res.next()) {//读取信息
nameField.setText(res.getString("name"));
emailField.setText(res.getString("eMail"));
}
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
catch (ClassNotFoundException e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static void update(String number, String name,String eMail,String y,String m,String d,String sex) {
Connection con = null;
PreparedStatement pstmt = null;
String bd=y+"-"+m+"-"+d;
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
} catch (ClassNotFoundException e) {
System.out.println("" + e);
}
try {
con = DriverManager.getConnection("jdbc:access:///D:\\数据库\\用户注册.accdb");//建立数据库连接
con.setAutoCommit(false); //关闭自动提交模式
String sql = "update userTable set name = ?,eMail=?,birthday= ?,sex=? where number = ?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2,eMail);
pstmt.setString(3,bd);
pstmt.setString(4,sex);
pstmt.setString(5,number);
pstmt.executeUpdate();
con.commit(); //提交事务
JOptionPane.showMessageDialog(null,"成功修改");
} catch (SQLException e) {
try {
con.rollback(); //回滚事务
} catch (SQLException exp) {
System.out.println(exp.toString()+"");
}
System.out.println(e.toString()+"");
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.setAutoCommit(true); //恢复自动提交模式
con.close();
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
}
public void delete(String number) {
int result=JOptionPane.showConfirmDialog(null, "即将删除一条记录,账号"+number, "删除确认", JOptionPane.YES_NO_OPTION);
if(result==JOptionPane.YES_OPTION) {
Connection con = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
} catch (ClassNotFoundException e) {
System.out.println("" + e);
}
try {
con = DriverManager.getConnection("jdbc:access:///D:\\数据库\\用户注册.accdb");//建立数据库连接
con.setAutoCommit(false); //关闭自动提交模式
String sql = "delete from userTable where number = ?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, number);
pstmt.executeUpdate();
con.commit(); //提交事务
JOptionPane.showMessageDialog(null,"成功删除");
} catch (SQLException e) {
try {
con.rollback(); //回滚事务
} catch (SQLException exp) {
System.out.println(exp.toString()+"");
}
System.out.println(e.toString()+"");
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.setAutoCommit(true); //恢复自动提交模式
con.close();
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
}
}
public static void main(String[] args) {
new UserManager();
}
}
import javax.swing.*;
import java.awt.*;
public class updatePassword extends JFrame {
private JTextField accountField;
private JTextField oldpassword;
private JTextField password;
private JTextField confirmPassword;
private JButton clearButton;
private JButton confirmButton;
private void clearFields() {
accountField.setText("");
oldpassword.setText("");
password.setText("");
confirmPassword.setText("");
}
public updatePassword() {
setTitle("更改密码");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
JLabel accountLabel = new JLabel("账号:");
JLabel nameLabel = new JLabel("口令:");
JLabel emailLabel = new JLabel("新口令1:");
JLabel passwordLabel = new JLabel("新口令2:");
accountField = new JTextField(20);
oldpassword = new JTextField(20);
password = new JPasswordField(20);
confirmPassword = new JPasswordField(20);
JPanel panel = new JPanel(new GridLayout(0,2));
panel.add(accountLabel);
panel.add(accountField);
panel.add(nameLabel);
panel.add(oldpassword);
panel.add(emailLabel);
panel.add(password);
panel.add(passwordLabel);
panel.add(confirmPassword);
clearButton = new JButton("清除");
clearButton.addActionListener(e -> clearFields());
confirmButton = new JButton("确定");
confirmButton.addActionListener(e -> {
String account = accountField.getText();
String op = oldpassword.getText();
String p1 = password.getText();
String p2 = confirmPassword.getText();
if(account.equals("")||op.equals("")||p1.equals("")||p2.equals("")) {
JOptionPane.showMessageDialog(null,"信息不完整,请重写输入!");
}
else if(!p1.equals(p2)) {
JOptionPane.showMessageDialog(null,"两次密码不一致!");
}
else {
AccessDataBase_updatepassword.update(account,p1);
JOptionPane.showMessageDialog(null,"成功修改!");
}
});
setLayout(new BorderLayout());
add(panel, BorderLayout.CENTER);
add(confirmButton, BorderLayout.SOUTH);
JPanel buttonPanel = new JPanel();
buttonPanel.add(confirmButton);
buttonPanel.add(clearButton);
setLayout(new BorderLayout());
add(panel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new updatePassword());
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class AccessDataBase_updatepassword {
public static void update(String number, String p) {
Connection con = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.hxtt.sql.access.AccessDriver");//加载驱动
} catch (ClassNotFoundException e) {
System.out.println("" + e);
}
try {
con = DriverManager.getConnection("jdbc:access:///D:\\数据库\\用户注册.accdb");//建立数据库连接
con.setAutoCommit(false); //关闭自动提交模式
String sql = "update userTable set password= ? where number = ?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, p);
pstmt.setString(2,number);
pstmt.executeUpdate();
con.commit(); //提交事务
} catch (SQLException e) {
try {
con.rollback(); //回滚事务
} catch (SQLException exp) {
System.out.println(exp.toString()+"");
}
System.out.println(e.toString()+"");
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.setAutoCommit(true); //恢复自动提交模式
con.close();
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
}
}