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

    课程总结

    JDBC一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

    spring提供一致的API来简化JDBC编程-spring jdbc。我们只需要声明SQL、调用合适的Spring JDBC框架API、处理结果集。事务由Spring管理,并将JDBC受查异常转换为Spring一致的非受查异常。

    JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成:

    JDBC API:提供应用程序到JDBC管理器连接。
    JDBC驱动程序API:支持JDBC管理器到驱动程序连接。

    DriverManager:此类管理数据库驱动程序列表。 使用通信子协议将来自java应用程序的连接请求与适当的数据库驱动程序进行匹配。在JDBC下识别某个子协议的第一个驱动程序将用于建立数据库连接。
    Driver:此接口处理与数据库服务器的通信。我们很少会直接与Driver对象进行交互。 但会使用DriverManager对象来管理这种类型的对象。 它还提取与使用Driver对象相关的信息。
    Connection:此接口具有用于联系数据库的所有方法。 连接(Connection)对象表示通信上下文,即,与数据库的所有通信仅通过连接对象。
    Statement:使用从此接口创建的对象将SQL语句提交到数据库。 除了执行存储过程之外,一些派生接口还接受参数。
    ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。 它作为一个迭代器并可移动ResultSet对象查询的数据。
    SQLException:此类处理数据库应用程序中发生的任何错误。

    简易记事本

    package zh;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import javax.swing.ImageIcon;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    public class TextPad implements ActionListener {
    	
    	JFrame frame;
    	JMenuBar bar;
    	JMenu fileMenu,editMenu;
    	JMenuItem newItem,openItem,saveItem,closeItem;
    	ImageIcon  newIcon,openIcon,saveIcon,closeIcon;
    	JScrollPane scroll;
    	JTextArea area;
    	JFileChooser chooser;
    	File file;
    	
    	public TextPad(){
    		frame = new JFrame("记事本");
    		bar = new JMenuBar();
    		fileMenu = new JMenu("文件");
    		editMenu = new JMenu("编辑");
    		newIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator + "新建.png");
    		openIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator +"打开.png");
    		saveIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator +"保存.png");
    		closeIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator +"关闭.png");
    		area = new JTextArea();
    		scroll = new JScrollPane(area);
    		
    		newItem = new JMenuItem("新建", newIcon);
    		openItem = new JMenuItem("打开", openIcon);
    		saveItem = new JMenuItem("另存为", saveIcon);
    		closeItem = new JMenuItem("关闭", closeIcon);
    		
    		//加上监听器
    		newItem.addActionListener(this);
    		openItem.addActionListener(this);
    		saveItem.addActionListener(this);
    		closeItem.addActionListener(this);
    		
    		fileMenu.add(newItem);
    		fileMenu.add(openItem);
    		fileMenu.add(saveItem);
    		fileMenu.add(closeItem);
    		
    		
    		
    		bar.add(fileMenu);
    		bar.add(editMenu);
    		
    		
    		frame.setJMenuBar(bar);
    		frame.add(scroll);
    		frame.setSize(400,300);
    		frame.setVisible(true);
    	}
    	
    
    
    	public void actionPerformed(ActionEvent event) {
    		Object obj = event.getSource();
    		if(obj instanceof JMenuItem ) {
    			JMenuItem item = (JMenuItem)obj;
                if(item == newItem) {
                    new TextPad();
    		}else if(item == openItem) {
                chooser=new JFileChooser();
                chooser.showOpenDialog(null);
                file=chooser.getSelectedFile();
                try {
                   FileInputStream fis=new FileInputStream(file);
                   byte[] b=new byte[fis.available()];
                   try {
                       fis.read();
                       area.append(new String(b));
                       fis.close();
                   } catch (IOException e1) {
                       e1.printStackTrace();
                   }
               } catch (FileNotFoundException e1) {
                   e1.printStackTrace();
               } catch (IOException e2) {
                   e2.printStackTrace();
               }
    		}else if(item == saveItem) {
                   chooser = new JFileChooser();
                   chooser.showSaveDialog(null);
                   file = chooser.getSelectedFile();
                   
                       try {
                           if(!file.exists()) {
                              file.createNewFile();
                           }
                           FileOutputStream fos = new FileOutputStream(file);
                           byte[] b = area.getText().getBytes();
                           fos.write(b);
                           fos.close();
                       } catch (IOException e1) {
                           e1.printStackTrace();
                       }
                   
               }else if(item == closeItem){
                   System.exit(1);
               }
    		}
    	}
    }
    
    package zh;
    
    public abstract class Test {
    
        public static void main(String[] args) {
            new TextPad();
        }
    
    }
    

  • 相关阅读:
    如何用Warkdowm来写一篇博客
    关于toString()的一些事情
    python的 range() 函数
    python中的split()函数
    innerHTML和value打架了?
    JS如何实现实时获取网络时间
    javascript内嵌样式与外联样式怎么做?
    c语言实现乘法口诀表
    c语言实现数字的倒序输出
    c语言解一元二次方程
  • 原文地址:https://www.cnblogs.com/wuguijunniubi/p/11957753.html
Copyright © 2011-2022 走看看