第十四周课程总结 & 实验报告
一、JDBC
- JDBC概述
JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成
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 定义一个数据库的驱动接口。
二、MySQL数据库
- MySQL常用命令
连接MySQL数据库
mysql -u 用户名 -p 密码
创建数据库
创建:CREATE DATABASE 数据库名称
删除:DROP DATABASE 数据库名称
系统特性:
1.使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
3.为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4.支持多线程,充分利用 CPU 资源。
5.优化的 SQL查询算法,有效地提高查询速度。
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。
8.提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
12.MySQL 是开源的,所以你不需要支付额外的费用。
13.MySQL 使用标准的 SQL数据语言形式。
14.MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言。
15.MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。
16.在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6新增)
17.复制全局事务标识,可支持自我修复式集群(5.6新增)
18.复制无崩溃从机,可提高可用性(5.6新增)
19.复制多线程从机,可提高性能(5.6新增)
20.3倍更快的性能(5.7新增)
21.新的优化器(5.7新增)
22.原生JSON支持(5.7新增)
23.多源复制(5.7新增)
24.GIS的空间扩展(5.7新增)
实验报告:
源码:
package jishiben;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing .*;
public class jishiben extends JFrame implements ActionListener{
JFrame frame;
JTextArea text;
JScrollPane scr;
JMenuBar bar;
JMenu menu;
JMenuItem newi;
JMenuItem openi;
JMenuItem savei;
JMenuItem closei;
JMenuItem exiti;
JFileChooser chooser;
File file;
FileInputStream fil;
FileOutputStream fol;
public jishiben() {
frame = new JFrame("记事本");
text = new JTextArea();
scr = new JScrollPane(text);
bar = new JMenuBar();
menu = new JMenu("文件");
newi = new JMenuItem("新建");
openi = new JMenuItem("打开");
closei = new JMenuItem("关闭");
exiti = new JMenuItem("退出");
savei = new JMenuItem("另存为");
text.setEditable(true);
frame.getContentPane().add(scr);
newi.addActionListener(this);
openi.addActionListener(this);
savei.addActionListener(this);
closei.addActionListener(this);
exiti.addActionListener(this);
menu.add(newi);
menu.add(openi);
menu.add(savei);
menu.add(closei);
menu.add(exiti);
bar.add(menu);
frame.setJMenuBar(bar);
frame.setSize(600, 500);
frame.setLocation(300,200);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
file =null;
Object obj = e.getSource();
if(obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem)obj;
if(item == newi) {
new jishiben();
}else if(item == openi) {
chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
try {
fil = new FileInputStream(file);
byte[] b = new byte[fil.available()];
fil.read(b);
String str = new String(b);
text.append(str);
fil.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(item == savei) {
chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
try {
if(!file.exists()) {
file.createNewFile();
}
fol = new FileOutputStream(file);
byte[] b = text.getText().getBytes();
fol.write(b);
fol.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(item == closei){
System.exit(1);
}
}
}
}
package jishiben;
public class test {
public static void main(String[] args) {
new jishiben();
}
}