第十四周课程总结&实验报告
一、JDBC
简介:JDBC是Java提供的一套数据库操作标准,各个数据库生厂商要按照此标准来生产数据库驱动,开发者只需要掌握核心的接口与类即可通过SQL实现任意的数据库操作。
驱动分类:
(1)JDBC-ODBC桥驱动;(2)JDBC本地驱动;(3)JDBC网络驱动;(4)本地协议纯JDBC驱动。
序号 | 类及接口 | 描述 |
---|---|---|
1 | java,sql.DriverManager | 用于管理JDBC驱动程序 |
2 | java,sql.Connection | 用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL语句和获得检索结果 |
3 | java,sql.Statement | 一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的后果 |
4 | java,sql.PreparedStatement | 创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率,该接口是Statement的子接口 |
5 | java,sql.ResultSet | 用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问 |
6 | java,sql.Date | 该类是标准jaa,util.Date类的一个子集,用于表示SQLDATE相同的日期类型,该日期不包括时间 |
7 | java,sql.TimeStamp | 标准jaa,util.Date类的扩展,用于表示SQL时间戳,并增加了一个能表示ns(纳秒)的时间域 |
8 | java,sql.CallableStatement | 用于执行SQL存储过程 |
9 | java,sql.DatabaseMetaData | 与java.sql.ResultSetMetaData一同用于访问数据库的元信息 |
10 | java,sql.Driver | 定义一个数据库驱动程序的接口 |
11 | java,sql.DataTruncation | 在JDBC遇到数据截断的异常时,报告一个警告(读数据时)或产生一个异常(写数据时) |
12 | java,sql.DriverPropertyInfo | 高级程序设计人员通过DriverPropertuInfo与Driver进行交流,可使用getDriverPropertyInfo获取或提供驱动程序的信息 |
14 | java,sql.Time | 该类是标准java.util.Date的一个子集,用于表示时分秒 |
15 | java,sql.SQLException | 对数据库访问时缠身的错误的描述信息 |
16 | java,sql.SQLWarning | 对数据库访问时产生的警告的描述信息 |
17 | java,sql.Types | 定义了表示SQL类型的常量 |
二、MySQL:
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
常用命令:
show databases | 显示数据库 |
---|---|
create database name | 创建数据库 |
use databasename | 选择数据库 |
drop database name | 直接删除数据库,不提醒 |
show tables | 显示表 |
describe tablename | 表的详细描述 |
select中加上distinct | 去除重复字段 |
实验报告
源代码:
package src;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JScrollPane;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
import java.awt.*;
public class Js extends JFrame implements ActionListener {
JFrame f;
JTextArea area;
JMenuBar bar;
JMenu men1,men2,men3,men4;
JMenuItem Item1,Item2,Item3,Item4,Item5;
ImageIcon image1,image2,image3,image4,image5;
JFileChooser chooser;
JScrollPane scoll;
File file;
public Js(){
f=new JFrame("记事本");
bar=new JMenuBar();
area=new JTextArea();
scoll=new JScrollPane(area);
men1=new JMenu("文件");
men2=new JMenu("编辑");
men3=new JMenu("查看");
men4=new JMenu("帮助");
image1=new ImageIcon("d:"+File.separator+"PR视频"+File.separator+"qq.4.png");
image2=new ImageIcon("d:"+File.separator+"PR视频"+File.separator+"打开.png");
image3=new ImageIcon("d:"+File.separator+"PR视频"+File.separator+"qq.3.png");
image4=new ImageIcon("d:"+File.separator+"PR视频"+File.separator+"qq.3.png");
Item1=new JMenuItem("新建(N)",image1);
Item2=new JMenuItem("打开(O)",image2);
Item3=new JMenuItem("保存(S)",image3);
Item4=new JMenuItem("另存为(T)",image4);
Item5=new JMenuItem("关闭(C)",image5);
Item1.setMnemonic('N');
Item2.setMnemonic('O');
Item3.setMnemonic('S');
Item4.setMnemonic('T');
Item5.setMnemonic('C');
men1.add(Item1);
men1.add(Item2);
men1.add(Item3);
men1.add(Item4);
men1.add(Item5);
Item1.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
Item2.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
Item3.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
Item4.setAccelerator(KeyStroke.getKeyStroke('T',java.awt.Event.CTRL_MASK));
Item5.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK));
Item1.addActionListener(this);
Item2.addActionListener(this);
Item3.addActionListener(this);
Item4.addActionListener(this);
Item5.addActionListener(this);
bar.add(men1);
bar.add(men2);
bar.add(men3);
bar.add(men4);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(1);
}
});
f.setJMenuBar(bar);
f.getContentPane().add(scoll);
f.add(scoll);
f.setSize(400,300);
f.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
file =null;
chooser=new JFileChooser();
Object obj = e.getSource();
if(obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem)obj;
if(item == Item1) {
// new TextArea();
area.setText("");
}else if(item == Item2) {
chooser=new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
try {
FileInputStream fis=new FileInputStream(file);
byte[] b=new byte[fis.available()];
try {
fis.read();
area.append(new String(b));
fis.close();
} catch (IOException e1) {
e1.printStackTrace();
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}else if(item==Item4) {
chooser=new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
if(!file.exists()) {
try {
file.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
}
try {
FileOutputStream fos= new FileOutputStream(file);
byte[] b = area.getText().getBytes();
fos.write(b);
fos.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(item==Item3) {
try {
PrintStream out=new PrintStream(new FileOutputStream(file));
out.print(this.area.getText());
out.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
}
}
}
package src;
public class Jsb {
public static void main(String[] args) {
new Js();
}
}