首页 > 数据库技术 > 详细

JDBC 基础入门

时间:2019-08-20 14:30:41      阅读:77      评论:0      收藏:0      [点我收藏+]

 

一、什么是JDBC(Java Data Base Connectivity)?

java程序连接数据库,JDBC是由SUN公司提出的一组规范,这组规范主要由一组接口构成,主要作用就是访问数据库。

 

二、JDBC核心思想【思想重要】

   技术分享图片

 

三、核心API重点】

     

Java.sql.DriverManager[C]

工具类,帮助我们管理不同数据库厂商的驱动,我们只需要将驱动jar包交给它,他会为我们创建一个数据库连接对象。

Java.sql.Connection[I]

如果得到了一个connection对象,就意味着连接到了数据库。

Java.sql.Statement[I]

发送sql命令到数据库执行。

Java.sql.PreparedStatement[I]

statement功能一样,是statement的子接口。

Java.sql.ResultSet[I]

接收数据库返回的结果集(针对于DQL

 

四、使用JDBC进行开发

1.搭建开发环境

 创建一个java projectà引入驱动jar包到项目中

第一种方式:右键—>build path àconfigure build path à[Libraries]àaddExternal jar

第二种方式:右键—new folderàlibàjar放入文件夹add build path[建议使用]

 

首先这张图介绍了jdbc的作用 提供了一个接口,这样做 可以有两个作用 1.可以方便的切换数据库 只需要加载不同的驱动也就是jdbc的实现类

第二个作用是避免了 数据库厂商提供原码。

 

技术分享图片

所以在这里我们需要获取3个对象

Connection  数据库连接

PreparedStatement/Statement 发送sql

ResultSet  结果集DQL

 

代码实现重要的6步 

 

        //1.加载驱动-->将实现类加载到虚拟机中
         Class.forName("oracle.jdbc.OracleDriver");
        //2.获取连接 url:统一资源标识符,互联网中获取某一资源的方式
         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "hr");
        //3.书写sql语句
         String sql="insert into t_User(userid,username,ages) values(1000,‘张翰‘,100)";
        //4.发送sql语句--创建一个发送sql语句的对象
         Statement stmt  = conn.createStatement();
         
         int count = stmt.executeUpdate(sql);
         System.out.println("受影响行数="+count);
        
        //5.关闭资源 先打开的后关闭
         if(stmt != null){
             stmt.close();
         }
         if(conn != null){
             conn.close();
         }

不知道小伙伴们看了这个代码是不是也和小编我一样充满了疑问,于是我就上网查找了一些资料了解一下

1.为什么只需要写这一个步骤就可以了,就完成了将驱动加载到虚拟机中 

        //1.加载驱动-->将实现类加载到虚拟机中
         Class.forName("oracle.jdbc.OracleDriver");

首先要先了解一下类加载 ,类加载是什么

类的信息: 父类是谁? 有什么属性?有什么方法? 有什么构造方法? 是否还实现了其他接口?

类加载: 当JVM第一次使用一个类时, 找到这个类对应的字节码文件, 通过IO流读入这个文件中的类的信息, 并保存起来. 一个类只会加载一次

类加载时机:

  • 第一次创建对象

  • 第一次调用类的静态方法, 或访问类的静态成员

  • 加载子类时, 会先加载父类

类加载的过程:

  • 如果需要, 先加载父类

  • 按代码顺序, 初始化静态属性, 或是运行静态初始代码块

类加载的产物:

类对象 : 储存了一个类的信息 Class类的对象

由于驱动本质上还是一个class,将驱动加载到内存和加载普通的class原理是一样的:使用Class.forName("driverName")。以下是将常用的数据库驱动加载到内存中的代码:

Class.forName()将对应的驱动类加载到内存中,然后执行内存中的static静态代码段,代码段中,会创建一个驱动Driver的实例,放入DriverManager中,供DriverManager使用。

 例如,在使用Class.forName() 加载oracle的驱动oracle.jdbc.driver.OracleDriver时,会执行OracleDriver中的静态代码段,创建一个OracleDriver实例,然后调用DriverManager.registerDriver()注册: 待续。。。。。。

 

 

 

 

 

解释一下每个意思

 //2.获取连接 url:统一资源标识符,互联网中获取某一资源的方式
        jdbc:oracle:thin:@localhost:1521:xe", "hr", "hr"

 

JDBC 基础入门

原文:https://www.cnblogs.com/zhulina-917/p/11382360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!