[Java] java使用JDBC连接SQL数据库,适合于初学者学习(一款小型的图书信息管理) →→→→→进入此内容的聊天室

来自 , 2021-04-25, 写在 Java, 查看 144 次.
URL http://www.code666.cn/view/c0a271bc
  1. public class MainFrame extends JFrame {
  2.  
  3.         private static final long serialVersionUID = 591378743488239713L;
  4.         public static String DB_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
  5.         public static String DB_URL = "jdbc:sqlserver://localhost:1433; DatabaseName=BookManager";
  6.  
  7.         JPanel contentPane;
  8.         Statement ps;
  9.         ResultSet rs;
  10.         Connection con;
  11.         JMenuBar jMenuBar = new JMenuBar();
  12.         JMenu Menu_UserManager = new JMenu();
  13.         JMenu jMenuHelp = new JMenu();
  14.         JMenuItem jMenuHelpAbout = new JMenuItem();
  15.         JMenuItem adduser = new JMenuItem();
  16.         JMenuItem deleteuser = new JMenuItem();
  17.         JMenu reader_management = new JMenu(); // 读者管理
  18.         JMenuItem queryReader = new JMenuItem();
  19.         JMenuItem change_readerInfo = new JMenuItem();
  20.         JMenuItem add_readerInfo = new JMenuItem();
  21.         JMenu borrowAndreturn = new JMenu(); // 借阅管理
  22.         JMenuItem returnBook = new JMenuItem();
  23.         JMenuItem borrowBook = new JMenuItem();
  24.         JMenu book_management = new JMenu(); // 图书管理
  25.         JMenuItem AddBook = new JMenuItem();
  26.         JMenuItem ChangeBookInfo = new JMenuItem();
  27.         JMenuItem queryBookInfo = new JMenuItem();
  28.         JMenuItem exit = new JMenuItem();
  29.         JMenuItem changePasswd = new JMenuItem();
  30.         JMenuItem scanningUser = new JMenuItem();
  31.         JMenuItem login = new JMenuItem();
  32.  
  33.         public MainFrame() {
  34.                 enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  35.                 try {
  36.                         jbInit();
  37.                 } catch (Exception e) {
  38.                         e.printStackTrace();
  39.                 }
  40.         }
  41.  
  42.         // Component initialization
  43.         private void jbInit() throws Exception {
  44.  
  45.                 this.setResizable(false);
  46.                 this.setTitle("图书信息管理系统");
  47.                 contentPane = new MyPanelk();
  48.                 contentPane.setOpaque(false);
  49.                 contentPane.add(jMenuBar);
  50.                 this.add(contentPane);
  51.  
  52.                 Menu_UserManager.setFont(new java.awt.Font("Dialog", 0, 15));
  53.                 Menu_UserManager.setForeground(Color.black);
  54.                 Menu_UserManager.setText("用户管理");
  55.  
  56.                 adduser.setFont(new java.awt.Font("Dialog", 0, 15));
  57.                 adduser.setText("添加用户");
  58.                 adduser.addActionListener(new mainFrame_adduser_actionAdapter(this));
  59.  
  60.                 deleteuser.setFont(new java.awt.Font("Dialog", 0, 15));
  61.                 deleteuser.setText("删除用户");
  62.                 deleteuser.addActionListener(new mainFrame_deleteuser_actionAdapter(this));
  63.  
  64.                 exit.setFont(new java.awt.Font("Dialog", 0, 15));
  65.                 exit.setText("退出系统");
  66.                 exit.addActionListener(new mainFrame_exit_actionAdapter(this));
  67.  
  68.                 changePasswd.setFont(new java.awt.Font("Dialog", 0, 15));
  69.                 changePasswd.setText("修改密码");
  70.                 changePasswd.addActionListener(new mainFrame_changePasswd_actionAdapter(this));
  71.  
  72.                 scanningUser.setFont(new java.awt.Font("Dialog", 0, 15));
  73.                 scanningUser.setText("浏览用户");
  74.                 scanningUser.addActionListener(new mainFrame_scanningUser_actionAdapter(this));
  75.  
  76.                 login.setFont(new java.awt.Font("Dialog", 0, 15));
  77.                 login.setText("用户登录");
  78.                 login.addActionListener(new mainFrame_login_actionAdapter(this));
  79.  
  80.                 jMenuHelp.setFont(new java.awt.Font("Dialog", 0, 15));
  81.                 jMenuHelp.setText("帮助信息");
  82.                 jMenuHelpAbout.setFont(new java.awt.Font("Dialog", 0, 15));
  83.                 jMenuHelpAbout.setText("关于");
  84.                 jMenuHelpAbout.addActionListener(new mainFrame_HelpAbout_ActionAdapter(this));
  85.  
  86.                 reader_management.setFont(new java.awt.Font("Dialog", 0, 15));
  87.                 reader_management.setText("读者管理");
  88.  
  89.                 add_readerInfo.setFont(new java.awt.Font("Dialog", 0, 15));
  90.                 add_readerInfo.setForeground(Color.black);
  91.                 add_readerInfo.setText("添加读者信息");
  92.                 add_readerInfo.addActionListener(new mainFrame_addReaderInfo_actionAdapter(this));
  93.  
  94.                 change_readerInfo.setFont(new java.awt.Font("Dialog", 0, 15));
  95.                 change_readerInfo.setText("查改删读者信息");
  96.                 change_readerInfo.addActionListener(new mainFrame_changeReaderInfo_actionAdapter(this));
  97.  
  98.                 queryReader.setFont(new java.awt.Font("Dialog", 0, 15));
  99.                 queryReader.setText("查询读者信息");
  100.                 queryReader.addActionListener(new mainFrame_scanningUserInfo_actionAdapter(this));
  101.  
  102.                 borrowAndreturn.setFont(new java.awt.Font("Dialog", 0, 15));
  103.                 borrowAndreturn.setText("借阅管理");
  104.  
  105.                 book_management.setFont(new java.awt.Font("Dialog", 0, 15));
  106.                 book_management.setText("图书管理");
  107.  
  108.                 AddBook.setFont(new java.awt.Font("Dialog", 0, 15));
  109.                 AddBook.setText("添加图书");
  110.                 AddBook.addActionListener(new mainFrame_AddBook_actionAdapter(this));
  111.  
  112.                 borrowBook.setFont(new java.awt.Font("Dialog", 0, 15));
  113.                 borrowBook.setText("借阅图书");
  114.                 borrowBook.addActionListener(new mainFrame_borrowBook_actionAdapter(this));
  115.  
  116.                 returnBook.setFont(new java.awt.Font("Dialog", 0, 15));
  117.                 returnBook.setText("归还图书");
  118.                 returnBook.addActionListener(new mainFrame_returnBook_actionAdapter(this));
  119.  
  120.                 ChangeBookInfo.setFont(new java.awt.Font("Dialog", 0, 15));
  121.                 ChangeBookInfo.setText("改删图书信息");
  122.                 ChangeBookInfo.addActionListener(new mainFrame_ChangeBookInfo_actionAdapter(this));
  123.  
  124.                 queryBookInfo.setFont(new java.awt.Font("Dialog", 0, 15));
  125.                 queryBookInfo.setText("查询图书信息");
  126.                 queryBookInfo.addActionListener(new mainFrame_scanningBookInfo_actionAdapter(this));
  127.  
  128.                 Menu_UserManager.add(login);
  129.                 Menu_UserManager.add(scanningUser);
  130.                 Menu_UserManager.add(changePasswd);
  131.                 Menu_UserManager.add(adduser);
  132.                 Menu_UserManager.add(deleteuser);
  133.                 Menu_UserManager.add(exit);
  134.  
  135.                 jMenuHelp.add(jMenuHelpAbout);
  136.  
  137.                 jMenuBar.add(Menu_UserManager);
  138.                 jMenuBar.add(reader_management);
  139.                 jMenuBar.add(borrowAndreturn);
  140.                 jMenuBar.add(book_management);
  141.                 jMenuBar.add(jMenuHelp);
  142.  
  143.                 reader_management.add(add_readerInfo);
  144.                 reader_management.add(change_readerInfo);
  145.                 reader_management.add(queryReader);
  146.  
  147.                 borrowAndreturn.add(borrowBook);
  148.                 borrowAndreturn.add(returnBook);
  149.  
  150.                 book_management.add(AddBook);
  151.                 book_management.add(ChangeBookInfo);
  152.                 book_management.add(queryBookInfo);
  153.  
  154.                 reader_management.setEnabled(false);
  155.                 borrowAndreturn.setEnabled(false);
  156.                 book_management.setEnabled(false);
  157.                 Menu_UserManager.setEnabled(true);
  158.                 scanningUser.setEnabled(false);
  159.                 adduser.setEnabled(false);
  160.                 deleteuser.setEnabled(false);
  161.  
  162.                 this.setBounds(400, 100, 600, 400);
  163.                 this.setVisible(true);
  164.         }
  165.  
  166.         public static void main(String args[]) {
  167.  
  168.                 /* 设置系统默认布局样式 */
  169.                 String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
  170.                 try {
  171.                         // UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
  172.                         UIManager.setLookAndFeel(lookAndFeel);
  173.                 } catch (ClassNotFoundException e1) {
  174.                         e1.printStackTrace();
  175.                 } catch (InstantiationException e1) {
  176.                         e1.printStackTrace();
  177.                 } catch (IllegalAccessException e1) {
  178.                         e1.printStackTrace();
  179.                 } catch (UnsupportedLookAndFeelException e1) {
  180.                         e1.printStackTrace();
  181.                 }
  182.  
  183.                 SetPersonalFont setfont = new SetPersonalFont();
  184.                 setfont.InitGlobalFont(new Font("monspaced", Font.PLAIN, 13));
  185.                 MainFrame main = new MainFrame();
  186.                 main.setVisible(true);
  187.         }
  188.  
  189.         public void jMenuFileExit_actionPerformed(ActionEvent e) {
  190.                 System.exit(0);
  191.         }
  192.  
  193.         // Help | About action performed
  194.         public void HelpAbout_actionPerformed(ActionEvent e) {
  195.                 new About();
  196.         }
  197.  
  198.         // Overridden so we can exit when window is closed
  199.         @Override
  200.         protected void processWindowEvent(WindowEvent e) {
  201.                 super.processWindowEvent(e);
  202.                 if (e.getID() == WindowEvent.WINDOW_CLOSING) {
  203.                         jMenuFileExit_actionPerformed(null);
  204.                 }
  205.         }
  206.  
  207.         void adduser_actionPerformed(ActionEvent e) {
  208.                 new AddUser();
  209.         }
  210.  
  211.         void deleteuser_actionPerformed(ActionEvent e) {
  212.                 new DeleteUser();
  213.         }
  214.  
  215.         void xgmm_actionPerformed(ActionEvent e) {
  216.                 new ChangePassword();
  217.         }
  218.  
  219.         void borrowBook_actionPerformed(ActionEvent e) {
  220.                 new BorrowBook();
  221.         }
  222.  
  223.         void returnBook_actionPerformed(ActionEvent e) {
  224.                 new ReturnBook();
  225.         }
  226.  
  227.         void exit_actionPerformed(ActionEvent e) {
  228.                 System.exit(0);
  229.         }
  230.  
  231.         void login_actionPerformed(ActionEvent e) {
  232.                 final JTextField user_ID = new JTextField(); // 用户ID
  233.                 final JPasswordField pwd = new JPasswordField();// 密码
  234.                 final JDialog dialog = new JDialog();
  235.                 JPanel panel = new JPanel();
  236.                 panel.setLayout(null);
  237.                 // this.getContentPane().setLayout(null);
  238.                 dialog.setTitle("登录");
  239.                 dialog.setBounds(500, 200, 300, 250);
  240.  
  241.                 JLabel label_ID = new JLabel(); // 用户ID
  242.                 JLabel label_pwd = new JLabel(); // 用户密码
  243.                 JLabel label_power = new JLabel(); // 登录身份
  244.  
  245.                 final JComboBox<String> login_power = new JComboBox<String>(); // 登录权限
  246.                 login_power.addItem("管理员");
  247.                 login_power.addItem("读者");
  248.  
  249.                 label_ID.setText("请输入用户ID:");
  250.                 label_ID.setBounds(20, 20, 100, 29);
  251.                 user_ID.setBounds(120, 20, 130, 29);
  252.                 user_ID.setText("1000920303");
  253.  
  254.                 label_pwd.setText("请输入密码:");
  255.                 label_pwd.setBounds(20, 60, 100, 29);
  256.                 pwd.setBounds(120, 60, 130, 29);
  257.                 pwd.setText("123");
  258.  
  259.                 label_power.setText("身份验证:");
  260.                 label_power.setBounds(20, 100, 100, 29);
  261.                 login_power.setBounds(120, 100, 130, 29);
  262.  
  263.                 JButton jbSure = new JButton("确定(Y)");
  264.                 jbSure.setMnemonic(KeyEvent.VK_Y);
  265.                 jbSure.setBounds(40, 150, 80, 29);
  266.  
  267.                 JButton cancel = new JButton("取消(N)");
  268.                 cancel.setMnemonic(KeyEvent.VK_N);
  269.                 cancel.setBounds(150, 150, 85, 29);
  270.                 cancel.addActionListener(new ActionListener() {
  271.  
  272.                         @Override
  273.                         public void actionPerformed(ActionEvent e) {
  274.                                 dialog.dispose();
  275.                         }
  276.                 });
  277.  
  278.                 // 居中显示
  279.                 // Toolkit kit = Toolkit.getDefaultToolkit();
  280.                 // Dimension screenSize = kit.getScreenSize();
  281.                 // dialog.setLocation((screenSize.width - 200) / 2,
  282.                 // (screenSize.height - 150) / 2);
  283.  
  284.                 dialog.getContentPane().add(panel, null);
  285.                 panel.add(label_ID);
  286.                 panel.add(user_ID);
  287.                 panel.add(label_pwd);
  288.                 panel.add(pwd);
  289.                 panel.add(jbSure);
  290.                 panel.add(label_power);
  291.                 panel.add(login_power);
  292.                 panel.add(cancel);
  293.  
  294.                 jbSure.addActionListener(new ActionListener() {
  295.                         @Override
  296.                         public void actionPerformed(ActionEvent e) {
  297.                                 if ((!(user_ID.getText().equals("")) && !(new String(pwd.getPassword()).equals("")))) {
  298.                                         try {// 连接数据库,验证用户
  299.                                                 Class.forName(DB_NAME);
  300.                                                 Connection con = DriverManager.getConnection(DB_URL, "sa", "server");
  301.                                                 ps = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
  302.                                         } catch (ClassNotFoundException | SQLException e1) {
  303.                                                 e1.printStackTrace();
  304.                                         }
  305.  
  306.                                         switch (login_power.getSelectedItem().toString()) {
  307.                                         case "管理员":
  308.  
  309.                                                 try {
  310.                                                         rs = ps.executeQuery(
  311.                                                                         "select * from UserInfo where UserID='" + user_ID.getText().trim() + "' "); // 读取数据库
  312.                                                         if (!rs.next()) {
  313.                                                                 JOptionPane.showMessageDialog(null, "不存在此用户!");
  314.                                                         } else if (!(rs.getString("Password").trim().equals(new String(pwd.getPassword())))) {
  315.                                                                 JOptionPane.showMessageDialog(null, "密码错误!");
  316.                                                         } else {
  317.                                                                 dialog.dispose();
  318.                                                                 reader_management.setEnabled(true);
  319.                                                                 borrowAndreturn.setEnabled(true);
  320.                                                                 book_management.setEnabled(true);
  321.                                                                 Menu_UserManager.setEnabled(true);
  322.                                                                 scanningUser.setEnabled(true);
  323.                                                                 adduser.setEnabled(true);
  324.                                                                 deleteuser.setEnabled(true);
  325.                                                                 add_readerInfo.setEnabled(true);
  326.                                                         }
  327.                                                 } catch (SQLException sqle) {
  328.                                                         String error = sqle.getMessage();
  329.                                                         JOptionPane.showMessageDialog(null, error);
  330.                                                         sqle.printStackTrace();
  331.                                                 }
  332.                                                 break;
  333.  
  334.                                         case "读者":
  335.                                                 try {// 读取数据库
  336.                                                         rs = ps.executeQuery(
  337.                                                                         "select * from ReadersInfo where ReaderID='" + user_ID.getText().trim() + "' ");
  338.                                                         if (!rs.next()) {
  339.                                                                 JOptionPane.showMessageDialog(null, "不存在此用户!");
  340.                                                         } else if (!(rs.getString("Password").trim().equals(new String(pwd.getPassword())))) {
  341.                                                                 JOptionPane.showMessageDialog(null, "密码错误!");
  342.                                                         } else {
  343.                                                                 dialog.dispose();
  344.                                                                 book_management.setEnabled(true);
  345.                                                                 reader_management.setEnabled(false);
  346.                                                                 ChangeBookInfo.setEnabled(false);
  347.                                                                 AddBook.setEnabled(false);
  348.                                                                 // change_readerInfo.setEnabled(true);
  349.                                                                 borrowAndreturn.setEnabled(true);
  350.                                                                 add_readerInfo.setEnabled(false);
  351.                                                                 queryBookInfo.setEnabled(true);
  352.                                                                 Menu_UserManager.setEnabled(true);
  353.                                                                 scanningUser.setEnabled(false);
  354.                                                                 adduser.setEnabled(false);
  355.                                                                 deleteuser.setEnabled(false);
  356.                                                                 add_readerInfo.setEnabled(false);
  357.                                                         }
  358.                                                 } catch (SQLException e1) {
  359.                                                         JOptionPane.showMessageDialog(null, e1.toString());
  360.                                                 }
  361.  
  362.                                                 break;
  363.                                         }
  364.  
  365.                                 } else {
  366.                                         JOptionPane.showMessageDialog(null, "用户ID或密码不能为空");
  367.                                 }
  368.                         }
  369.                 });
  370.                 dialog.setModal(true);
  371.                 dialog.setVisible(true);
  372.         }
  373.  
  374.         void addReaderInfo_actionPerformed(ActionEvent e) {
  375.                 new AddReaderInfo();
  376.         }
  377.  
  378.         void changeReaderInfo_actionPerformed(ActionEvent e) {
  379.                 new ChangeReadersInfo();
  380.         }
  381.  
  382.         void scanningUserInfo_actionPerformed(ActionEvent e) {
  383.                 new ScanningReadersInfo();
  384.         }
  385.  
  386.         void scanningUser_actionPerformed(ActionEvent e) {
  387.                 new ScanningUser();
  388.         }
  389.  
  390.         void changePasswd_actionPerformed(ActionEvent e) {
  391.                 new ChangePassword();
  392.         }
  393.  
  394.         void AddBook_actionPerformed(ActionEvent e) {
  395.                 new AddBook();
  396.         }
  397.  
  398.         void ChangeBookInfo_actionPerformed(ActionEvent e) {
  399.                 new ChangeBookInfo();
  400.         }
  401.  
  402.         void scanningBook_actionPerformed(ActionEvent e) {
  403.                 new ScanBookInfo();
  404.         }
  405.  
  406. }
  407.  

回复 "java使用JDBC连接SQL数据库,适合于初学者学习(一款小型的图书信息管理)"

这儿你可以回复上面这条便签

captcha