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. MailKit---状态更改和删除
  2. MFC 按钮如何改变颜色
  3. Moon.Orm 5.0 (MQL版) 欣赏另一种Orm的设计风格----大道至简
  4. 【iOS】Alamofire库在iOS7下设置Head无效的问题
  5. codeforces716E (点分治)
  6. LoadRunner中截取字符串
  7. ren
  8. 【python】坑,坑,折腾一个下午python 3.5中 ImportError: No module named BeautifulSoup
  9. swift小结01--基础篇
  10. Matlab曲面拟合和插值
  11. Linux下修改键盘映射
  12. Dinic算法(研究总结,网络流)
  13. 流式计算storm,spark文章
  14. github的拉取、提交,创建分支与合并
  15. ava、Python和PHP三者的区别
  16. word文件转html字符串(包涵格式和图片)
  17. c++ 生成dll文件并调用
  18. 【编译原理】c++实现自下而上语法分析及中间代码(四元式)生成
  19. 【python35.1--EasyGui界面】
  20. (16)模型层Models - ORM的使用

热门文章

  1. selenium常用定位方式
  2. Lengauer-Tarjan算法的相关证明
  3. 微信小程序评价页面
  4. 关于小程序picker 的使用
  5. js-点击tab按钮,同一页面显示不同的内容
  6. python中的文件读取
  7. Devexpress 10
  8. #333 Div2 Problem B Approximating a Constant Range (尺取 && RMQ || 尺取 && multiset)
  9. Maven开发环境搭建
  10. vue 自己写的一个日历