zoukankan      html  css  js  c++  java
  • 第十四周课程总结&实验报告(简单记事本的实现)

    JDBC:JDBC 是个"低级"接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是"对用户友好的"接口,它使用的是一种更易理解和更为方便的 API,这种API在幕后被转换为诸如 JDBC 这样的低级接口。在关系数据库的"对象/关系"映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对 Java 对象进行操作;存取数据所需的 SQL 调用将在"掩盖下"自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个 Java 类中。

    随着人们对 JDBC 的兴趣日益增涨,越来越多的开发人员一直在使用基于 JDBC 的工具,以使程序的编写更加容易。程序员也一直在编写力图使最终用户对数据库的访问变得更为简单的应用程序。例如应用程序可提供一个选择数据库任务的菜单。任务被选定后,应用程序将给出提示及空白供填写执行选定任务所需的信息。所需信息输入应用程序将自动调用所需的 SQL 命令。在这样一种程序的协助下,即使用户根本不懂 SQL 的语法,也可以执行数据库任务。

    JDBC的具体操作类和接口:

    MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

    MySQL具体操作:

    增加MySQL中内容:

    删除MySQL中内容:

    更新MySQL中内容:

    package A;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    import javax.swing.*;
    
    public class Notepad implements ActionListener {
          JFrame frame;
          JMenuBar bar;
          JMenu fileMenu,editMenu;
          ImageIcon newIcon,openIcon,saveIcon,closeIcon;
          JMenuItem newItem,openItem,saveItem,closeItem;
          JTextArea jta;
          JScrollPane scroll;
          File file;
          
          public Notepad() {
              frame=new JFrame("asdf");
              bar=new JMenuBar();
              fileMenu=new JMenu("文件");
              editMenu=new JMenu("编辑");
              jta=new JTextArea(); 
              scroll=new JScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
              newIcon=new ImageIcon("f:"+File.separator+"tupian"+File.separator+"1.png");
              openIcon=new ImageIcon("f:"+File.separator+"tupian"+File.separator+"2.png");
              saveIcon=new ImageIcon("f:"+File.separator+"tupian"+File.separator+"3.png");
              closeIcon=new ImageIcon("f:"+File.separator+"tupian"+File.separator+"4.png");
              newItem=new JMenuItem("新建(N)",newIcon);
              openItem=new JMenuItem("打开(O)",openIcon);
              saveItem=new JMenuItem("保存(S)",saveIcon);
              closeItem=new JMenuItem("关闭(C)",closeIcon);
              
              newItem.setMnemonic(KeyEvent.VK_N);
              openItem.setMnemonic(KeyEvent.VK_O);
              saveItem.setMnemonic(KeyEvent.VK_S);
              closeItem.setMnemonic(KeyEvent.VK_C);
              
              newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
              openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
              saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
              closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
              
              newItem.addActionListener(this);
              openItem.addActionListener(this);
              saveItem.addActionListener(this);
              closeItem.addActionListener(this);
              bar.add(fileMenu);
              bar.add(editMenu);
              fileMenu.add(newItem);
              fileMenu.add(openItem);
              fileMenu.add(saveItem);
              fileMenu.add(closeItem);        
              frame.add(scroll);
              frame.setJMenuBar(bar);
              frame.setVisible(true);
              frame.setSize(400, 300);
          }
    
        @Override
        public void actionPerformed(ActionEvent event) {
            Object obj=event.getSource();
            if(obj instanceof JMenuItem) {
                JMenuItem item=(JMenuItem)obj;
                if(item==newItem) {
                    new Notepad();
                }else if(item==openItem) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.showOpenDialog(null);
                    file=chooser.getSelectedFile();
                    try {
                        FileInputStream fis = new FileInputStream(file);
                        byte[] b=new byte[fis.available()];
                        fis.read(b);
                        jta.append(new String(b));
                        fis.close();
                    }catch(FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {               
                        e.printStackTrace();
                    }
                }else if(item==saveItem) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.showSaveDialog(null);
                    file=chooser.getSelectedFile();
                    if(!file.exists()) {
                        try {
                            file.createNewFile();
                        }catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }else if(item==closeItem) {
                    System.exit(0);
                }
            }
            
        }
    }
    

  • 相关阅读:
    2014 ACM-ICPC Beijing Invitational Programming Contest
    面试算法爱好者书籍/OJ推荐
    最新版本号MYSQL官网下载地址可是必需要注冊后才干下载
    [ZJOI2019]开关
    2019-9-24-dotnet-remoting-使用事件
    2019-9-24-dotnet-remoting-使用事件
    2019-3-8-为何使用-DirectComposition
    2019-3-8-为何使用-DirectComposition
    2019-8-31-C#-获取-PC-序列号
    2019-8-31-C#-获取-PC-序列号
  • 原文地址:https://www.cnblogs.com/ydlBLOG/p/11958440.html
Copyright © 2011-2022 走看看