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

一、JDBC概述

1.JDBC简介

(1)JDBC是JAVA提供的一套数据库操作标准,各个数据库生产商要按照此标准生产数据库驱动,而开发者只需要掌握核心的接口与类即可通过SQL实现任意的数据库操作

(2)JDBC提供了一种与平台无关的用于执行SQL语句的标准Java API,可以方便地实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成

 

2.JDBC驱动分类

(1)JDBC-ODBC桥驱动

 

 (2)JDBC连接

 

(3)JDBC网络驱动

这种驱动程序将JDBC转换为与DBMS无关的网络协议,然后又被某个服务器转换为一种DBMS协议。

(4)本地协议纯JDBC驱动

这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。

 

3.JDBC的主要操作类及接口

类及接口 描述
java.sql.DriverManager 用于管理JDBC驱动程序

java.sql.Connection

用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL语句和获得检索结果
java.sql.Statement 一个Statement对象用于执行静态SQL语句,并获得语句执行后的结果
java.sql.PreparedStatement 创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率,该接口是Statement的子接口
java.sql.ResultSet 用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问
java.sql.Date 该类是标准java.util.Date的一个子集,用于表示与SQL DATE相同的日期类型,该日期不包括时间
java.sql.Timestamp 标准java.util.Date类的扩展,用于表示SQL时间戳,并增加了一个能表示ns的时间域
java.sql.CallableStatement 用于执行SQL存储过程
java.sql.DatabaseMetaData 与java.sql.ResultSetMetaData一同用于访问数据库的元信息
java.sql.Driver 定义一个数据库驱动程序的接口
java.sql.DataTruncation 在JDBC遇到数据截断的异常时,报告一个警告(读数据时)或产生一个异常(写数据时)
java.sql.DriverPropertyInfo 高级程序设计人员通过DriverPropertyInfo与Driver进行交流,可使用getDriverPropertyInfo获取或提供驱动程序的信息
java.sql.Time 该类是标准java.util.Date的一个子集,用于表示时、分、秒
java.sql.SQLException 对数据库访问时产生的错误的描述信息
java.sql.SQLWarning 对数据库访问时产生的警告的描述信息
java.sql.Types 定义了表示SQL类型的常量

 

二、MySQL数据库

1.MySQL简介

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。

 

2.MySQL安装及配置

 

3.MySQL常用命令

(1)连接MySQL数据库

```

mysql -u用户名 -p密码

```

(2)创建数据库

```

创建数据库:CREATE DATABASE 数据库名称;

删除数据库:DROP DATABASE 数据库名称;

```

(3)使用数据库

```

USE 数据库名称;

```

(4)创建数据库表

```

CREATE TABLE 表名称(

  字段名称1   字段类型  [DEFAULT 默认值][约束],

  字段名称2    字段类型 [DEFAULT 默认值][约束],

  ……

  字段名称n   字段类型  [DEFAULT 默认值][约束]

);

```

(5)创建数据库表

```

DROP TABLE 表名称;

```

(6)查看表结构

```

DESC 表名称;

```

(7)查看数据库信息

```

查看全部数据库: SHOW DATABASES;

查看一个数据库的全部表: SHOW TABLES;

```

 

  实验报告

package test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.*;

import javax.swing.*;

public class Jishiben implements ActionListener{
JFrame frame;
JTextArea jta;
File file1;
JMenuBar menubar;
JMenu menu;
JMenuItem newitem;
JMenuItem openitem;
JMenuItem closeitem;
JMenuItem saveitem;
JScrollPane scroll;
JFileChooser jfc;
public Jishiben() {
frame=new JFrame("记事本");
jta=new JTextArea(10,4);
jta.setEditable(true);
scroll=new JScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

menubar=new JMenuBar();
menu=new JMenu("文件");
newitem=new JMenuItem("新建");
openitem=new JMenuItem("打开");
closeitem=new JMenuItem("关闭");
saveitem=new JMenuItem("另存为");

newitem.setMnemonic(KeyEvent.VK_N);
openitem.setMnemonic(KeyEvent.VK_O);
closeitem.setMnemonic('c');
saveitem.setMnemonic('s');

newitem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
openitem.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
closeitem.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK));
saveitem.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));

newitem.addActionListener(this);
openitem.addActionListener(this);
closeitem.addActionListener(this);
saveitem.addActionListener(this);

menu.add(newitem);
menu.add(openitem);
menu.add(closeitem);
menu.add(saveitem);

menubar.add(menu);

frame.setJMenuBar(menubar);
frame.add(scroll);
frame.setSize(550,400);
frame.setLocation(460,180);
frame.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() instanceof JMenuItem) {
if(e.getSource()==newitem) {
new Jishiben();
}
else if(e.getSource()==openitem) {
jfc=new JFileChooser();
jfc.showOpenDialog(null);
file1=jfc.getSelectedFile();
try {
FileInputStream input=new FileInputStream(file1);
byte b1[]=new byte[(int) file1.length()];
try {
input.read(b1);
String str=new String(b1);
jta.append(str);
input.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if(e.getSource()==closeitem) {
System.exit(1);
}
else if(e.getSource()==saveitem) {
jfc=new JFileChooser();
jfc.showOpenDialog(null);
file1=jfc.getSelectedFile();
try {
FileOutputStream output=new FileOutputStream(file1);
byte b1[]=jta.getText().getBytes();
try {
output.write(b1);
output.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

}

}

package test;
public abstract class Test {

public static void main(String[] args) {
new Jishiben();
}

}

 

结果截图

 

 

posted on 2019-11-28 22:04  夕鹿生  阅读(174)  评论(1编辑  收藏  举报