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

    本周完成了JDBC 的学习,请对此内容进行总结。

    JDBC(Java数据库连接)的主要操作及接口:

    常用类和接口:DriverManager(用于管理JDBC驱动程序)、Connection(用于建立与特定数据库的连接)、Statement(一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果)、Result(用于创建表示SQL语句检索结果的结果集)、PreparedStatement(创建一个可以编译的SQL语句对象,该对象可被多次运行,该接口是Statement的子接口)。

    MYSQL数据库:

    ①定义:小型关系型数据库管理系统。
    ②安装及配置。
    ③常用命令:
    连接MYSQL数据库:

    mysql-u 用户名 -p 密码;
    

    创建数据库:

    CREATE DATABASE 数据库名称、
    

    删除数据库:

    DROP DATABASE 数据库名称;
    

    使用数据库:

    USE 数据库名称;
    

    创建数据库表:

    CREATE TABLE 表名称(
        字段名称1 字段类型 [DEFAULT 默认值] [约束],
        字段名称2 字段类型 [DEFAULT 默认值] [约束],
        ...
        字段名称n 字段类型 [DEFAULT 默认值] [约束]
    );
    

    删除数据库表:

    DROP TABLE  表名称;
    

    查看表结构:

    DESC 表名称;
    

    查看数据库信息:
    查看全部数据库:

    SHOW DATABASES;
    

    查看一个数据库的全部表:

    SHOW TABLES;
    

    SQL语法基础:

    ①SQL功能概括:DML、DDL、DCL;
    ②MYSQL中的数据类型:常用的是INT、FLOAT、VARCHAR(M)、TEXT、DATE、DATETIME。
    ③增加数据:

    INSERT INTO 表名称[(字段1,字段2,字段3,...,字段n)]VALUES (值1,值2,值3,...值n);
    

    ④删除数据:

    DELETE FROM 表名称 [删除条件];
    

    ⑤更新数据:

    UPDATE 表名称 SET 字段 1=值1,...,字段n=值1[WHERE 更新条件];
    

    ⑥查询数据:

    SELECT{*|column alias}
    FROM 表名称 别名
    [WHERE condition(s)];  →设置查询条件
    

    JDBC操作步骤:

    完成简单记事本的练习。

    实验源码:

    package aa;
    
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import javax.swing.*;
    
    public class TextMenu implements ActionListener {
    
    	JFrame frame;//定义窗体
    	JMenuBar bar;//定义JMenuBar
    	JMenu fileMenu;//定义菜单栏
    	JMenuItem newItem,openItem,saveItem,closeItem;//定义菜单选项
    	ImageIcon newIcon,openIcon,saveIcon,closeIcon;//定义显示图标
    	JScrollPane scr;//加入滚动条
    	JTextArea area;//定义文本域
    	JFileChooser chooser;
    	File file;
    	FileDialog savedialog;
    	
    	public TextMenu() {
    		
    		//实例化
    		frame=new JFrame("QZY");
    		bar=new JMenuBar();
    		fileMenu=new JMenu("文件");  
    		newItem=new JMenuItem("新建(N)");
    		openItem=new JMenuItem("打开(O)");
    		saveItem=new JMenuItem("另存为(A)");
    		closeItem=new JMenuItem("退出(X)");
    		newIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"新建.png");
    		openIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"打开.png");
    		saveIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"另存为.png");
    		closeIcon=new ImageIcon("d:"+File.separator+"if you"+File.separator+"退出.png");
    		
    		newItem = new JMenuItem("新建(N)", newIcon);
            openItem = new JMenuItem("打开(O)", openIcon);
            saveItem = new JMenuItem("另存为(A)", saveIcon);
            closeItem = new JMenuItem("退出(X)", closeIcon);
            
    		area=new JTextArea(10,30);
    		area.setLineWrap(true);
    		
    		scr = new JScrollPane(area,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
            
    		
    		//设置快捷键
    		newItem.setMnemonic(KeyEvent.VK_N);
    		openItem.setMnemonic(KeyEvent.VK_O);
    		saveItem.setMnemonic(KeyEvent.VK_A);
    		closeItem.setMnemonic(KeyEvent.VK_X);
    		
    		newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,java.awt.Event.CTRL_MASK));
    		openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,java.awt.Event.CTRL_MASK));
    		saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,java.awt.Event.CTRL_MASK));
    		closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,java.awt.Event.CTRL_MASK));
    		
    		//加入菜单项
    		fileMenu.add(newItem);
    		fileMenu.add(openItem);
    		fileMenu.add(saveItem);
    		fileMenu.add(closeItem);
    		
    		//加入事件监听器
    		newItem.addActionListener(this);
    		openItem.addActionListener(this);
    		saveItem.addActionListener(this);
    		closeItem.addActionListener(this);
    		
    		bar.add(fileMenu);
    		
    		frame.setJMenuBar(bar);
    		area.setEditable(true);
    		
    		frame.add(scr);
    		frame.setSize(300 ,300);
    		frame.setVisible(true);
    	}
    
        //按钮事件监听
    	public void actionPerformed(ActionEvent e) {
    		
    		Object obj=e.getSource();
    		if(obj instanceof JMenuItem) {
    			JMenuItem item=(JMenuItem) obj;
    			if(item==newItem) {
    				new TextMenu();
    			}
    			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()];
    					fis.read(b);
    					area.append(new String(b));
    					fis.close();
    				}catch(FileNotFoundException ee) {
    					ee.printStackTrace();
    				}catch(IOException eee) {
    					eee.printStackTrace();
    				}
    				 
    			}else if(item==saveItem) {
    				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 eee) {
    					eee.printStackTrace();
    				}
    		
    			}else if(item == closeItem) {
                    System.exit(1);
                }
    		  
            }
    	}
    	
    }
    
    

    实验结果:




    实验过程:

    此题运用JMenu与JMenuItem来构建菜单与菜单项,当选择某个菜单项时会触发ActionEvent事件。 开头导入所需要的包,再定义要用到的属性(窗体、文本域、滚动条、JMenu,JMenuBar,菜单项,菜单项图标等)并将其实例化。再利用add()方法将属性、事件监听器加入。再在监听中利用if else,try...catch等语句实现菜单项的功能即可。

    学习总结:

    这个题目照着老师上课的方法来做的。老师讲的还是简单明了清晰,一步一来的。没有书上的复杂,能让学生更容易接受听懂一点。可是数据库真的好复杂啊,好难。

  • 相关阅读:
    基于ExtAspNet的开源项目 Ext4JSLint
    ExtAspNet应用技巧(九) Grid导出为Excel文件
    ExtAspNet应用技巧(十二) 系统登录
    ExtAspNet v2.0.7
    原来最可怕的不是工作,是无聊
    获取Word文档的作者和主题
    《可变范围规约》
    用IronPython加载,写入文本文件
    IronPython中没有System.Data命名空间?
    《敏捷建模》读后感
  • 原文地址:https://www.cnblogs.com/qzy7/p/11959467.html
Copyright © 2011-2022 走看看