课程总结:

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记事本实验总结_第十四周课程总结实验报告(简单记事本的实现)相关推荐

  1. 第四周课程总结实验报告(二)

    Java实验报告(二) 实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造 ...

  2. 第四周课程总结实验报告二

    第四周课程总结 第四周课程总结 本周重点为学习String;首先String用以创建字符串,且通过有一次课堂练习加强理解到:String 类是不可改变的,一旦创建了 String 对象,那它的值就无法 ...

  3. 科大奥锐密立根油滴实验数据_请问科大奥锐的实验满分都是100吗?

    单摆法测量重力加速度 100 钢丝杨氏模量的测定 60 光电效应和普朗克常量的测定 60 迈克耳孙干涉仪 180 密立根油滴实验 100 偏振光的观察与研究 100 声速的测量 100 示波器实验 1 ...

  4. python贪吃蛇的实验报告_贪吃蛇游戏课程设计实验报告

    DOC 可编辑修改 -------- 为你整理各种最新最全办公范文 -------- 双击可以删除 爱心 --- 用心 --- 恒心 贪吃蛇游戏课程设计实验报告 辽 宁 科 技 大 学 课程设计说明书 ...

  5. c语言实验设备管理系统设计作业,C语言课程设计实验设备管理系统设计

    <C语言课程设计实验设备管理系统设计>由会员分享,可在线阅读,更多相关<C语言课程设计实验设备管理系统设计(27页珍藏版)>请在人人文库网上搜索. 1.C语言课程设计院系: 姓 ...

  6. 计算机课程实验怎么做,如何上好计算机课程的实验课

    如何上好计算机课程的实验课 时间: 2007-04-01 栏目: 如何上好计算机课程的实验课 摘要 本文从实验课计划和提纲.实验前的准备工作.实验课的实施和总结几个方面介绍了怎样上好计算机课程的实验课 ...

  7. java机器人编程简介_机器人十大流行编程语言的介绍及机器人编程系统以及操作方法...

    "如果您问"机器人的最佳编程语言是什么?计算机视觉程序员会给出不同于认知机器人的答案.每个人都不同意什么是"最好的编程语言",语言首先学习,即使这是最现实的答案 ...

  8. java中过滤流_第十四讲 Java中的字节流和过滤流

    第十四讲Java中的字节流和过滤流 主要内容 InputStream和FileInputStream OutputStream和FileOutputStream 文件字节IO流应用举例 过滤流类和常用 ...

  9. java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组 ...

最新文章

  1. ASP网络编程从入门到精通 下载
  2. 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
  3. GC回收垃圾对象过程
  4. 链路层基本问题 : 封装成帧、差错检测、流量控制
  5. 东软刘积仁:软件已从高科技领域变成大众消费品
  6. 【opencv】【mediapipe】手势检测的有趣玩法
  7. vue-cil解决开发环境的跨域问题
  8. 学计算机的博士男朋友,有个计算机博士男朋友的日常?
  9. iOS开发之WKWebView的使用以及遇到的问题
  10. post 和 get 网站
  11. 一种基于加权处理的无线传感器网络平均跳距离估计算法(W-DVHop)
  12. ubuntu18.04新体验
  13. visio2010 java类图_UML图及Visio 2010使用总结
  14. 开发简易飞机订票系统(C/C++)
  15. 【深度学习中的数学】高维矩阵乘法规则
  16. PDMS.NET开发
  17. 超简单Python实现微信机器人自动回复
  18. java实现接口签名
  19. objectc:dictionary使用
  20. 在我心目中的霸气海贼王——路飞 不一样的路飞

热门文章

  1. NUC是什么硬件设备?
  2. 校园歌咏比赛成绩统计
  3. 论文学习——多度量水文时间序列相似性分析
  4. Android My12306项目(一)
  5. webapi接收json字符串
  6. 电脑连接不上ftp服务器的几大原因:
  7. Android Emoji表情开发。两端使同一套的图片,防止两端因为系统内置的Emoji表情不一样,而造成用户体验不一致!
  8. Android Studio:Android Studio安装Genymotion插件
  9. 【自动驾驶轨迹规划之dubins曲线与reeds-shepp曲线】
  10. 扫描仪扫描文件处理-Photoshop批处理弹出色阶设置框解决