第十四周课程总结&实验报告
第十四周课程总结&实验报告
简单记事本:
实验代码:
package 简易记事本;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
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 java.io.PrintStream;
import javax.swing.*;
public class TextPad implements ActionListener {
JFrame frame;
JMenuBar bar;
JMenu fileMenu, editMenu;
ImageIcon newIcon, openIcon, saveIcon, closeIcon;
JMenuItem newItem, openItem, saveItem, closeItem;
JTextArea area;
JScrollPane scroll;
File file;
public TextPad() {
frame = new JFrame("记事本");
bar = new JMenuBar();
fileMenu = new JMenu("文件");
area = new JTextArea();
scroll = new JScrollPane(area);
newIcon = new ImageIcon("d:" + File.separator + "Java" + File.separator+ "图片" + File.separator + "5.jpg");
openIcon = new ImageIcon("d:" + File.separator + "Java"+ File.separator + "图片" + File.separator + "2.jpg");
saveIcon = new ImageIcon("d:" + File.separator + "Java"+ File.separator + "图片" + File.separator + "3.jpg");
closeIcon = new ImageIcon("d:" + File.separator + "Java"+ File.separator + "图片" + File.separator + "4.jpg");
newItem = new JMenuItem("新建(N)", newIcon);
openItem = new JMenuItem("打开(O)", openIcon);
saveItem = new JMenuItem("保存(S)", saveIcon);
closeItem = new JMenuItem("关闭(C)", closeIcon);
newItem.setMnemonic(KeyEvent.VK_N);
openItem.setMnemonic(KeyEvent.VK_O);
saveItem.setMnemonic(KeyEvent.VK_S);
closeItem.setMnemonic(KeyEvent.VK_C);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
InputEvent.CTRL_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
InputEvent.CTRL_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
InputEvent.CTRL_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
InputEvent.CTRL_MASK));
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
closeItem.addActionListener(this);
bar.add(fileMenu);
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(closeItem);
frame.add(scroll);
frame.setJMenuBar(bar);
frame.setSize(400, 300);
frame.setLocation(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
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) {
JFileChooser 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 e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if (item == saveItem) {
JFileChooser chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
if (!file.exists()) {
try {
PrintStream out = new PrintStream(new FileOutputStream(file));
out.print(area.getText());
out.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
} else if (item == closeItem) {
System.exit(0);
}
}
}
}
实验结果:
新建:
保存:
打开:
总结:虽然这是老师上课讲过,举过例子的原题,但自己来还是打得不完整,然后导致对话框运行出不来,还有一些其他的bug,比如运行程序时还会运行其他的程序,然后室友帮我加了frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);这行代码,问题解决了,但是在保存文件的处理那里还有bug,在网上找了找相关的解决方法。然后记事本也还只做了打开,保存,新建和关闭四个功能。
学习总结:
JDBC:JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。
JDBC提供了三个类,用于向数据库发送SQL语句。Connection接口中的三个方法可用于创建这些类的实例。下面列出这些类及其创建方法: (1)Statement:由方法createStatement所创建。Statement对象用于发送简单的SQL语句。
(2)PreparedStatement:由方法prepareStatement所创建。PreparedStatement对象用于发送带有一个或多个输入参数(IN参数)的SQL语句。
PreparedStatement拥有一组方法,用于设置IN参数的值。执行语句时,这些IN参数将被送到数据库中。PreparedStatement的实例扩展了Statement,
因此它们都包括了Statement的方法。PreparedStatement对象有可能比Statement对象的效率更高,因为它已被预编译过并存放在那以供将来使用。
(3)CallableStatement:由方法prepareCall所创建。CallableStatement对象用于执行SQL储存程序─一组可通过名称来调用(就象函数的调用那样)的SQL语句。
CallableStatement对象从PreparedStatement中继承了用于处理IN参数的方法,而且还增加了用于处理OUT参数和INOUT参数的方法。
目前比较常见的JDBC驱动程序可分为以下四个种类:
(1)JDBC-ODBC桥加ODBC驱动程序
JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。
(2)本地API
这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。
(3)JDBC网络纯Java驱动程序
这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。
(4)本地协议纯Java驱动程序
这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。
JDBC的主要操作类及接口:
MySQL数据库
一个小型关系型数据库管理系统,开发者为MySQL AB公司。课本上有他的安装及配置。
常用命令:连接MySQL数据库:
mysql-u用户名 -p密码
创建和删除数据库:
创建:CREATE DATABASE 数据库名称
删除:DROP DATABASE 数据库名称
使用数据库
USE 数据库名称
创建数据库表
CREATE TABLE表名称{
字段名称1 字段类型【DEFAULT 默认值】【约束】
字段名称2 字段类型【DEFAULT 默认值】【约束】
。。。。
字段名称3 字段类型【DEFAULT 默认值】【约束】
}
删除数据库表
DROP TABLE 表名称
查看表结构
DESC 表名称
查看数据库信息
查看全部数据库: SHOW DATABASES;
查看一个数据库的全部表:SHOW TABLES;
另外要下载的MYSQL还没下好。。。