第十四周

一.这周学习了JDBC的主要操作类及接口

概念:JDBC(Java DataBase Connectivity)是一种数据库连接技术,
能实现Java程序对各种数据库的访问。由一组使用Java语言编写的类和接口(JDBC API)组成,他们位于java.sql以及javax.sql中。
作用:
 1.建立与数据库的访问连接。
 2.将编写好的SQL语句发送到数据库执行。
 3.对数据库返回的执行结果进行处理。
常用:
java.sql.DriverManager      :用于管理JDBC驱动程序
java.sql.Connection         :用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL语句和获得检索结果。
java.sal.Statement          :一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果。
java.sql.PreparedStatement  : 创建一个可以编译的SQL语句对象,给对象可以被多次运行,以提高执行效率,改接口是Statement的子接口。
java.sql.ResultSet          :  用于创建表示SQL语句检索结果集,用户通过结果集完成对数据库的访问。

二.了解MySQL数据库的基本操作和常用命令

MySQL的安装与配置目前还没搞懂...
常用命令:

1.连接:mysql -u [用户名] -p [密码]
(端口要用大写P,与密码p加以区分)
2.创建数据库:CREATE DATABASE [数据库名称]
3.删除数据库:DROP DATABASE [数据库名称]
4.使用某个库:use [数据库名];
5.创建数据库表:
CREATE TABLE 表名称(
字段名称1    字段类型 [DEFAULT 默认值][约束],
字段名称2    字段类型 [DEFAULT 默认值][约束],
...,
字段名称n    字段类型 [DEFAULT 默认值][约束]
);
6.删除数据库表:DROP TABLE 表名称;
7.查看表结构:   DESE 表名称;
8.查看数据库信息
查看全部数据库:SHOW DATABASES;
查看一个数据库的全部表:SHOW TABLES;

三.实验设计

代码:

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.*;
import javax.swing.undo.UndoManager;

public class TTest implements ActionListener {
	JFrame frame;
    JTextArea text;
    JScrollPane sp;
    JMenuItem newItem,openItem,saveItem,exitItem;
    JMenuBar bar;
    JMenu fileMenu,editMenu,lookMenu,helpMenu;
    JFileChooser choose;
    File file;
    JTable table;
    JMenuItem blankItem;
    UndoManager undoManager;
    
	public void Wenjian(){
	frame=new JFrame("记事本");
	text =new JTextArea();      //定义文本域
    sp=new JScrollPane(text);
	bar=new JMenuBar();          //用来摆放JMenu组件
		
		JMenu fileMenu =new JMenu("文件");
		JMenu exitMenu =new JMenu("编辑");
		JMenu lookMenu =new JMenu("查看");
		JMenu helpMenu =new JMenu("帮助");

		newItem=new JMenuItem("新建");
        openItem=new JMenuItem("打开");
        saveItem=new JMenuItem("保存");
        exitItem=new JMenuItem("退出");
        
//助记符设置
newItem.setMnemonic('N');  
openItem.setMnemonic('O');
saveItem.setMnemonic('S');
exitItem.setMnemonic('E');

//快捷键设置
newItem.setAccelerator(KeyStroke.getKeyStroke('N',KeyEvent.CTRL_DOWN_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke('O',KeyEvent.CTRL_DOWN_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke('S',KeyEvent.CTRL_DOWN_MASK));
exitItem.setAccelerator(KeyStroke.getKeyStroke('E',KeyEvent.CTRL_DOWN_MASK));

//向文件栏添加选项
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.addSeparator();//分割线
fileMenu.add(exitItem);

//关于文件菜单的动作监听
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
exitItem.addActionListener(this);

//向菜单栏添加
bar.add(fileMenu);
bar.add(exitMenu);
bar.add(lookMenu);
bar.add(helpMenu);

    frame.add(sp);
    frame.setJMenuBar(bar);
	frame.setSize(300, 200);
	frame.setVisible(true); 
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public static void main (String[]args) {
		TTest text1=new TTest(  );
		text1.Wenjian();
	}

//关于文件菜单选项按钮的监听
public void actionPerformed(ActionEvent e) {  //按钮事件监听
	
	//新建

	if(e.getSource()==newItem) {          
		text.setText("");
	}
	
	//保存
	else if(e.getSource()==openItem) {
		choose=new JFileChooser();
        choose.showOpenDialog(null);
        file=choose.getSelectedFile();
			try {
				FileInputStream input =new FileInputStream(file);    //设置输入流
				byte[] b=new byte[input.available()];
                input.read(b);
                text.append(new String(b));
                input.close();                
			}catch(FileNotFoundException e1) {
				e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
	}
	
	
    //打开		
			else if(e.getSource()==saveItem) {
	    choose=new JFileChooser();
        choose.showOpenDialog(null);
        file=choose.getSelectedFile();
		try {
            FileOutputStream output=new FileOutputStream(file);
            byte[] b=text.getText().getBytes();
            output.write(b);
            output.close();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
			
	    //退出
if(e.getSource()==exitItem) {
          System.exit(1);
      }
	}
}
}


截图:


感想:太难了问题很多监听不知道怎么实现,但也有所收获,对Swing的知识熟悉了

而且搞了半天只出现界面功能不能实现,可能是某些类没有初始化或者少了哪些关键的语句吧目前还在思考中。

原文地址:https://www.cnblogs.com/saury/p/11960013.html