第十四周课程总结&实验报告(简单记事本的实现)
本周完成了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地址:端口号/数据库名称