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

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

    实验报告

    import javax.swing.*;
    
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.io.*;
    
    public class wordpad implements ActionListener {
    
    	JFrame jf;
    	JMenuBar jmb;
    	JMenu filem,editMenu,formatm,viewm,helpm;
    	JMenuItem newi,openi,savei,closei,pagei,printi,savedi;
    	JScrollPane jsp;
    	JTextArea area;
    	JFileChooser jfc;
    	File file;
    	
    	public wordpad(){
    		jf = new JFrame("记事本");
    		jmb = new JMenuBar();
    		filem= new JMenu("文件(F)");
    		editMenu= new JMenu("编辑(E)");
    		formatm = new JMenu("格式(O)");
    		viewm = new JMenu("查看(V)");
    		helpm = new JMenu("帮助(H)");
    		
    		//实例化菜单项
    		newi = new JMenuItem("新建(N)");
    		openi = new JMenuItem("打开(O)");
    		savei = new JMenuItem("另存为(A)");
    		closei = new JMenuItem("关闭(X)");
    		pagei = new JMenuItem("页面设置(U)");
    		printi = new JMenuItem("打印(P)");
    		savedi = new JMenuItem("保存(S)");
    		area = new JTextArea();
    		jsp = new JScrollPane(area);
    		
    		newi.addActionListener(this);
    		openi.addActionListener(this);
    		savei.addActionListener(this);
    		closei.addActionListener(this);
    		pagei.addActionListener(this);
    		printi.addActionListener(this);
    		savedi.addActionListener(this);
    		
    		//给‘文件’菜单添加菜单项
    		filem.add(newi);
    		filem.add(openi);
    		filem.add(savedi);
    		filem.add(savei);
    		filem.addSeparator();
    		filem.add(pagei);
    		filem.add(printi);
    		filem.addSeparator();
    		filem.add(closei);
    		
    		//给菜单项设置助记符和快捷键
    		newi.setMnemonic('N');
    		newi.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
    		openi.setMnemonic('O');
    		openi.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
    		savei.setMnemonic('A');
    		savei.setAccelerator(KeyStroke.getKeyStroke('A',java.awt.Event.CTRL_MASK));
    		closei.setMnemonic('X');
    		closei.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK));
    		pagei.setMnemonic('U');
    		pagei.setAccelerator(KeyStroke.getKeyStroke('U',java.awt.Event.CTRL_MASK));
    		savedi.setMnemonic('S');
    		savedi.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
    		printi.setMnemonic('P');
    		printi.setAccelerator(KeyStroke.getKeyStroke('P',java.awt.Event.CTRL_MASK));
    		
    		jmb.add(filem);
    		jmb.add(editMenu);
    		jmb.add(formatm);
    		jmb.add(viewm);
    		jmb.add(helpm);
    		
    		
    		jf.setJMenuBar(jmb);
    		jf.add(jsp);
    		jf.setSize(600,500);
    		jf.setVisible(true);
    		
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent event){
    		Object obj = event.getSource();
    		if(obj instanceof JMenuItem){
    			JMenuItem item = (JMenuItem)obj;
    			if(item == newi){
    				new wordpad();
    			}else if(item==openi){
    				jfc=new JFileChooser();
    				jfc.showOpenDialog(null);
    				file = jfc.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 e) {
    					e.printStackTrace();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    			else if(item==savei) {
    				jfc=new JFileChooser();
    				jfc.showSaveDialog(null);
    				file = jfc.getSelectedFile();
    				
    					try {
    						if(!file.exists()) {       //如果不存在这个文件就新建一个,如果已存在,就直接保存到已有的这个文件中
    							file.createNewFile();
    						}
    						
    						FileOutputStream fos = new FileOutputStream(file);
    						byte[] b = area.getText().getBytes();
    						fos.write(b);
    						fos.close();
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
    			}
    			else if(item==closei) {
    				System.exit(1);
    			}
    			
    		}
    		
    	}
    	
    }
    
    测试
    
    public class test {
    
    	public static void main(String[] args) {
    		new wordpad();
    
    	}
    }
    

    运行结果




    学习小结

    JDBC

    主要操作类及接口
    java.sql.DriverManager 用于管理jdbc驱动程序
    Java.sql.Connection 用于建立与特定数据库的连接
    Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果
    Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口
    Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问
    java.sql.Date 用于表示与SQL DATE相同的日期类型,该日期不包括时间
    java.sql.Timestamp 用于表示SQL时间戳,并增加了一个能表示ns(纳秒)的时间域
    等等...

    MySQL数据库

    常用命令

    连接MySQL数据库:mysql -u 用户名 -p 密码
    创建数据库:CREATE DATABASE 数据库名称;
    删除数据库:DROP DATABASE 数据库名称;
    使用数据库:USE 数据库名称;
    创建数据库表:
    CREATE TABLE 表名称(
    字段名称1 字段类型 [DEFAULT 默认值] [约束],
    字段名称2 字段类型 [DEFAULT 默认值] [约束],
    ...
    字段名称n 字段类型 [DEFAULT 默认值] [约束]
    );
    删除数据库表: DROP TABLE 表名称;
    查看表结构:DESC 表名称;
    查看全部数据库:SHOW DATABASE;
    查看一个数据库的全部表:SHOW TABLES;

    SQL语法基础

    创建数据库时人员编号使用AUTO_INCREAMENT完成自动增长列的操作。
    MySQL数据类型23种。
    向表中增加数据: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)]; --->设置查询条件

    加载数据库驱动程序
    package database;
    
    public class Text {
            public static final String DBDRIVER="ora.gjt.mm.mysql.Driver";
        public static void main(String[] args) {
            try {
                Class.forName(DBDRIVER);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
    
    连接及关闭数据库

    使用DriverManager类连接数据库和Connection接口
    连接地址格式:
    jdbc:mysql://IP地址:端口号/数据库名称

  • 相关阅读:
    js对象数组 根据某个共同字段 分组
    JS将数字转换成三位逗号分隔的样式
    js动态拼接参数到请求的url上
    在vue项目中 如何定义全局变量 全局函数
    vue-devtools的安装与使用
    原生js颗粒页换图效果
    css3爆炸效果更换图片轮播图
    css3高级运动keyframes
    grunt的使用方法,环境配置和插件安装
    js原生捕鱼达人(三)--完结
  • 原文地址:https://www.cnblogs.com/LeeMayZ/p/11959152.html
Copyright © 2011-2022 走看看