JDBC

关于JDBC历史的简单介绍

       JDBC(Java DataBase Connectivity)的主要用途就是建立起代码和数据源之间的联系,可以将其理解为二者沟通的桥梁,它允许代码和数据源之间的数据进行互动。
       说起JDBC就不得不将一下数据库这个东西

数据库简单介绍

  • 20世纪60年代,计算机中的数据库刚刚出现。
  • 20世纪70年代初,E.F. Codd发表了一篇重要论文,其中提到建议使用关系型数据库模型,自此关系型数据库系统开始成为主流。
  • 20世纪70年代中,出现了两个主要的关系型数据库系统原型,分别是UBC开发的Ingres和IBM创建的System R,其中Ingres使用了一种名为QUEL的查询语言,而System R使用的是SEQUEL查询语言;P. Chen提出了一种名为Entity-Relationship(ER)的新数据库模型,该模型使人们可以专注于数据应用,而不是数据库的逻辑结构设计。
  • 20世纪80年代,结构化查询语言(SQL)成为标准查询语言。
  • 20世纪90年代,互联网行业都在飞速的发展。
  • 20世纪90年代互联网行业泡沫的破灭导致了大量公司破产,但数据库应用仍在继续增长。目前,市面上最大的三大数据库公司分别是微软,IBM和Oracle。

JDBC的简单介绍

       java语言自1995年正式发布后,java语言席卷全球。但是在最初的jdk1.0版本时,java还没有JDBC这一技术,代替JDBC和数据源连接的是ODBC(Open Database Connectivity)这个技术。
       由于在jdk1.1之前没有在访问数据库时,没有java语言的API,编程人员不得不在java程序中加入C语言的ODBC函数。加入了C语言的东西后,使得java中例如平台无关性,面向对象特征等优秀特征无法充分发挥。
       于是在1997年推出的jdk1.1版本中加入了JDBC,使得编程人员可以用纯Java语言编写完整的数据库应用程序。

JDBC

       讲了这么多其他的东西,接下来进入正题,开始正式了解JDBC。

JDBC的本质

       如果说想了解JDBC的本质,那就不得不提及接口这个东西了,接口又是什么呢?
       接口的话,我们可以将它理解为一个抽象类,里面只有抽象的方法,并没有实现的内容。
       jdbc本质上就是一个接口,它使你不用关心不同的数据库底层是如何实现连接的,只需要统一的操作就可以完成不同数据库的连接。
       那么有的小伙伴又会产生疑问,没有实现的话他是怎么连接上的呢?
       首先我们要知道,jdbc这套.class文件是由sun公司负责定制的规范。
       接下来各大数据库厂商的java程序员会负责编写这个接口的实现类,编写完毕后会把这些类打包成jar包,并发布到官网上。
       最后我们只需要从官网下载就可以使用了。

JDBC连接步骤

  • 使用JDBC编程需要连接数据库,注册驱动和数据库信息
  • 操作Connection,打开Statement对象
  • 通过Statement/PreparedStatement执行SQL,返回结果到ResultSet对象
  • 使用ResultSet读取数据,然后通过代码转化为具体的POJO对象
  • 关闭数据库相关资源

JDBC连接代码

//1、加载驱动、该位置会抛出异常需要进行处理
//com.mysql.jdbc.Driver驱动名,其实就是一个class类
Class.forName("com.mysql.jdbc.Driver");  
//2、数据库连接,获取conn
String url = "jdbc:mysql://localhost:3306/test";//你想要连接的数据库
String user = "root";//数据库的账号
String password = "123456";//数据库密码
Connection conn=DriverManager.getConnection(url,user,password);
//3、使用sql操作数据库
String sql = "select * from student where age=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, age);
//操作日期时的操作ps.setDate(1, new java.sql.Date(birthday.getTime()))
//4、处理结果集
ResultSet rs = ps.executeQuery(sql);
while(rs.next){
    int id = rs.getInt(1);//获取id
    String name = rs.getString(2);//获取name
    System.out.println("编号:" + id + "姓名:" + name );
}
//5、关流
rs.close();
ps.close();
conn.close();

总结

       其实实际开发中不使用原生的JDBC,都是基于框架和数据库进行交互,理解jdbc也只是为了更好的理解mybatis等其他持久层框架,知道其他持久层框架的好处。
       由于本人也是萌新一枚,写这个文章的初衷只是希望和大家一起成长。
       最后附上参考的其他大佬的文章地址

数据库发展史
jdbc发展史
jdbc的本质
jdbc详解

posted @ 2019-10-12 16:10  叫我玉弟大人  阅读(189)  评论(0编辑  收藏  举报