第十四周课程总结&实验报告(简单记事本的实现)

本周完成了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地址:端口号/数据库名称

posted @ 2019-11-29 22:25  LeeMayZ  阅读(141)  评论(0编辑  收藏  举报