第十四周课程总结&实验报告
简单记事本的实现
实验代码
package NOTEBOOK;
import java.awt.event.*;
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 Notebook implements ActionListener {
JFrame frame;
JMenuBar bar;
JMenu fileMenu,editMenu;
JMenuItem newItem,openItem,saveItem,closeItem;
ImageIcon newIcon,openIcon,saveIcon,closeIcon;
JScrollPane scorll;
JTextArea scbar;
File file;
private JFileChooser chooser;
public Notebook(){
frame = new JFrame("ZJ");
fileMenu = new JMenu("文件(F)");//编辑记事本首页功能
editMenu = new JMenu("编辑(E)");
bar = new JMenuBar();
newItem = new JMenuItem("新建(N)");//文件功能标注
openItem = new JMenuItem("打开(O)");
saveItem = new JMenuItem("保存(S)");
closeItem = new JMenuItem("关闭(C)");
scbar = new JTextArea();//添加文本域和滚动条
scorll = new JScrollPane(scbar,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
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_DOWN_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_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);//将菜单栏的功能加入到菜单栏
bar.add(editMenu);
frame.setJMenuBar(bar);//总体布局
frame.add(scorll);
frame.setSize(250, 250);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();//获得事件监听的对象
if (obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem) obj;
if (item == newItem) { //新建
new Notebook();
}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);
scbar.append(new String(b));
fis.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(item == saveItem) { //保存文件
if(file!=null) {
try {
PrintStream out = new PrintStream(new FileOutputStream(file));
out.print(this.scbar.getText());
out.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
}else if(item == closeItem) {
System.exit(1);
}
}
}
}
package NOTEBOOK;
public class Test {
public static void main(String[] args) {
new Notebook();
}
}
实验结果
学习总结
1.JDBC的主要操作类及接口
JDBC的核心是为用户提供Java APIl类库,让用户能够创建数据库连接、执行SQL语句、检索结果集、访问数据库元数据等。Java程序开发人员可以利用这些类库来开发数据库应用程序。JDBC API中主要包括了下面所示的类和接口:
java.sql.DriverManager // 用于管理JDBC驱动程序
java.sql.Connection //用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL语句和获得检索结果。
java.sal.Statement // 一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果。
java.sql.PreparedStatement // 创建一个可以编译的SQL语句对象,给对象可以被多次运行,以提高执行效率,改接口是Statement的子接口。
java.sql.ResultSet // 用于创建表示SQL语句检索结果集,用户通过结果集完成对数据库的访问。
java.sql.Driver // 定义一个数据库的驱动接口。
2.JDBC的连接地址实际上是由以下的3个部分组成。
(1)jabc 协议:JDBC URL 中的协议总是 jdbc。
(2)子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如
MySQL。
(3)子名称: 种标识数据库的方法。必须遵循“//主机名:端口/子协议”的标准URL 命名约定,
3.MySQL的基本操作命令
MySQL 是最流行的关系型数据库管理系统,它性能高、成本低、可靠性好,因此被广泛地应用在Internet上的中小型网站中,是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
以下为MySQL的一些基本操作命令。
01
数据库
# 连接MySQL数据库(需用户名跟密码):
mysql -u [usernane] -p [password]
# 查询所有的数据库
show databases;
# 创建数据库(数据库名称只能以字母或下划线开头)
create database [database_name] charset utf8;
# 删除数据库
drop database [database_name];
# 选择数据库
use [database_name];
02
数据表(需选择某个数据库)
# 查看所有的表
show tables;
# 创建数据表
create table if not exists [databese_name](
[db_id] int unsigned auto_increment,
[db_title] varchar(100) not null,
[db_author] varchar(40) not null,
[submission_date] date,
primary key ( [db_id] )
)engine=InnoDB default charset=utf8;
auto_incremen:定义列为自增的属性,一般用于主键,数值会自动加1;
primary key :关键字用于定义列为主键;
engine:设置存储引擎;
charset:设置编码
# 插入数据
insert into [tablename]
-> ([db_title], [db_author], [submission_date]
-> values
-> (“mysql”, “小人物”, “now()”);
# 查看表的所有数据
select * from [tablename];
# 查询表的结构
desc [tablename];
# 删除数据表
drop table [tablename];
# 使用where 选择数据
select * from [tablename] where [db_author]=’小人物’;
# 使用update 更新 [db_id] 为1数据
update [tablename] set [db_title] where [db_id]=1;
# 使用delete删除 [db_id] 为1的数据
delete from [tablename] where [db_id]=1;