java记事本实验总结_第十四周课程总结实验报告(简单记事本的实现)
课程总结:
JDBC:
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
DriverManager:
用于管理JDBC驱动的服务类。程序中使用该类的的主要功能是获取Connection对象,该类包含如下方法:
public static Connection getConnection(String url, String user, String password) throws SQLException
该方法获得url对应数据库的连接;
Connection:
代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先得到数据库连接。该接口的常用方法如下:
Statement createStatement() throws SQLException; 该方法返回一个Statement对象;
PreparedStatement prepareStatement(String sql)throws SQLException;该方法返回预编译的Statement对象,即将SQL语句提交到数据库进行预编译;
CallableStatement prepareCall(String sql) throws SQLException;
该方法返回CallableStatement对象,该对象用于调用存储过程。
上面上个方法都返回用于执行sql语句的Statement对象,PreparedStatement和CallableStatement是Statement的子类,只有获得了Statement之后才可以执行sql语句;
除此之外,Connection还有如下几个用于控制事务的方法。
Savepoint setSavepoint() throws SQLException;创建一个保存点;
Savepoint setSavepoint(String name) throws SQLException;以指定名字来创建一个保存点;
void setTransactionIsolation(int level) throws SQLException;设置事务的隔离级别;
void rollback() throws SQLException;回滚事务;
void rollback(Savepoint savepoint) throws SQLException;将事务回滚到指定的保存点;
void setAutoCommit(boolean autoCommit) throws SQLException;关闭自动提交,打开事务;
void commit() throws SQLException;提交事务;
Statement:
用于执行sql语句的工具接口。该对象既可以执行DDL,DCL语句,也可以用于执行DML语句,还可以用于执行sql查询。当执行sql查询时,返回查询到的结果集。它的常用方法如下:
ResultSet executeQuery(String sql) throws SQLException;该方法用于执行查询语句,并返回查询结果对应ResultSet对象。该方法只能用于执行查询语句。
int executeUpdate(String sql) throws SQLException;该方法用于执行DML语句,并返回受影响的行数;该方法也可用于执行DDL语句,执行DDL语句将返回0;
boolean execute(String sql) throws SQLException;改方法可以执行任何sql语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false;
PreparedStatement:
预编译的Statement对象,PreparedStatement是Statement的子接口,它允许数据库预编译sql语句(这些sql语句通常带有参数),以后每次只改变sql命令的参数,避免数据库每次都需要编译sql语句,无需再传入sql语句,
只要为预编译的sql语句传入参数值即可。所以它比Statement多了如下方法:
void setXxx(int parameterIndex, Xxx value):该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给sql语句中指定位置的参数。
ResultSet:
结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据。它包含了如下常用方法来移动记录指针。
void close() throws SQLException;释放ResultSet对象;
boolean absolute( int row ) throws SQLException;将结果集的记录指针移动到第row行,如果row是负数,则移动到倒数第row行,如果移动后的记录指针指向一条有效记录,则该方法返回true;
boolean next() throws SQLException;将结果集的记录指针定位到下一行,如果移动后的记录指针指向一条有效的记录,则该方法返回true;
boolean last() throws SQLException;将结果集的记录指针定位到最后一行,如果移动后的记录指针指向一条有效的记录,则该方法返回true;
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 text;
import java.awt.*;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.event.*;
import java.io.*;
@SuppressWarnings("serial")
public class JNodepad extends JFrame implements ActionListener {
JMenuBar menubar = new JMenuBar();
JMenu file = new JMenu("文件(F)");
JMenu edit = new JMenu("编辑(E)");
JMenu help = new JMenu("帮助(H)");
JMenuItem create = new JMenuItem("新建");
JMenuItem open = new JMenuItem("打开...");
JMenuItem save = new JMenuItem("保存");
JMenuItem exit = new JMenuItem("退出");
JMenuBar popup = new JMenuBar();
JScrollPane scroll = new JScrollPane(textarea, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
String pathSelect;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
public static JTextArea textarea = new JTextArea();
public JNodepad() {
file.setMnemonic(KeyEvent.VK_F);
edit.setMnemonic(KeyEvent.VK_E);
help.setMnemonic(KeyEvent.VK_H);
create.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
save.addActionListener(this);
create.addActionListener(this);
open.addActionListener(this);
exit.addActionListener(this);
file.add(create);
file.add(open);
file.add(save);
file.addSeparator();
file.add(exit);
menubar.add(file);
menubar.add(edit);
menubar.add(help);
textarea.add(popup);
textarea.addMouseListener(new MouseAdapter() {
@SuppressWarnings("deprecation")
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
popup.show();
}
}
});
this.add(menubar, BorderLayout.NORTH);
this.add(scroll, BorderLayout.CENTER);
this.setTitle("记事本");
this.setSize(500, 400);
this.setLocationRelativeTo(null);
//this.setIconImage(new ImageIcon(this.getClass().getResource("/icon/notepad.png")).getImage());//图标放在源目录的icon文件夹
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
@SuppressWarnings("static-access")
public void actionPerformed(ActionEvent e) {
// Event对象发生源
if (e.getSource() == open) {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("文本文档(*.txt)", "txt");
chooser.setFileFilter(filter);
chooser.setDialogTitle("文件打开");
chooser.showOpenDialog(null);
chooser.setVisible(true);
}
if (e.getSource() == save && (pathSelect == null)) {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("保存");
chooser.showSaveDialog(null);
chooser.setVisible(true);
PrintStream ps;
try {
pathSelect = chooser.getSelectedFile().getPath();
ps = new PrintStream(pathSelect);
System.setOut(ps);
System.out.println(this.textarea.getText());
} catch (Exception e1) {
}
} else if (e.getSource() == save && !(pathSelect == null)) {
PrintStream ps;
try {
ps = new PrintStream(pathSelect);
System.setOut(ps);
System.out.println(this.textarea.getText());
} catch (FileNotFoundException e1) {
}
}
if (e.getSource() == create) {
textarea.setText("");
pathSelect = null;
}
if (e.getSource() == exit) {
System.exit(0);
}
}
public static void main(String[] args) {
new JNodepad();
}
}
截图:
编程总结:
在写这个记事本的过程中,发现自己有很多问题,很多东西都不知道添加到哪里,对各种组件的运用还不熟悉,写完代码后感觉自己还是有许多不懂的地方。
java记事本实验总结_第十四周课程总结实验报告(简单记事本的实现)相关推荐
- 第四周课程总结实验报告(二)
Java实验报告(二) 实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造 ...
- 第四周课程总结实验报告二
第四周课程总结 第四周课程总结 本周重点为学习String;首先String用以创建字符串,且通过有一次课堂练习加强理解到:String 类是不可改变的,一旦创建了 String 对象,那它的值就无法 ...
- 科大奥锐密立根油滴实验数据_请问科大奥锐的实验满分都是100吗?
单摆法测量重力加速度 100 钢丝杨氏模量的测定 60 光电效应和普朗克常量的测定 60 迈克耳孙干涉仪 180 密立根油滴实验 100 偏振光的观察与研究 100 声速的测量 100 示波器实验 1 ...
- python贪吃蛇的实验报告_贪吃蛇游戏课程设计实验报告
DOC 可编辑修改 -------- 为你整理各种最新最全办公范文 -------- 双击可以删除 爱心 --- 用心 --- 恒心 贪吃蛇游戏课程设计实验报告 辽 宁 科 技 大 学 课程设计说明书 ...
- c语言实验设备管理系统设计作业,C语言课程设计实验设备管理系统设计
<C语言课程设计实验设备管理系统设计>由会员分享,可在线阅读,更多相关<C语言课程设计实验设备管理系统设计(27页珍藏版)>请在人人文库网上搜索. 1.C语言课程设计院系: 姓 ...
- 计算机课程实验怎么做,如何上好计算机课程的实验课
如何上好计算机课程的实验课 时间: 2007-04-01 栏目: 如何上好计算机课程的实验课 摘要 本文从实验课计划和提纲.实验前的准备工作.实验课的实施和总结几个方面介绍了怎样上好计算机课程的实验课 ...
- java机器人编程简介_机器人十大流行编程语言的介绍及机器人编程系统以及操作方法...
"如果您问"机器人的最佳编程语言是什么?计算机视觉程序员会给出不同于认知机器人的答案.每个人都不同意什么是"最好的编程语言",语言首先学习,即使这是最现实的答案 ...
- java中过滤流_第十四讲 Java中的字节流和过滤流
第十四讲Java中的字节流和过滤流 主要内容 InputStream和FileInputStream OutputStream和FileOutputStream 文件字节IO流应用举例 过滤流类和常用 ...
- java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...
摘自 http://blog.csdn.net/liujun13579/article/details/7773945 卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组 ...
最新文章
- ASP网络编程从入门到精通 下载
- 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
- GC回收垃圾对象过程
- 链路层基本问题 : 封装成帧、差错检测、流量控制
- 东软刘积仁:软件已从高科技领域变成大众消费品
- 【opencv】【mediapipe】手势检测的有趣玩法
- vue-cil解决开发环境的跨域问题
- 学计算机的博士男朋友,有个计算机博士男朋友的日常?
- iOS开发之WKWebView的使用以及遇到的问题
- post 和 get 网站
- 一种基于加权处理的无线传感器网络平均跳距离估计算法(W-DVHop)
- ubuntu18.04新体验
- visio2010 java类图_UML图及Visio 2010使用总结
- 开发简易飞机订票系统(C/C++)
- 【深度学习中的数学】高维矩阵乘法规则
- PDMS.NET开发
- 超简单Python实现微信机器人自动回复
- java实现接口签名
- objectc:dictionary使用
- 在我心目中的霸气海贼王——路飞 不一样的路飞