第十四周课程总结&实验报告(简单记事本的实现)
2019-11-29 14:53 小小乌龟君 阅读(213) 评论(1) 编辑 收藏 举报课程总结
JDBC一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
spring提供一致的API来简化JDBC编程-spring jdbc。我们只需要声明SQL、调用合适的Spring JDBC框架API、处理结果集。事务由Spring管理,并将JDBC受查异常转换为Spring一致的非受查异常。
JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成:
JDBC API:提供应用程序到JDBC管理器连接。
JDBC驱动程序API:支持JDBC管理器到驱动程序连接。
DriverManager:此类管理数据库驱动程序列表。 使用通信子协议将来自java应用程序的连接请求与适当的数据库驱动程序进行匹配。在JDBC下识别某个子协议的第一个驱动程序将用于建立数据库连接。
Driver:此接口处理与数据库服务器的通信。我们很少会直接与Driver对象进行交互。 但会使用DriverManager对象来管理这种类型的对象。 它还提取与使用Driver对象相关的信息。
Connection:此接口具有用于联系数据库的所有方法。 连接(Connection)对象表示通信上下文,即,与数据库的所有通信仅通过连接对象。
Statement:使用从此接口创建的对象将SQL语句提交到数据库。 除了执行存储过程之外,一些派生接口还接受参数。
ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。 它作为一个迭代器并可移动ResultSet对象查询的数据。
SQLException:此类处理数据库应用程序中发生的任何错误。
简易记事本
package zh;
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.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
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("记事本");
bar = new JMenuBar();
fileMenu = new JMenu("文件");
editMenu = new JMenu("编辑");
newIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator + "新建.png");
openIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator +"打开.png");
saveIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator +"保存.png");
closeIcon = new ImageIcon("d:" + File.separator + "记事本" + File.separator +"关闭.png");
area = new JTextArea();
scroll = new JScrollPane(area);
newItem = new JMenuItem("新建", newIcon);
openItem = new JMenuItem("打开", openIcon);
saveItem = new JMenuItem("另存为", saveIcon);
closeItem = new JMenuItem("关闭", closeIcon);
//加上监听器
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
closeItem.addActionListener(this);
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(closeItem);
bar.add(fileMenu);
bar.add(editMenu);
frame.setJMenuBar(bar);
frame.add(scroll);
frame.setSize(400,300);
frame.setVisible(true);
}
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) {
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 == saveItem) {
chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
try {
if(!file.exists()) {
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
byte[] b = area.getText().getBytes();
fos.write(b);
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(item == closeItem){
System.exit(1);
}
}
}
}
package zh;
public abstract class Test {
public static void main(String[] args) {
new TextPad();
}
}