JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准规范,JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

原理:

  Java提供访问数据库规范称为JDBC,而生产厂商提供规范的实现类称为驱动。

  JDBC是接口,驱动是接口的实现类,没有驱动将无法完成数据库连接,从而不能操作数据库!每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。

我对JDBC的理解:JDBC就是用了让代码能更好的与数据库连接而由数据库厂商提供的接口,驱动是其实现类。使用JDBC需要几个步骤,同时对于增删改查也分为两种不同的操作,为了避免设置拼串时可能出现异常,使用preparedStatement进行预处理,为了减少代码量,可以将相同的代码封装到一个工具类内

MYSQL数据库:MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

简单记事本代码如下:

package note;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea; //让其继承窗口类
public class TextPad extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L; //定义一个文本框
JTextArea jTextArea = null;//定义一个菜单栏
JMenuBar jMenuBar = null; //定义一个菜单
JMenu jMenu1 = null;
JMenuItem jMenuItem1 = null;
JMenuItem jMenuItem2 = null;
JMenuItem jMenuItem3 = null;
JMenuItem jMenuItem5 = null;
JFileChooser jFileChooser = null;
FileReader fileReader = null;
FileWriter fileWriter = null;
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;
@SuppressWarnings("unused")
public static void main(String[] args) {
//实例化
TextPad notePal = new TextPad(); }
public TextPad() {
jTextArea = new JTextArea();//实例化jTextArea
jMenuBar = new JMenuBar();//实例化jMenuBar
jMenu1 = new JMenu("文件");
jMenuItem1 = new JMenuItem("新建");
jMenuItem1.addActionListener(this);
jMenuItem1.setActionCommand("新建");
jMenuItem2 = new JMenuItem("打开");
jMenuItem2.addActionListener(this);
jMenuItem2.setActionCommand("打开");
jMenuItem3 = new JMenuItem("保存");
jMenuItem3.addActionListener(this);
jMenuItem3.setActionCommand("保存");
jMenuItem5 = new JMenuItem("关闭");
jMenuItem5.addActionListener(this);
jMenuItem5.setActionCommand("关闭");
jTextArea.setBackground(Color.WHITE);//设置jTextArea的背景颜色为
this.setJMenuBar(jMenuBar);
jMenuBar.add(jMenu1);
jMenu1.add(jMenuItem1);
jMenu1.add(jMenuItem2);
jMenu1.add(jMenuItem3);
jMenu1.add(jMenuItem5);
this.add(jTextArea);
this.setTitle("记事本(简单版)");
this.setSize(800,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } @Override public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("打开")) {
jFileChooser = new JFileChooser();
jFileChooser.setDialogTitle("选择自己的文件... ...");
jFileChooser.showOpenDialog(null);
jFileChooser.setVisible(true);
String address = jFileChooser.getSelectedFile().getAbsolutePath();
try { fileReader = new FileReader(address);
bufferedReader = new BufferedReader(fileReader);
String str = "";
String strAll = "";
while((str = bufferedReader.readLine()) != null) { strAll += str + "\r\n";//将strAll中的全部信息显示到JTextArea上 }
jTextArea.setText(strAll); } catch (Exception e2)
{
e2.printStackTrace(); }
finally{ try { bufferedReader.close(); fileReader.close(); }
catch (Exception e3)
{
e3.printStackTrace(); }
} } if(e.getActionCommand().equals("保存")) {
JFileChooser jFileChooser1 = new JFileChooser();//创建一个保存窗口 jFileChooser1.setDialogTitle("另存为... ...");//设置窗口名字
jFileChooser1.showSaveDialog(null);//设置默认设置
jFileChooser1.setVisible(true);//显示窗口
try {
fileWriter = new FileWriter(jFileChooser1.getSelectedFile().getAbsolutePath());//为fileWrite分配空间
bufferedWriter = new BufferedWriter(fileWriter);//为bufferedWrite分配空间
bufferedWriter.write(this.jTextArea.getText());//保存进去
}
catch (Exception e2){
e2.printStackTrace(); }finally{
try { bufferedWriter.close(); fileWriter.close(); } catch (Exception e3) { e3.printStackTrace(); } } } } }

运行截图如下:





简单记事本的基本实现&十四周总结的更多相关文章

  1. C++走向远洋——60(十四周阅读程序、STL中的简单容器和迭代器)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  2. 201521123122 《java程序设计》第十四周学习总结

    ## 201521123122 <java程序设计>第十四周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. M ...

  3. 第十四周实验报告:实验四 Android程序设计

    20162317袁逸灏 第十四周实验报告:实验四 Android程序设计 实验内容 Android Studio 实验要求 学会使用Android Studio 学习 活动 以及相关知识内容 学习 U ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第十四周

      java学习第十四周       本周,主要精力放在了第十二章swing用户界面组件知识的学习,swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨 ...

  5. 第十四周(OOP版电子词典)

    /* *copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名:第十四周(OOP版电子词典) *作者:王忠 *完毕日期:2015.6.10 *版本 ...

  6. 201871010105-曹玉中《面向对象程序设计(java)》第十四周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  7. 201871010106-丁宣元 《面向对象程序设计(java)》第十四周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十四周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

  8. 201871010107-公海瑜《面向对象程序设计(java)》第十四周学习总结

    201871010107-公海瑜<面向对象程序设计(java)>第十四周学习总结             项目                            内容   这个作业属于 ...

  9. 201871010135 张玉晶《面向对象程序设计(java)》第十四周学习总结

    项目 内容 这个作业属于哪个过程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/zyja/p/11963 ...

随机推荐

  1. redis分布式锁原理与实现

    分布式锁原理 分布式锁,是控制分布式系统之间同步访问共享资源的一种方式.在分布式系统中,常常需要协调他们的动作.如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候, ...

  2. python selenium 相关操作

    selenium : 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fi ...

  3. 原生ajax 请求

    什么是ajax AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新. 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新, ...

  4. VMWare虚拟机启动不了有个叉叉的解决办法

    打开VMWare虚拟机提示有: This virtual machine appears to be in use. If this virtual machine is already in use ...

  5. 30 分钟理解 CORB 是什么

    写在前面 前些日子在调试 bug 的时候,偶然发现这么一个警告: Cross-Origin Read Blocking (CORB) blocked cross-origin response htt ...

  6. C++ - 操作运算符

    一.操作运算符 操作运算符:在C++中,编译器有能力将数据.对象和操作符共同组成表达式,解释为对全局或成员函数的调用 该全局或成员函数被称为操作符函数,程序员可以通过重定义函数操作符函数,来达到自己想 ...

  7. 树状数组(Binary Indexed Tree)

    树状数组(Binary Indexed Tree,BIT) 是能够完成下述操作的数据结构. 给一个初始值全为 0 的数列 a1, a2, ..., an (1)给定 i,计算 a1+a2+...+ai ...

  8. 【ELK学习】初识ElasticSearch

    ES(elasticsearch) 是一个高可扩展的.开源的全文检索和分析引擎,它允许你存储.检索.分析海量数据,以一种快到近乎实时的速度. ES用例场景: 使用ES存储商品目录.清单,提供检索.输入 ...

  9. bitmap相关工具类

    一,bitmap工具 封装了以下方法: 1,获取activity屏幕截图,保存为图片文件 2,从文件中获取截图,返回bitmap对象 package com.ctbri.weather.utils; ...

  10. 最全的Android开发资源整理--进阶必备

    原文链接: http://stormzhang.github.io/android/2014/06/05/android-awesome-resources/ (友情提醒:最近google的很多服务被 ...