课程总结:
1、Java实现跨平台操作的工具:JDBC。
它的意思是java数据库连接,可以方便的实现多种关系型数据库的统一操作,它由一组用java语句编写的类和接口组成。
2、JDBC驱动分类:
JDBC有着多种驱动:
1)JDBC-ODBC桥驱动。
2)JDBA本地驱动。
3)JDBC网络驱动。
4)本地协议纯JDBC驱动。
3、JDBC的主要操作类及接口。
4、MySQL的命令。
连接MySQL数据库:
mysql-u 用户名 -p 密码
创建数据库:
创建数据库:CREATE DATABASE 数据库名称;
删除数据库:DROP DATABASE 数据库名称;
使用数据库:
USE 数据库名称;
创建数据库表:
CREATE TABLE 表名称{
字段名称1 字段类型 [DEFAULT 默认值] [约束],
字段名称2 字段类型 [DEFAULT 默认值] [约束],
.....
字段名称n 字段类型 [DEFAULT 默认值] [约束],
};
5、查询数据。
SELECT {*|column alias}
FROM 表名称 别名
[WHERE conditon(s)]; ->设置查询条件<-
6、连接数据库的操作:
JDBC的连接地址实际上是由以下的3个部分组成。
(1)jabc 协议:JDBC URL 中的协议总是 jdbc。
(2)子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如
MySQL
(3)子名称: 种标识数据库的方法。必须遵循“//主机名:端口/子协议”的标准URL 命名约定,如
//localhost:3306/mldn
7、Connection接口的常用方法:
8、ResultSet接口
在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接受,并使用它取得内容
实验总结
实验代码
声明与监听代码:
package text;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import static javax.swing.KeyStroke.*;
public class TextPad implements ActionListener {
JFrame frame;
JMenuBar bar;
JMenu fileMenu, editMenu;
JMenuItem newItem, openItem, saveItem, closeItem;
ImageIcon newIcon, openIcon, saveIcon, closeIcon;
JScrollPane scroll;
JTextArea area;
JFileChooser chooser;
File file;
public TextPad() {
frame = new JFrame("SZH");
bar = new JMenuBar();
fileMenu = new JMenu("文件");
editMenu = new JMenu("编辑");
newIcon = new ImageIcon("d:" + File.separator + "TEXT" + File.separator + "IMG_20191002_154741.jpg");
openIcon = new ImageIcon("d:" + File.separator + "TEXT" + File.separator + "IMG_20191101_173538.jpg");
saveIcon = new ImageIcon("d:" + File.separator + "TEXT" + File.separator + "IMG_20191101_173559.jpg");
closeIcon = new ImageIcon("d:" + File.separator + "TEXT" + File.separator + "IMG_20191101_173632.jpg");
newItem = new JMenuItem("新建(N)", newIcon);
openItem = new JMenuItem("打开(O)", openIcon);
saveItem = new JMenuItem("另存为(A)", saveIcon);
closeItem = new JMenuItem("关闭(X)", closeIcon);
area = new JTextArea();
scroll = new JScrollPane(area);
newItem.setMnemonic(KeyEvent.VK_N);
openItem.setMnemonic(KeyEvent.VK_O);
saveItem.setMnemonic(KeyEvent.VK_A);
closeItem.setMnemonic(KeyEvent.VK_X);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
newItem.addActionListener((ActionListener) this);
openItem.addActionListener((ActionListener) this);
saveItem.addActionListener((ActionListener) this);
closeItem.addActionListener((ActionListener) this);
bar.add(fileMenu);
bar.add(editMenu);
frame.setJMenuBar(bar);
frame.add(scroll);
frame.setVisible(true);
frame.setSize(400,200);
frame.setLocation(200,100);
}
public void actionPerformed(ActionEvent event) {
Object obj = event.getSource();
if (obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem) obj;
if (item == newItem) {
new TextPad();
}
else if(item==openItem){
JFileChooser chooser=new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
try {
FileInputStream fis=new FileInputStream(file);
try {
byte[] b=new byte[fis.available()];
fis.read(b);
area.append(new String(b));
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
else if (item==saveItem){
JFileChooser chooser = new JFileChooser();
chooser.showSaveDialog(null);
file=chooser.getSelectedFile();
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
try {
FileOutputStream fos=new FileOutputStream(file);
byte[] b = area.getText().getBytes();
try {
fos.write(b);
} catch (IOException ex) {
ex.printStackTrace();
}
try {
fos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
}
}
}
else if (item==closeItem){
System.exit(24);
}
}
}
}
实现代码:
package text;
public class Test {
public static void main(String[] args) {
new TextPad();
}
}
实验结果截图:
运行结果:
整体界面:
新建与打开:
另存为:
实验总结
完成老师上课说过的和书上有的习题还是比较容易的,运用到了的知识比较全面,算是一次复习了!!!
获得的收益很大!
但是在输入与输出阶段还是忘记怎么在字符流和字节流相互转换,还是查询书籍才能做出来!
自我总结
知识点上课有认真听,但是在课后的巩固工作做的不够好!
现在做的实验和快要到来的实验设计都是综合性高的题目!需要花更多的时间在巩固知识上去!!!
记忆一下我们学过的基础知识和各个方法名,可以在程序中使用帮助文档来获得你要查询的方法的方法体及作用、用法!!